body {
  background: #f5f5f5; }

.bg-body {
  background: #f5f5f5 !important; }

.text-primary {
  color: #26B4FF !important; }

a.text-primary:hover, a.text-primary:focus {
  color: #008ed9 !important; }

.bg-primary {
  background-color: #26B4FF !important; }

a.bg-primary:hover, a.bg-primary:focus {
  background-color: #24abf2 !important; }

.bg-primary-dark {
  background-color: #22a2e6 !important; }

a.bg-primary-dark:hover, a.bg-primary-dark:focus {
  background-color: #209adb !important; }

.bg-primary-darker {
  background-color: #2099d9 !important; }

a.bg-primary-darker:hover, a.bg-primary-darker:focus {
  background-color: #1e91ce !important; }

html:not([dir=rtl]) .border-primary, html[dir=rtl] .border-primary {
  border-color: #26B4FF !important; }

.badge-primary {
  background-color: #26B4FF;
  color: #fff; }

.badge-primary[href]:hover, .badge-primary[href]:focus {
  background-color: #24abf2;
  color: #fff;
  text-decoration: none; }

.btn .badge-primary {
  background: #26B4FF !important;
  border-color: #26B4FF !important;
  color: #fff !important; }

.badge-outline-primary {
  background-color: transparent;
  box-shadow: 0 0 0 1px #26B4FF inset;
  color: #26B4FF; }

.badge-outline-primary[href]:hover, .badge-outline-primary[href]:focus {
  color: #26B4FF;
  text-decoration: none; }

.btn .badge-outline-primary {
  background-color: transparent !important;
  box-shadow: 0 0 0 1px #26B4FF inset !important;
  color: #26B4FF !important; }

.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: #26B4FF;
  background-color: #26B4FF;
  color: #fff; }

.progress-bar {
  background-color: #26B4FF;
  color: #fff; }

.list-group-item-primary {
  border-color: rgba(0, 0, 0, 0.07);
  background-color: #e9f8ff;
  color: #5d6366; }

a.list-group-item-primary,
button.list-group-item-primary {
  color: #5d6366; }
  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: #e7f6fc;
    color: #5d6366; }
  a.list-group-item-primary.active,
  button.list-group-item-primary.active {
    border-color: #26B4FF;
    background-color: #26B4FF;
    color: #5d6366; }

.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
  border-color: #26B4FF;
  background-color: #26B4FF;
  color: #fff; }

.alert-primary {
  border-color: #d1e5f0;
  background-color: #def4ff;
  color: #596266; }
  .alert-primary hr {
    border-top-color: #d1e5f0; }
  .alert-primary .alert-link {
    color: #596266; }

.alert-dark-primary {
  background-color: #26B4FF;
  color: #fff; }
  .alert-dark-primary hr {
    border-top-color: rgba(255, 255, 255, 0.2); }
  .alert-dark-primary .close,
  .alert-dark-primary .alert-link {
    color: #fff; }

.tooltip-primary .tooltip-inner, .tooltip-primary > .tooltip .tooltip-inner, .ngb-tooltip-primary + ngb-tooltip-window .tooltip-inner {
  background: #26B4FF;
  color: #fff; }

.tooltip-primary.bs-tooltip-top .arrow::before, .tooltip-primary.bs-tooltip-auto[x-placement^="top"] .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-top .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-top .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="top"] .arrow::before {
  border-top-color: #26B4FF; }

.tooltip-primary.bs-tooltip-right .arrow::before, .tooltip-primary.bs-tooltip-auto[x-placement^="right"] .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-right .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-right .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="right"] .arrow::before {
  border-right-color: #26B4FF; }

.tooltip-primary.bs-tooltip-bottom .arrow::before, .tooltip-primary.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-bottom .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-bottom .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
  border-bottom-color: #26B4FF; }

.tooltip-primary.bs-tooltip-left .arrow::before, .tooltip-primary.bs-tooltip-auto[x-placement^="left"] .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-left .arrow::before, .tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-left .arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="left"] .arrow::before {
  border-left-color: #26B4FF; }

.popover-primary, .popover-primary > .popover, .ngb-popover-primary + ngb-popover-window {
  border-color: transparent;
  background: #26B4FF; }
  .popover-primary .popover-header, .popover-primary > .popover .popover-header, .ngb-popover-primary + ngb-popover-window .popover-header {
    border-color: rgba(255, 255, 255, 0.2);
    background: transparent;
    color: #fff; }
  .popover-primary .popover-body, .popover-primary > .popover .popover-body, .ngb-popover-primary + ngb-popover-window .popover-body {
    background: transparent;
    color: #fff; }
  .popover-primary > .arrow::before, .popover-primary > .popover > .arrow::before, .ngb-popover-primary + ngb-popover-window > .arrow::before {
    border-color: transparent; }
  .popover-primary.bs-popover-top > .arrow::after, .popover-primary.bs-popover-auto[x-placement^="top"] > .arrow::after, .popover-primary > .popover.bs-popover-top > .arrow::after, .popover-primary > .popover.bs-popover-auto[x-placement^="top"] > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-top > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="top"] > .arrow::after {
    border-top-color: #26B4FF; }
  .popover-primary.bs-popover-right > .arrow::after, .popover-primary.bs-popover-auto[x-placement^="right"] > .arrow::after, .popover-primary > .popover.bs-popover-right > .arrow::after, .popover-primary > .popover.bs-popover-auto[x-placement^="right"] > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-right > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="right"] > .arrow::after {
    border-right-color: #26B4FF; }
  .popover-primary.bs-popover-bottom > .arrow::after, .popover-primary.bs-popover-auto[x-placement^="bottom"] > .arrow::after, .popover-primary > .popover.bs-popover-bottom > .arrow::after, .popover-primary > .popover.bs-popover-auto[x-placement^="bottom"] > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-bottom > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="bottom"] > .arrow::after {
    border-bottom-color: #26B4FF; }
  .popover-primary.bs-popover-left > .arrow::after, .popover-primary.bs-popover-auto[x-placement^="left"] > .arrow::after, .popover-primary > .popover.bs-popover-left > .arrow::after, .popover-primary > .popover.bs-popover-auto[x-placement^="left"] > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-left > .arrow::after, .ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="left"] > .arrow::after {
    border-left-color: #26B4FF; }

.table .table-primary,
.table .table-primary > th,
.table .table-primary > td {
  border-color: rgba(0, 0, 0, 0.035) !important;
  background-color: #e9f8ff;
  color: #5d6366; }

.table-hover .table-primary:hover,
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
  background-color: #e7f6fc; }

.btn-primary {
  border-color: transparent;
  background: #26B4FF;
  color: #fff; }
  .btn-primary:hover {
    border-color: transparent;
    background: #24abf2;
    color: #fff; }
  .btn-primary:focus, .btn-primary.focus {
    box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); }
  .btn-primary.disabled, .btn-primary:disabled {
    border-color: transparent !important;
    background: #26B4FF !important;
    box-shadow: none !important;
    color: #fff !important; }

.btn-primary .badge {
  background: #fff;
  color: #26B4FF; }

.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  border-color: transparent;
  background: #219dde;
  box-shadow: none; }

.btn-group .btn-primary,
.input-group-prepend .btn-primary,
.input-group-append .btn-primary {
  border-right: 1px solid #219dde;
  border-left: 1px solid #219dde; }

.btn-outline-primary {
  border-color: #26B4FF;
  background: transparent;
  color: #26B4FF; }
  .btn-outline-primary:hover {
    border-color: transparent;
    background: #26B4FF;
    color: #fff; }
  .btn-outline-primary:focus, .btn-outline-primary.focus {
    box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); }
  .btn-outline-primary.disabled, .btn-outline-primary:disabled {
    border-color: #26B4FF !important;
    background: transparent !important;
    color: #26B4FF !important; }

.btn-outline-primary:active,
.btn-outline-primary.active,
.show > .btn-outline-primary.dropdown-toggle {
  border-color: transparent;
  background: #24abf2;
  color: #fff;
  box-shadow: none; }

.btn-outline-primary .badge {
  background: #26B4FF;
  border-color: #26B4FF;
  color: #fff; }

.btn-outline-primary:hover .badge,
.btn-outline-primary:focus .badge,
.btn-outline-primary:active .badge,
.btn-outline-primary.active .badge,
.show > .btn-outline-primary.dropdown-toggle .badge {
  background: #fff;
  border-color: #fff;
  color: #26B4FF; }

.dropdown-item:not(.disabled).active,
.dropdown-item:not(.disabled):active {
  background-color: #26B4FF;
  color: #fff; }

.dropdown-menu > li:not(.disabled) > a:not(.dropdown-item):active,
.dropdown-menu > li.active:not(.disabled) > a:not(.dropdown-item) {
  background-color: #26B4FF;
  color: #fff; }

.nav-pills .nav-link.active, .nav-pills .nav-link.active:hover, .nav-pills .nav-link.active:focus {
  background-color: #26B4FF;
  color: #fff; }

.tabs-alt.nav-tabs .nav-link.active, .tabs-alt.nav-tabs .nav-link.active:hover, .tabs-alt.nav-tabs .nav-link.active:focus,
.tabs-alt > .nav-tabs .nav-link.active,
.tabs-alt > .nav-tabs .nav-link.active:hover,
.tabs-alt > .nav-tabs .nav-link.active:focus {
  box-shadow: 0 -2px 0 #26B4FF inset; }

.custom-control .custom-control-input:focus ~ .custom-control-label::before,
.custom-control .custom-control-input:active ~ .custom-control-label::before {
  border-color: #26B4FF; }

.custom-control .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); }

.custom-control.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before,
.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before,
.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
  border-color: #26B4FF;
  background-color: #26B4FF; }

.custom-control.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); }

.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9.5 7.5'%3E%3Cpolyline points='0.75 4.35 4.18 6.75 8.75 0.75' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px'/%3E%3C/svg%3E"); }

.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); }

.custom-file-input:focus ~ .custom-file-label {
  border-color: #26B4FF; }
  .custom-file-input:focus ~ .custom-file-label::after {
    border-color: inherit; }

.form-control:focus,
.custom-select:focus {
  border-color: #26B4FF; }

.switcher-input:checked ~ .switcher-indicator {
  background: #26B4FF;
  color: #fff; }

.switcher-input:focus ~ .switcher-indicator {
  box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); }

.switcher-input:active ~ .switcher-indicator {
  box-shadow: none; }

.navbar.bg-primary {
  background-color: #26B4FF !important;
  color: #daf2ff; }
  .navbar.bg-primary .navbar-brand {
    color: #fff; }
    .navbar.bg-primary .navbar-brand:hover, .navbar.bg-primary .navbar-brand:focus {
      color: #fff; }
  .navbar.bg-primary .navbar-nav .nav-link {
    color: #daf2ff; }
    .navbar.bg-primary .navbar-nav .nav-link:hover, .navbar.bg-primary .navbar-nav .nav-link:focus {
      color: #fff; }
    .navbar.bg-primary .navbar-nav .nav-link.disabled {
      color: #92d9ff !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: #daf2ff;
    border-color: rgba(255, 255, 255, 0.15); }
  .navbar.bg-primary .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
  .navbar.bg-primary .navbar-text {
    color: #daf2ff; }
    .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); }

.sidenav.bg-primary {
  background-color: #26B4FF !important;
  color: #daf2ff; }
  .sidenav.bg-primary .sidenav-link,
  .sidenav.bg-primary .sidenav-horizontal-prev,
  .sidenav.bg-primary .sidenav-horizontal-next {
    color: #daf2ff; }
    .sidenav.bg-primary .sidenav-link:hover, .sidenav.bg-primary .sidenav-link:focus,
    .sidenav.bg-primary .sidenav-horizontal-prev:hover,
    .sidenav.bg-primary .sidenav-horizontal-prev:focus,
    .sidenav.bg-primary .sidenav-horizontal-next:hover,
    .sidenav.bg-primary .sidenav-horizontal-next:focus {
      color: #fff; }
    .sidenav.bg-primary .sidenav-link.active,
    .sidenav.bg-primary .sidenav-horizontal-prev.active,
    .sidenav.bg-primary .sidenav-horizontal-next.active {
      color: #fff; }
  .sidenav.bg-primary .sidenav-item.disabled .sidenav-link,
  .sidenav.bg-primary .sidenav-horizontal-prev.disabled,
  .sidenav.bg-primary .sidenav-horizontal-next.disabled {
    color: #92d9ff !important; }
  .sidenav.bg-primary .sidenav-item.open:not(.sidenav-item-closing) > .sidenav-toggle,
  .sidenav.bg-primary .sidenav-item.active > .sidenav-link {
    color: #fff; }
  .sidenav.bg-primary .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) {
    background-color: #24abf2; }
  .sidenav.bg-primary.sidenav-horizontal .sidenav-menu > .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) {
    background-color: #22a2e6; }
  .sidenav.bg-primary.sidenav-horizontal .sidenav-inner > .sidenav-item:not(.sidenav-item-closing) > .sidenav-menu,
  .sidenav.bg-primary.sidenav-horizontal .sidenav-inner > .sidenav-item.open > .sidenav-toggle {
    background: #24abf2; }
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-menu,
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-toggle {
    background: transparent;
    color: #daf2ff; }
  .sidenav.bg-primary .sidenav-text {
    color: #fff; }
  .sidenav.bg-primary .sidenav-header {
    color: #ade3ff; }
  .sidenav.bg-primary hr,
  .sidenav.bg-primary .sidenav-divider,
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.open > .sidenav-menu::before {
    border-color: rgba(255, 255, 255, 0.15) !important; }
  .sidenav.bg-primary .sidenav-inner > .sidenav-header::before,
  .sidenav.bg-primary .sidenav-block::before {
    background-color: rgba(255, 255, 255, 0.15); }
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before {
    background-color: #45b8f4; }
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before {
    background-color: #fff; }
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before,
  .sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before {
    box-shadow: 0 0 0 2px #24abf2; }
  .sidenav.bg-primary .ps__thumb-y,
  .sidenav.bg-primary .ps__rail-y.ps--clicking > .ps__thumb-y {
    background: rgba(255, 255, 255, 0.629164) !important; }

.footer.bg-primary {
  background-color: #26B4FF !important;
  color: #daf2ff; }
  .footer.bg-primary .footer-link {
    color: #daf2ff; }
    .footer.bg-primary .footer-link:hover, .footer.bg-primary .footer-link:focus {
      color: #fff; }
    .footer.bg-primary .footer-link.disabled {
      color: #92d9ff !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.bs4-toast {
  color: #fff;
  background-color: rgba(38, 180, 255, 0.9) !important; }
  .bg-primary.bs4-toast .toast-header {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1); }

.fill-primary {
  fill: #26B4FF; }

.slider-primary .slider-selection,
.slider-primary .slider-reversed .slider-track-high,
.slider-primary.slider-reversed .slider-track-high {
  background: #26B4FF; }

.noUi-primary .noUi-base .noUi-connect {
  background: #26B4FF !important; }

.default-style .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #26B4FF !important;
  color: #fff !important; }

.default-style .select2-container--default.select2-container--focus .select2-selection,
.default-style .select2-container--default.select2-container--open .select2-selection {
  border-color: #26B4FF !important; }

.default-style .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: #26B4FF;
  color: #fff; }

.bootstrap-tagsinput.focus {
  border-color: #26B4FF !important; }

.bootstrap-select .dropdown-menu.inner a[aria-selected=true] {
  background: #26B4FF !important;
  color: #fff !important; }

.datepicker table tr td.active, .datepicker table tr td.active.highlighted, .datepicker table tr td.active.today,
.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: #26B4FF !important;
  color: #fff !important; }

.datepicker table tr td.range, .datepicker table tr td.range.highlighted, .datepicker table tr td.range.today {
  background: #def4ff !important;
  color: #596266 !important; }
  .datepicker table tr td.range.focused, .datepicker table tr td.range.highlighted.focused, .datepicker table tr td.range.today.focused {
    background: #bfeaff !important; }
  .datepicker table tr td.range.disabled, .datepicker table tr td.range.highlighted.disabled, .datepicker table tr td.range.today.disabled {
    background: rgba(222, 244, 255, 0.5) !important;
    color: rgba(89, 98, 102, 0.5) !important; }

.flatpickr-calendar .numInputWrapper span.arrowUp:after {
  border-bottom-color: #fff; }

.flatpickr-calendar .numInputWrapper span.arrowDown:after {
  border-top-color: #fff; }

.flatpickr-month,
span.flatpickr-weekday {
  background: #26B4FF;
  color: #fff;
  fill: #fff; }

.flatpickr-weekdays {
  background: #26B4FF; }

.flatpickr-day.today {
  border-color: #26B4FF; }

.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange {
  border-color: #def4ff !important;
  background: #def4ff !important;
  color: #596266 !important; }

.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay, .flatpickr-day.week.selected {
  border-color: #26B4FF !important;
  background: #26B4FF !important;
  color: #fff !important; }

.daterangepicker td.active {
  background-color: #26B4FF !important;
  color: #fff !important; }

.daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off) {
  background-color: #def4ff !important;
  color: #596266 !important; }

.daterangepicker .input-mini.active {
  border-color: #26B4FF !important; }

.ranges li.active {
  background-color: #26B4FF !important;
  color: #fff !important; }

.dtp-date,
.dtp-time {
  background: #26B4FF;
  color: #fff; }

.dtp-close > a {
  color: #fff; }

header.dtp-header {
  background: #2099d9;
  color: #fff; }

table.dtp-picker-days tr > td > a.selected {
  background: #26B4FF;
  color: #fff !important; }

.dtp-actual-meridien a.selected {
  background: #26B4FF !important;
  color: #fff !important; }

.dtp .year-picker-item:hover {
  color: #26B4FF; }

.dtp .year-picker-item.active {
  color: #26B4FF; }

.dtp .svg-clock [stroke="#8BC34A"] {
  stroke: #26B4FF !important; }

.dtp .svg-clock [fill="#8BC34A"] {
  fill: #26B4FF !important; }

.dtp .svg-clock [fill="#fff"] {
  fill: #fff !important; }

li.ui-timepicker-selected,
.ui-timepicker-list .ui-timepicker-selected:hover {
  background: #26B4FF !important;
  color: #fff !important; }

.growl-default {
  background: #26B4FF !important;
  color: #fff !important; }

.md-editor.active {
  border-color: #26B4FF !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: #26B4FF !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: #26B4FF !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: #26B4FF !important; }

.tt-suggestion:active,
.tt-cursor {
  background: #26B4FF !important;
  color: #fff !important; }

.dropzone.dz-drag-hover {
  border-color: #26B4FF !important; }

.swiper-pagination-bullet.swiper-pagination-bullet-active,
.swiper-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: #26B4FF !important; }

.sk-primary.sk-rotating-plane,
.sk-primary.sk-double-bounce .sk-child,
.sk-primary.sk-wave .sk-rect,
.sk-primary.sk-wandering-cubes .sk-cube,
.sk-primary.sk-spinner-pulse,
.sk-primary.sk-chasing-dots .sk-child,
.sk-primary.sk-three-bounce .sk-child,
.sk-primary.sk-circle .sk-child:before,
.sk-primary.sk-cube-grid .sk-cube,
.sk-primary.sk-fading-circle .sk-circle:before,
.sk-primary.sk-folding-cube .sk-cube:before {
  background-color: #26B4FF; }

.sw-theme-default .step-anchor > li.active > a .sw-icon,
.sw-theme-default .step-anchor > li.active > a .sw-number {
  color: #26B4FF;
  border-color: #26B4FF; }

.plyr input[type='range']::-ms-fill-lower {
  background: #26B4FF !important; }

.plyr input[type='range']:active::-webkit-slider-thumb {
  background: #26B4FF !important; }

.plyr input[type='range']:active::-moz-range-thumb {
  background: #26B4FF !important; }

.plyr input[type='range']:active::-ms-thumb {
  background: #26B4FF !important; }

.plyr--video .plyr__controls button.tab-focus:focus,
.plyr--video .plyr__controls button:hover {
  background: #26B4FF !important;
  color: #fff !important; }

.plyr--audio .plyr__controls button.tab-focus:focus,
.plyr--audio .plyr__controls button:hover {
  background: #26B4FF !important;
  color: #fff !important; }

.plyr__play-large {
  background: #26B4FF !important;
  color: #fff !important; }

.plyr__progress--played,
.plyr__volume--display {
  color: #26B4FF !important; }

.fc-event {
  background: rgba(38, 180, 255, 0.15) !important; }

.fc-event-dot {
  background: rgba(38, 180, 255, 0.4) !important; }

.fc-highlight,
.fc-bgevent:not(.fc-nonbusiness) {
  background: #26B4FF !important; }

.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: #26B4FF;
  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: #c9ecff; }

.ui-product-color.active {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #26B4FF !important; }

.bg-navbar-theme {
  background-color: #fff !important;
  color: #a3a4a6; }
  .bg-navbar-theme .navbar-brand {
    color: #4E5155; }
    .bg-navbar-theme .navbar-brand:hover, .bg-navbar-theme .navbar-brand:focus {
      color: #4E5155; }
  .bg-navbar-theme .navbar-nav .nav-link {
    color: #a3a4a6; }
    .bg-navbar-theme .navbar-nav .nav-link:hover, .bg-navbar-theme .navbar-nav .nav-link:focus {
      color: #4E5155; }
    .bg-navbar-theme .navbar-nav .nav-link.disabled {
      color: #c8c8ca !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: #4E5155; }
  .bg-navbar-theme .navbar-toggler {
    color: #a3a4a6;
    border-color: rgba(78, 81, 85, 0.075); }
  .bg-navbar-theme .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(24, 28, 33, 0.4)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
  .bg-navbar-theme .navbar-text {
    color: #a3a4a6; }
    .bg-navbar-theme .navbar-text a {
      color: #4E5155; }
      .bg-navbar-theme .navbar-text a:hover, .bg-navbar-theme .navbar-text a:focus {
        color: #4E5155; }
  .bg-navbar-theme hr {
    border-color: rgba(78, 81, 85, 0.075); }

.layout-navbar {
  box-shadow: 0 1px 0 rgba(24, 28, 33, 0.06); }

.bg-sidenav-theme {
  background-color: #2e323a !important;
  color: #838790; }
  .bg-sidenav-theme .sidenav-link,
  .bg-sidenav-theme .sidenav-horizontal-prev,
  .bg-sidenav-theme .sidenav-horizontal-next {
    color: #838790; }
    .bg-sidenav-theme .sidenav-link:hover, .bg-sidenav-theme .sidenav-link:focus,
    .bg-sidenav-theme .sidenav-horizontal-prev:hover,
    .bg-sidenav-theme .sidenav-horizontal-prev:focus,
    .bg-sidenav-theme .sidenav-horizontal-next:hover,
    .bg-sidenav-theme .sidenav-horizontal-next:focus {
      color: #fff; }
    .bg-sidenav-theme .sidenav-link.active,
    .bg-sidenav-theme .sidenav-horizontal-prev.active,
    .bg-sidenav-theme .sidenav-horizontal-next.active {
      color: #fff; }
  .bg-sidenav-theme .sidenav-item.disabled .sidenav-link,
  .bg-sidenav-theme .sidenav-horizontal-prev.disabled,
  .bg-sidenav-theme .sidenav-horizontal-next.disabled {
    color: #61656e !important; }
  .bg-sidenav-theme .sidenav-item.open:not(.sidenav-item-closing) > .sidenav-toggle,
  .bg-sidenav-theme .sidenav-item.active > .sidenav-link {
    color: #fff; }
  .bg-sidenav-theme .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) {
    background-color: #383c44; }
  .bg-sidenav-theme.sidenav-horizontal .sidenav-menu > .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) {
    background-color: #42464d; }
  .bg-sidenav-theme.sidenav-horizontal .sidenav-inner > .sidenav-item:not(.sidenav-item-closing) > .sidenav-menu,
  .bg-sidenav-theme.sidenav-horizontal .sidenav-inner > .sidenav-item.open > .sidenav-toggle {
    background: #383c44; }
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-menu,
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-toggle {
    background: transparent;
    color: #838790; }
  .bg-sidenav-theme .sidenav-text {
    color: #fff; }
  .bg-sidenav-theme .sidenav-header {
    color: #6e727b; }
  .bg-sidenav-theme hr,
  .bg-sidenav-theme .sidenav-divider,
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.open > .sidenav-menu::before {
    border-color: rgba(255, 255, 255, 0.06) !important; }
  .bg-sidenav-theme .sidenav-inner > .sidenav-header::before,
  .bg-sidenav-theme .sidenav-block::before {
    background-color: rgba(255, 255, 255, 0.06); }
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before {
    background-color: #44484f; }
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before {
    background-color: #fff; }
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before,
  .bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before {
    box-shadow: 0 0 0 2px #383c44; }
  .bg-sidenav-theme .ps__thumb-y,
  .bg-sidenav-theme .ps__rail-y.ps--clicking > .ps__thumb-y {
    background: rgba(255, 255, 255, 0.477986) !important; }

.bg-footer-theme {
  background-color: #fff !important;
  color: #a3a4a6; }
  .bg-footer-theme .footer-link {
    color: #a3a4a6; }
    .bg-footer-theme .footer-link:hover, .bg-footer-theme .footer-link:focus {
      color: #4E5155; }
    .bg-footer-theme .footer-link.disabled {
      color: #c8c8ca !important; }
  .bg-footer-theme .footer-text {
    color: #4E5155; }
  .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: #4E5155; }
  .bg-footer-theme hr {
    border-color: rgba(78, 81, 85, 0.075); }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yL2Nzcy90aGVtZS1jb3Jwb3JhdGUuY3NzIiwic291cmNlcyI6WyJ2ZW5kb3IvY3NzL3RoZW1lLWNvcnBvcmF0ZS5zY3NzIiwidmVuZG9yL2Nzcy9fYXBwd29yay9faW5jbHVkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19mdW5jdGlvbnMuc2NzcyIsInZlbmRvci9jc3MvX2FwcHdvcmsvX2Z1bmN0aW9ucy5zY3NzIiwidmVuZG9yL2Nzcy9fY3VzdG9tLXZhcmlhYmxlcy9fYXBwd29yay5zY3NzIiwidmVuZG9yL2Nzcy9fYXBwd29yay9fdmFyaWFibGVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19taXhpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy92ZW5kb3IvX3Jmcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZGVwcmVjYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9faG92ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2ltYWdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19iYWRnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fcmVzaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19zY3JlZW4tcmVhZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19yZXNldC10ZXh0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190ZXh0LWVtcGhhc2lzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190ZXh0LWhpZGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtdHJ1bmNhdGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2FsZXJ0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19idXR0b25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19jYXJldC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fbGlzdHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2xpc3QtZ3JvdXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX25hdi1kaXZpZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19mb3Jtcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGFibGUtcm93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19iYWNrZ3JvdW5kLXZhcmlhbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JveC1zaGFkb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyYWRpZW50cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQtZnJhbWV3b3JrLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19mbG9hdC5zY3NzIiwidmVuZG9yL2Nzcy9fYXBwd29yay9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvY3NzL190aGVtZS9fY29tbW9uLnNjc3MiLCJ2ZW5kb3IvY3NzL190aGVtZS9fbGlicy5zY3NzIiwidmVuZG9yL2xpYnMvYm9vdHN0cmFwLXNsaWRlci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9ub3Vpc2xpZGVyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3NlbGVjdDIvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvYm9vdHN0cmFwLXRhZ3NpbnB1dC9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9ib290c3RyYXAtc2VsZWN0L19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1kYXRlcGlja2VyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2ZsYXRwaWNrci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9ib290c3RyYXAtZGF0ZXJhbmdlcGlja2VyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1tYXRlcmlhbC1kYXRldGltZXBpY2tlci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy90aW1lcGlja2VyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2dyb3dsL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1tYXJrZG93bi9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9xdWlsbC9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy90eXBlYWhlYWQtanMvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvZHJvcHpvbmUvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvc3dpcGVyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3NwaW5raXQvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvc21hcnR3aXphcmQvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvcGx5ci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9mdWxsY2FsZW5kYXIvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvc3dlZXRhbGVydDIvX21peGlucy5zY3NzIiwidmVuZG9yL2Nzcy9fdGhlbWUvX3Vpa2l0LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4vX2FwcHdvcmsvaW5jbHVkZVwiO1xuQGltcG9ydCBcIi4vX3RoZW1lL2NvbW1vblwiO1xuQGltcG9ydCBcIi4vX3RoZW1lL2xpYnNcIjtcbkBpbXBvcnQgXCIuL190aGVtZS91aWtpdFwiO1xuXG4kcHJpbWFyeS1jb2xvcjogIzI2QjRGRjtcbiRib2R5LWJnOiAjZjVmNWY1O1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogJGJvZHktYmc7XG59XG5cbi5iZy1ib2R5IHtcbiAgYmFja2dyb3VuZDogJGJvZHktYmcgIWltcG9ydGFudDtcbn1cblxuQGluY2x1ZGUgYXBwd29yay1jb21tb24tdGhlbWUoJHByaW1hcnktY29sb3IpO1xuQGluY2x1ZGUgYXBwd29yay1saWJzLXRoZW1lKCRwcmltYXJ5LWNvbG9yKTtcbkBpbmNsdWRlIGFwcHdvcmstdWlraXQtdGhlbWUoJHByaW1hcnktY29sb3IpO1xuXG4vLyBOYXZiYXJcblxuQGluY2x1ZGUgYXBwd29yay1uYXZiYXItdmFyaWFudCgnLmJnLW5hdmJhci10aGVtZScsICNmZmYsICRjb2xvcjogJHRleHQtbXV0ZWQsICRhY3RpdmUtY29sb3I6ICRib2R5LWNvbG9yKTtcblxuLmxheW91dC1uYXZiYXIge1xuICBib3gtc2hhZG93OiAwIDFweCAwICRib3JkZXItY29sb3I7XG59XG5cbi8vIFNpZGVuYXZcblxuQGluY2x1ZGUgYXBwd29yay1zaWRlbmF2LXZhcmlhbnQoJy5iZy1zaWRlbmF2LXRoZW1lJywgIzJlMzIzYSwgJGNvbG9yOiAjODM4NzkwKTtcblxuLy8gRm9vdGVyXG5cbkBpbmNsdWRlIGFwcHdvcmstZm9vdGVyLXZhcmlhbnQoJy5iZy1mb290ZXItdGhlbWUnLCAjZmZmLCAkY29sb3I6ICR0ZXh0LW11dGVkLCAkYWN0aXZlLWNvbG9yOiAkYm9keS1jb2xvcik7XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zJztcbkBpbXBvcnQgJ2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICcuLi9fY3VzdG9tLXZhcmlhYmxlcy9hcHB3b3JrJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMnO1xuQGltcG9ydCAnbWl4aW5zJztcbiIsIi8vIEJvb3RzdHJhcCBmdW5jdGlvbnNcbi8vXG4vLyBVdGlsaXR5IG1peGlucyBhbmQgZnVuY3Rpb25zIGZvciBldmFsdWF0aW5nIHNvdXJjZSBjb2RlIGFjcm9zcyBvdXIgdmFyaWFibGVzLCBtYXBzLCBhbmQgbWl4aW5zLlxuXG4vLyBBc2NlbmRpbmdcbi8vIFVzZWQgdG8gZXZhbHVhdGUgU2FzcyBtYXBzIGxpa2Ugb3VyIGdyaWQgYnJlYWtwb2ludHMuXG5AbWl4aW4gX2Fzc2VydC1hc2NlbmRpbmcoJG1hcCwgJG1hcC1uYW1lKSB7XG4gICRwcmV2LWtleTogbnVsbDtcbiAgJHByZXYtbnVtOiBudWxsO1xuICBAZWFjaCAka2V5LCAkbnVtIGluICRtYXAge1xuICAgIEBpZiAkcHJldi1udW0gPT0gbnVsbCBvciB1bml0KCRudW0pID09IFwiJVwiIHtcbiAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9IEBlbHNlIGlmIG5vdCBjb21wYXJhYmxlKCRwcmV2LW51bSwgJG51bSkge1xuICAgICAgQHdhcm4gXCJQb3RlbnRpYWxseSBpbnZhbGlkIHZhbHVlIGZvciAjeyRtYXAtbmFtZX06IFRoaXMgbWFwIG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyLCBidXQga2V5ICcjeyRrZXl9JyBoYXMgdmFsdWUgI3skbnVtfSB3aG9zZSB1bml0IG1ha2VzIGl0IGluY29tcGFyYWJsZSB0byAjeyRwcmV2LW51bX0sIHRoZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMga2V5ICcjeyRwcmV2LWtleX0nICFcIjtcbiAgICB9IEBlbHNlIGlmICRwcmV2LW51bSA+PSAkbnVtIHtcbiAgICAgIEB3YXJuIFwiSW52YWxpZCB2YWx1ZSBmb3IgI3skbWFwLW5hbWV9OiBUaGlzIG1hcCBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciwgYnV0IGtleSAnI3ska2V5fScgaGFzIHZhbHVlICN7JG51bX0gd2hpY2ggaXNuJ3QgZ3JlYXRlciB0aGFuICN7JHByZXYtbnVtfSwgdGhlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBrZXkgJyN7JHByZXYta2V5fScgIVwiO1xuICAgIH1cbiAgICAkcHJldi1rZXk6ICRrZXk7XG4gICAgJHByZXYtbnVtOiAkbnVtO1xuICB9XG59XG5cbi8vIFN0YXJ0cyBhdCB6ZXJvXG4vLyBVc2VkIHRvIGVuc3VyZSB0aGUgbWluLXdpZHRoIG9mIHRoZSBsb3dlc3QgYnJlYWtwb2ludCBzdGFydHMgYXQgMC5cbkBtaXhpbiBfYXNzZXJ0LXN0YXJ0cy1hdC16ZXJvKCRtYXAsICRtYXAtbmFtZTogXCIkZ3JpZC1icmVha3BvaW50c1wiKSB7XG4gICR2YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG4gICRmaXJzdC12YWx1ZTogbnRoKCR2YWx1ZXMsIDEpO1xuICBAaWYgJGZpcnN0LXZhbHVlICE9IDAge1xuICAgIEB3YXJuIFwiRmlyc3QgYnJlYWtwb2ludCBpbiAjeyRtYXAtbmFtZX0gbXVzdCBzdGFydCBhdCAwLCBidXQgc3RhcnRzIGF0ICN7JGZpcnN0LXZhbHVlfS5cIjtcbiAgfVxufVxuXG4vLyBSZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG4vLyBVc2VkIG9uIG91ciBTVkcgaWNvbiBiYWNrZ3JvdW5kcyBmb3IgY3VzdG9tIGZvcm1zLlxuLy9cbi8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xuLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxuLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gQ29sb3IgY29udHJhc3RcbkBmdW5jdGlvbiBjb2xvci15aXEoJGNvbG9yLCAkZGFyazogJHlpcS10ZXh0LWRhcmssICRsaWdodDogJHlpcS10ZXh0LWxpZ2h0KSB7XG4gICRyOiByZWQoJGNvbG9yKTtcbiAgJGc6IGdyZWVuKCRjb2xvcik7XG4gICRiOiBibHVlKCRjb2xvcik7XG5cbiAgJHlpcTogKCgkciAqIDI5OSkgKyAoJGcgKiA1ODcpICsgKCRiICogMTE0KSkgLyAxMDAwO1xuXG4gIEBpZiAoJHlpcSA+PSAkeWlxLWNvbnRyYXN0ZWQtdGhyZXNob2xkKSB7XG4gICAgQHJldHVybiAkZGFyaztcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkbGlnaHQ7XG4gIH1cbn1cblxuLy8gUmV0cmlldmUgY29sb3IgU2FzcyBtYXBzXG5AZnVuY3Rpb24gY29sb3IoJGtleTogXCJibHVlXCIpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRjb2xvcnMsICRrZXkpO1xufVxuXG5AZnVuY3Rpb24gdGhlbWUtY29sb3IoJGtleTogXCJwcmltYXJ5XCIpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsICRrZXkpO1xufVxuXG5AZnVuY3Rpb24gZ3JheSgka2V5OiBcIjEwMFwiKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkZ3JheXMsICRrZXkpO1xufVxuXG4vLyBSZXF1ZXN0IGEgdGhlbWUgY29sb3IgbGV2ZWxcbkBmdW5jdGlvbiB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3ItbmFtZTogXCJwcmltYXJ5XCIsICRsZXZlbDogMCkge1xuICAkY29sb3I6IHRoZW1lLWNvbG9yKCRjb2xvci1uYW1lKTtcbiAgJGNvbG9yLWJhc2U6IGlmKCRsZXZlbCA+IDAsICRibGFjaywgJHdoaXRlKTtcbiAgJGxldmVsOiBhYnMoJGxldmVsKTtcblxuICBAcmV0dXJuIG1peCgkY29sb3ItYmFzZSwgJGNvbG9yLCAkbGV2ZWwgKiAkdGhlbWUtY29sb3ItaW50ZXJ2YWwpO1xufVxuIiwiLy8gRnVuY3Rpb25zXG4vL1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIE1hdGhcblxuJHBpOiAzLjE0MTU5MjY1MzU5O1xuJF9wcmVjaXNpb246IDEwO1xuXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBpZiAkZXhwIDwgMXtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gc3FydCgkcikge1xuICAkeDA6IDE7XG4gICR4MTogJHgwO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAgICR4MTogJHgwIC0gKCR4MCAqICR4MCAtIGFicygkcikpIC8gKDIgKiAkeDApO1xuICAgICR4MDogJHgxO1xuICB9XG5cbiAgQHJldHVybiAkeDE7XG59XG5cbkBmdW5jdGlvbiBmYWN0KCRudW0pIHtcbiAgJGZhY3Q6IDE7XG4gIEBpZiAkbnVtID4gMHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRudW0ge1xuICAgICAgJGZhY3Q6ICRmYWN0ICogJGk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGZhY3Q7XG59XG5cbkBmdW5jdGlvbiBfdG9fdW5pdGxlc3NfcmFkKCRhbmdsZSkge1xuICBAaWYgdW5pdCgkYW5nbGUpID09IFwiZGVnXCIge1xuICAgICRhbmdsZTogJGFuZ2xlIC8gMTgwZGVnICogJHBpO1xuICB9XG4gIEBpZiB1bml0KCRhbmdsZSkgPT0gXCJyYWRcIiB7XG4gICAgJGFuZ2xlOiAkYW5nbGUgLyAxcmFkO1xuICB9XG4gIEByZXR1cm4gJGFuZ2xlO1xufVxuXG5AZnVuY3Rpb24gc2luKCRhbmdsZSl7XG4gICRhOiBfdG9fdW5pdGxlc3NfcmFkKCRhbmdsZSk7XG4gICRzaW46ICRhO1xuICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRfcHJlY2lzaW9uIHtcbiAgICAkc2luOiAkc2luICsgKHBvdygtMSwgJG4pIC8gZmFjdCgyICogJG4gKyAxKSApICogcG93KCRhLCAoMiAqICRuICsgMSkpO1xuICB9XG4gIEByZXR1cm4gJHNpbjtcbn1cblxuQGZ1bmN0aW9uIGNvcygkYW5nbGUpe1xuICAkYTogX3RvX3VuaXRsZXNzX3JhZCgkYW5nbGUpO1xuICAkY29zOiAxO1xuICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRfcHJlY2lzaW9uIHtcbiAgICAkY29zOiAkY29zICsgKCBwb3coLTEsJG4pIC8gZmFjdCgyKiRuKSApICogcG93KCRhLDIqJG4pO1xuICB9XG4gIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpe1xuICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTGlzdHNcblxuQGZ1bmN0aW9uIHNsaWNlLWxpc3QoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICAkcmVzdWx0OiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCRzdGFydCkgIT0gbnVtYmVyIG9yIHR5cGUtb2YoJGVuZCkgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIkVpdGhlciAkc3RhcnQgb3IgJGVuZCBhcmUgbm90IGEgbnVtYmVyIGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2UgaWYgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHdhcm4gXCJUaGUgc3RhcnQgaW5kZXggaGFzIHRvIGJlIGxlc3NlciB0aGFuIG9yIGVxdWFscyB0byB0aGUgZW5kIGluZGV4IGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2UgaWYgJHN0YXJ0IDwgMSBvciAkZW5kIDwgMSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4ZXMgbXVzdCBiZSBub24temVybyBpbnRlZ2VycyBmb3IgYHNsaWNlYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRzdGFydCA+IGxlbmd0aCgkbGlzdCkge1xuICAgIEB3YXJuIFwiTGlzdCBpbmRleCBpcyAjeyRzdGFydH0gYnV0IGxpc3QgaXMgb25seSAje2xlbmd0aCgkbGlzdCl9IGl0ZW0gbG9uZyBmb3IgYHNsaWNlYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRlbmQgPiBsZW5ndGgoJGxpc3QpIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggaXMgI3skZW5kfSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU3RyaW5nc1xuXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDb2xvcnNcblxuQGZ1bmN0aW9uIHJnYmEtdG8taGV4KCRjb2xvciwgJGJhY2tncm91bmQ6ICNmZmYpIHtcbiAgQGlmICRjb2xvciBhbmQgYWxwaGEoJGNvbG9yKSAhPSAxIHtcbiAgICAkcGVyY2VudDogYWxwaGEoJGNvbG9yKSAqIDEwMCU7XG4gICAgJG9wYXF1ZTogb3BhY2lmeSgkY29sb3IsIDEpO1xuXG4gICAgQHJldHVybiBtaXgoJG9wYXF1ZSwgJGJhY2tncm91bmQsICRwZXJjZW50KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHlpcS12YWx1ZSgkY29sb3IpIHtcbiAgQGlmICRjb2xvciA9PSB0cmFuc3BhcmVudCB7XG4gICAgQHJldHVybiAkYm9keS1jb2xvcjtcbiAgfSBAZWxzZSBpZiBhbHBoYSgkY29sb3IpICE9IDEge1xuICAgICRjb2xvcjogcmdiYS10by1oZXgoJGNvbG9yKTtcbiAgfVxuXG4gICRyOiByZWQoJGNvbG9yKTtcbiAgJGc6IGdyZWVuKCRjb2xvcik7XG4gICRiOiBibHVlKCRjb2xvcik7XG5cbiAgQHJldHVybiAoKCRyICogMjk5KSArICgkZyAqIDU4NykgKyAoJGIgKiAxMTQpKSAvIDEwMDA7XG59XG5cbi8vIENvbG9yIGNvbnRyYXN0XG5AZnVuY3Rpb24geWlxKCRjb2xvcikge1xuICAkeWlxOiB5aXEtdmFsdWUoJGNvbG9yKTtcblxuICBAaWYgKCR5aXEgPj0gMTYwKSB7XG4gICAgQHJldHVybiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjQwKSwgIzAwMCk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gI2ZmZjtcbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFVuaXRzXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBmdW5jdGlvbiBweC10by1yZW0oJHZhbHVlKSB7XG4gIC8vIEFzc3VtZXMgdGhlIGJyb3dzZXIgZGVmYXVsdCBmb250IHNpemUgPSBgMTZweGBcbiAgQHJldHVybiAoc3RyaXAtdW5pdCgkdmFsdWUpIC8gMTYpICogMXJlbTtcbn1cblxuQGZ1bmN0aW9uIHJlbS10by1weCgkdmFsdWUpIHtcbiAgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0IGZvbnQgc2l6ZSA9IGAxNnB4YFxuICBAcmV0dXJuIChzdHJpcC11bml0KCR2YWx1ZSkgKiAxNikgKiAxcHg7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogVXRpbGl0aWVzXG5cbkBmdW5jdGlvbiBnZXQtYnRuLWNvbG9ycygkYmFja2dyb3VuZCwgJGJvcmRlcikge1xuICBAaWYgJGJhY2tncm91bmQgPT0gdHJhbnNwYXJlbnQge1xuICAgICRidG4tc2hhZG93OiByZ2JhKHJnYmEtdG8taGV4KCRib3JkZXIsICMwMDApLCAuMDUpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICBiZy1ob3ZlcjogIHJnYmEoJGJvcmRlciwgLjA2KSxcbiAgICAgIGJnLWFjdGl2ZTogcmdiYSgkYm9yZGVyLCAuMTIpLFxuICAgICAgYm9yZGVyOiAgICAkYm9yZGVyLFxuICAgICAgc2hhZG93OiAgICBpZigkZW5hYmxlLXNoYWRvd3MsICgkYnRuLWJveC1zaGFkb3csIDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoICRidG4tc2hhZG93KSwgMCAwIDAgJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGggJGJ0bi1zaGFkb3cpXG4gICAgKTtcbiAgfSBAZWxzZSBpZiBhbHBoYSgkYmFja2dyb3VuZCkgIT0gMSB7XG4gICAgJGJnLWFscGhhOiAgIGFscGhhKCRiYWNrZ3JvdW5kKTtcbiAgICAkYnRuLXNoYWRvdzogcmdiYSgkYmFja2dyb3VuZCwgJGJnLWFscGhhIC0gKCRiZy1hbHBoYSAqIDU1IC8gMTAwKSApO1xuXG4gICAgQHJldHVybiAoXG4gICAgICBiZy1ob3ZlcjogIHJnYmEoJGJhY2tncm91bmQsICRiZy1hbHBoYSArIDAuMDUpLFxuICAgICAgYmctYWN0aXZlOiByZ2JhKCRiYWNrZ3JvdW5kLCAkYmctYWxwaGEgKyAwLjEzKSxcbiAgICAgIGJvcmRlcjogICAgdHJhbnNwYXJlbnQsXG4gICAgICBzaGFkb3c6ICAgIGlmKCRlbmFibGUtc2hhZG93cywgKCRidG4tYm94LXNoYWRvdywgMCAwIDAgJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGggJGJ0bi1zaGFkb3cpLCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCAkYnRuLXNoYWRvdylcbiAgICApO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIGJnLWhvdmVyOiAgcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjk1KSwgIzAwMCksXG4gICAgICBiZy1hY3RpdmU6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC44NyksICMwMDApLFxuICAgICAgYm9yZGVyOiAgICB0cmFuc3BhcmVudCxcbiAgICAgIHNoYWRvdzogICAgaWYoJGVuYWJsZS1zaGFkb3dzLCAoJGJ0bi1ib3gtc2hhZG93LCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRiYWNrZ3JvdW5kLCAuNCkpLCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRiYWNrZ3JvdW5kLCAuNCkpXG4gICAgKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LW1hdGVyaWFsLWJ0bi1jb2xvcnMoJGJhY2tncm91bmQpIHtcbiAgQGlmIGFscGhhKCRiYWNrZ3JvdW5kKSAhPSAxIHtcbiAgICAkYmFja2dyb3VuZDogcmdiYS10by1oZXgoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQHJldHVybiAoXG4gICAgYmctaG92ZXI6ICByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuOTUpLCAjZmZmKSxcbiAgICBiZy1hY3RpdmU6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC44NyksICNmZmYpLFxuICApO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW5hdi1jb2xvcnMoJGJnLCAkYWN0aXZlLWNvbG9yOiBudWxsLCAkaW5hY3RpdmUtY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwpIHtcbiAgJGJnOiByZ2JhLXRvLWhleCgkYmcpO1xuICAkYWN0aXZlLWNvbG9yOiByZ2JhLXRvLWhleCgkYWN0aXZlLWNvbG9yKTtcbiAgJGFjdGl2ZS1jb2xvcjogaWYoJGFjdGl2ZS1jb2xvciwgJGFjdGl2ZS1jb2xvciwgeWlxKCRiZykpO1xuICAkeWlxLXBlcmNlbnQ6IHlpcS12YWx1ZSgkYmcpIC8gMjU1O1xuICAkeWlxLXBlcmNlbnQtaW52ZXJ0ZWQ6IDEgLSAkeWlxLXBlcmNlbnQ7XG5cbiAgJG9wYWNpdHk6IGlmKCRhY3RpdmUtY29sb3IgPT0gI2ZmZiwgLjYgKyAoLjQgKiAkeWlxLXBlcmNlbnQpLCAuNiArICguNCAqICgxIC0gJHlpcS1wZXJjZW50KSkpO1xuXG4gICRjb2xvcjogaWYoJGluYWN0aXZlLWNvbG9yLCByZ2JhLXRvLWhleCgkaW5hY3RpdmUtY29sb3IsICRiZyksIHJnYmEtdG8taGV4KHJnYmEoJGFjdGl2ZS1jb2xvciwgaWYoJHlpcS1wZXJjZW50IDwgLjI1LCAkb3BhY2l0eSAtIC4xNSwgJG9wYWNpdHkpKSwgJGJnKSk7XG4gICRkaXNhYmxlZC1jb2xvcjogcmdiYS10by1oZXgocmdiYSgkY29sb3IsIC42KSwgJGJnKTtcbiAgJG11dGVkLWNvbG9yOiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjc1KSwgJGJnKTtcbiAgJGJvcmRlcjogaWYoJGJvcmRlciwgJGJvcmRlciwgaWYoJHlpcS1wZXJjZW50ID4gLjc1LCByZ2JhKCRhY3RpdmUtY29sb3IsICRvcGFjaXR5IC8gOCksIGlmKCR5aXEtcGVyY2VudCA8IC4yNSwgcmdiYSgkYWN0aXZlLWNvbG9yLCAuMDYpLCByZ2JhKCRhY3RpdmUtY29sb3IsIC4xNSkpKSk7XG5cbiAgQHJldHVybiAoXG4gICAgLy8gTWV0YWRhdGFcbiAgICBvcGFjaXR5OiAkb3BhY2l0eSxcbiAgICB5aXEtcGVyY2VudDogJHlpcS1wZXJjZW50LFxuICAgIHlpcS1wZXJjZW50LWludmVydGVkOiAkeWlxLXBlcmNlbnQtaW52ZXJ0ZWQsXG5cbiAgICAvLyBDb2xvcnNcbiAgICBiZzogJGJnLFxuICAgIGNvbG9yOiAkY29sb3IsXG4gICAgYWN0aXZlLWNvbG9yOiAkYWN0aXZlLWNvbG9yLFxuICAgIGRpc2FibGVkLWNvbG9yOiAkZGlzYWJsZWQtY29sb3IsXG4gICAgbXV0ZWQtY29sb3I6ICRtdXRlZC1jb2xvcixcbiAgICBib3JkZXI6ICRib3JkZXJcbiAgKTtcbn1cbiIsIiIsIi8vIFZhcmlhYmxlc1xuLy9cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDb2xvcnNcblxuJHdoaXRlOiAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRibGFjazogICAgICAgICMxODFDMjEgIWRlZmF1bHQ7XG4kZ3JheS0yNTogICAgICByZ2JhKCRibGFjaywgLjAxNSkgIWRlZmF1bHQ7XG4kZ3JheS01MDogICAgICByZ2JhKCRibGFjaywgLjAzKSAhZGVmYXVsdDtcbiRncmF5LTEwMDogICAgIHJnYmEoJGJsYWNrLCAuMDYpICFkZWZhdWx0O1xuJGdyYXktMjAwOiAgICAgcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRncmF5LTMwMDogICAgIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG4kZ3JheS00MDA6ICAgICByZ2JhKCRibGFjaywgLjMpICFkZWZhdWx0O1xuJGdyYXktNTAwOiAgICAgcmdiYSgkYmxhY2ssIC40KSAhZGVmYXVsdDtcbiRncmF5LTYwMDogICAgIHJnYmEoJGJsYWNrLCAuNSkgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICAgICByZ2JhKCRibGFjaywgLjYpICFkZWZhdWx0O1xuJGdyYXktODAwOiAgICAgcmdiYSgkYmxhY2ssIC44KSAhZGVmYXVsdDtcbiRncmF5LTkwMDogICAgIHJnYmEoJGJsYWNrLCAuOSkgIWRlZmF1bHQ7XG5cbiRncmF5czogKFxuICBcIjI1XCI6ICRncmF5LTI1LFxuICBcIjUwXCI6ICRncmF5LTUwXG4pICFkZWZhdWx0O1xuXG4kYmx1ZTogICAgICAgICAjMWU3MGNkICFkZWZhdWx0O1xuJGluZGlnbzogICAgICAgIzY2MTBmMiAhZGVmYXVsdDtcbiRwdXJwbGU6ICAgICAgICM2ZjQyYzEgIWRlZmF1bHQ7XG4kcGluazogICAgICAgICAjZTgzZThjICFkZWZhdWx0O1xuJHJlZDogICAgICAgICAgI2Q5NTM0ZiAhZGVmYXVsdDtcbiRvcmFuZ2U6ICAgICAgICNGRUI3NDQgIWRlZmF1bHQ7XG4keWVsbG93OiAgICAgICAjRkZEOTUwICFkZWZhdWx0O1xuJGdyZWVuOiAgICAgICAgIzAyQkM3NyAhZGVmYXVsdDtcbiR0ZWFsOiAgICAgICAgICMyMGM5OTcgIWRlZmF1bHQ7XG4kY3lhbjogICAgICAgICAjMjhjM2Q3ICFkZWZhdWx0O1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiAgICRpbmRpZ28sXG4gIFwic2Vjb25kYXJ5XCI6ICM4ODk3QUEsXG4gIFwic3VjY2Vzc1wiOiAgICRncmVlbixcbiAgXCJpbmZvXCI6ICAgICAgJGN5YW4sXG4gIFwid2FybmluZ1wiOiAgICR5ZWxsb3csXG4gIFwiZGFuZ2VyXCI6ICAgICRyZWQsXG4gIFwiZGFya1wiOiAgICAgICRncmF5LTkwMFxuKSAhZGVmYXVsdDtcblxuJGJvZHktY29sb3I6ICAgICAgICM0RTUxNTUgIWRlZmF1bHQ7IC8vIzRhNGE0YVxuXG4vLyAjMDZjXG4kbGluay1jb2xvcjogICAgICAgJGJsdWUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogbGlnaHRlbigkbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcblxuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBGb250c1xuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJSb2JvdG9cIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6ICAgICAgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAgXCJTRk1vbm8tUmVndWxhclwiLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktYmFzZTogICAgICAgJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbiRmb250LXNpemUtYmFzZTogICAgICAgICAuODk0cmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS14bDogICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLWxnOiAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtc206ICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLXhzOiAgICAgICAgICAgJGZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcblxuJGZvbnQtd2VpZ2h0LXNlbWlib2xkOiAgIDUwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkZXI6ICAgICA5MDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtbGlnaHRlcjogICAgMTAwICFkZWZhdWx0O1xuXG4kbGluZS1oZWlnaHQtYmFzZTogICAgICAgMS40NyAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC14bDogICAgICAgICAxLjUgIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQtbGc6ICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXNtOiAgICAgICAgIDEuNSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC14czogICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiRoMS1mb250LXNpemU6ICAgICAgICAgICAyLjI1cmVtICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogICAgICAgICAgIDEuODEzcmVtICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogICAgICAgICAgIDEuNTYzcmVtICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogICAgICAgICAgIDEuMzEzcmVtICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuXG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgJGZvbnQtd2VpZ2h0LXNlbWlib2xkICFkZWZhdWx0O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAgIDEuMSAhZGVmYXVsdDtcbiRoZWFkaW5ncy1tYXJnaW4tYm90dG9tOiAkc3BhY2VyICFkZWZhdWx0O1xuXG4kZGlzcGxheTEtc2l6ZTogICAgICAgICAgNHJlbSAhZGVmYXVsdDtcbiRkaXNwbGF5Mi1zaXplOiAgICAgICAgICAzLjVyZW0gIWRlZmF1bHQ7XG4kZGlzcGxheTMtc2l6ZTogICAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRkaXNwbGF5NC1zaXplOiAgICAgICAgICAycmVtICFkZWZhdWx0O1xuXG4kdGlueS1mb250LXNpemU6ICAgICAgICAgNzAlICFkZWZhdWx0O1xuJHNtYWxsLWZvbnQtc2l6ZTogICAgICAgIDg1JSAhZGVmYXVsdDtcbiRiaWctZm9udC1zaXplOiAgICAgICAgICAxMTIlICFkZWZhdWx0O1xuJGxhcmdlLWZvbnQtc2l6ZTogICAgICAgIDE1MCUgIWRlZmF1bHQ7XG4keGxhcmdlLWZvbnQtc2l6ZTogICAgICAgMTcwJSAhZGVmYXVsdDtcblxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgIHJnYmEtdG8taGV4KCRncmF5LTUwMCkgIWRlZmF1bHQ7XG4kdGV4dC1tdXRlZC1ob3ZlcjogICAgICAgcmdiYS10by1oZXgoJGdyYXktNjAwKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXNtYWxsLWNvbG9yOiByZ2JhLXRvLWhleCgkZ3JheS01MDApICFkZWZhdWx0O1xuJHRleHQtbGlnaHQ6ICAgICAgICAgICAgIHJnYmEtdG8taGV4KCRncmF5LTQwMCkgIWRlZmF1bHQ7XG4kdGV4dC1saWdodGVyOiAgICAgICAgICAgcmdiYS10by1oZXgoJGdyYXktMzAwKSAhZGVmYXVsdDtcbiR0ZXh0LWxpZ2h0ZXN0OiAgICAgICAgICByZ2JhLXRvLWhleCgkZ3JheS0yMDApICFkZWZhdWx0O1xuXG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiAgbm9uZSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBHcmlkXG5cbiRncmlkLWd1dHRlci13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuXG4kY29udGFpbmVyLXBhZGRpbmcteDogMnJlbSAhZGVmYXVsdDtcbiRjb250YWluZXItcGFkZGluZy14LXNtOiAxcmVtICFkZWZhdWx0O1xuJGNvbnRhaW5lci1wYWRkaW5nLXk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDb21wb25lbnRzXG5cbiRib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywuMDYpICFkZWZhdWx0O1xuJGJvcmRlci1pbm5lci1jb2xvcjogICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy14bDogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1zbTogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy14czogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRjb21wb25lbnQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAxLjU0ICFkZWZhdWx0O1xuJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGg6ICAgIDJweCAhZGVmYXVsdDtcblxuJGZsb2F0aW5nLWNvbXBvbmVudC1ib3JkZXItY29sb3I6IHJnYmEoJGJsYWNrLCAuMDUpICFkZWZhdWx0O1xuJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3c6ICAgICAgIDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIC4wOSkgIWRlZmF1bHQ7XG5cbiRoci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kYm9yZGVyZWQtcm93LWJvcmRlci1jb2xvcjogICAgICAgJGhyLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJGNhcmV0LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgIC40MmVtICFkZWZhdWx0O1xuJGNhcmV0LXZlcnRpY2FsLWFsaWduOiAgICAgICAgICAgIG1pZGRsZSAhZGVmYXVsdDtcbiRjYXJldC1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAuNWVtICFkZWZhdWx0O1xuXG4kb3ZlcmZsb3dzOiBhdXRvLCBoaWRkZW4sIHNjcm9sbCwgdmlzaWJsZSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBaLWluZGV4IG1hc3RlciBsaXN0XG5cbiR6aW5kZXgtbGF5b3V0LWZpeGVkOiAgMTA4MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWwtdG9wOiAgICAgMTA5MCAhZGVmYXVsdDtcbiR6aW5kZXgtbGF5b3V0LW1vYmlsZTogMTEwMCAhZGVmYXVsdDtcbiR6aW5kZXgtbm90aWZpY2F0aW9uOiAgOTk5OTk5ICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFRhYmxlc1xuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAgICAgIC42MjVyZW0gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXNtOiAgIC4zMTI1cmVtICFkZWZhdWx0O1xuXG4kdGFibGUtYWNjZW50LWJnOiAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDI1KSAhZGVmYXVsdDtcbiR0YWJsZS1ob3Zlci1iZzogICAgICAgICAgcmdiYSgkYmxhY2ssIC4wMzUpICFkZWZhdWx0O1xuJHRhYmxlLWFjdGl2ZS1iZzogICAgICAgICByZ2JhLXRvLWhleCgkdGFibGUtaG92ZXItYmcpICFkZWZhdWx0O1xuXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgIHJnYmEtdG8taGV4KCRncmF5LTIwMCkgIWRlZmF1bHQ7XG5cbiR0YWJsZS1oZWFkLWJnOiAgICAgICAgICAgJGdyYXktNTAgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1jb2xvcjogICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4kdGFibGUtZGFyay1iZzogICAgICAgICAgICRncmF5LTkwMCAhZGVmYXVsdDtcbiR0YWJsZS1kYXJrLWFjY2VudC1iZzogICAgcmdiYSgkd2hpdGUsIC4wMykgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1ob3Zlci1iZzogICAgIHJnYmEoJHdoaXRlLCAuMDUpICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yOiBsaWdodGVuKHJnYmEtdG8taGV4KCRncmF5LTkwMCksIDclKSAhZGVmYXVsdDtcbiR0YWJsZS1kYXJrLWNvbG9yOiAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEJ1dHRvbnMgKyBGb3Jtc1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteTogICAgICAuNDM4cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXg6ICAgICAgMS4xMjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZTogICAgICAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWxpbmUtaGVpZ2h0OiAgICAxLjU0ICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS14czogICAwICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgteHM6ICAgLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS14czogICAkZm9udC1zaXplLXhzICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC14czogJGxpbmUtaGVpZ2h0LXhzICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1zbTogICAuMTg4cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgLjY4NzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbTogJGxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteC1sZzogICAxLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZzogICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZzogJGxpbmUtaGVpZ2h0LWxnICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS14bDogICAuODc1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgteGw6ICAgMi4xMjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS14bDogICAkZm9udC1zaXplLXhsICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC14bDogJGxpbmUtaGVpZ2h0LXhsICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEJ1dHRvbnNcblxuJGJ0bi1wYWRkaW5nLXkteHM6ICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkteHMgIWRlZmF1bHQ7XG4kYnRuLXBhZGRpbmcteC14czogICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC14cyAhZGVmYXVsdDtcbiRidG4tZm9udC1zaXplLXhzOiAgICAgICRpbnB1dC1idG4tZm9udC1zaXplLXhzICFkZWZhdWx0O1xuJGJ0bi1saW5lLWhlaWdodC14czogICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC14cyAhZGVmYXVsdDtcblxuJGJ0bi1wYWRkaW5nLXkteGw6ICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkteGwgIWRlZmF1bHQ7XG4kYnRuLXBhZGRpbmcteC14bDogICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC14bCAhZGVmYXVsdDtcbiRidG4tZm9udC1zaXplLXhsOiAgICAgICRpbnB1dC1idG4tZm9udC1zaXplLXhsICFkZWZhdWx0O1xuJGJ0bi1saW5lLWhlaWdodC14bDogICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC14bCAhZGVmYXVsdDtcblxuJGJ0bi1ib3JkZXItcmFkaXVzLXhzOiAgJGJvcmRlci1yYWRpdXMteHMgIWRlZmF1bHQ7XG4kYnRuLWJvcmRlci1yYWRpdXMteGw6ICAkYm9yZGVyLXJhZGl1cy14bCAhZGVmYXVsdDtcblxuJGJ0bi1ib3gtc2hhZG93OiAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRidG4tZm9jdXMtYm94LXNoYWRvdzogIDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoIHJnYmEodGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpLCAuMjUpICFkZWZhdWx0O1xuJGJ0bi1hY3RpdmUtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuJGJ0bi1kZWZhdWx0LWJnOiAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtYm9yZGVyOiAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtY29sb3I6ICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuJGJ0bi10cmFuc2l0aW9uOiAgICAgICAgYWxsIC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBGb3Jtc1xuXG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6ICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4kbGFiZWwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIC44MzEyNXJlbSAhZGVmYXVsdDtcbiRsYWJlbC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LXNlbWlib2xkICFkZWZhdWx0O1xuXG4kaW5wdXQtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgICAgICAgIC44NzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14LXNtOiAgICAgICAgICAgICAgICAgICAgICAgIC42MjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodC1zbTogICAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbSAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodC1sZzogICAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZGlzYWJsZWQtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEtdG8taGV4KCRncmF5LTEwMCkgIWRlZmF1bHQ7XG5cbiRpbnB1dC1mb2N1cy1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcblxuJGlucHV0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkdGV4dC1saWdodCAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodC1pbm5lcjogICAgICAgICAgICAgICAgICAgICAgICBweC10by1yZW0oZmxvb3IocmVtLXRvLXB4KCgkaW5wdXQtYnRuLWZvbnQtc2l6ZSAqICRpbnB1dC1idG4tbGluZS1oZWlnaHQpICsgKCRpbnB1dC1idG4tcGFkZGluZy15ICogMikpKSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLXNtOiAgICAgICAgICAgICAgICAgICAgIHB4LXRvLXJlbShmbG9vcihyZW0tdG8tcHgoKCRpbnB1dC1idG4tZm9udC1zaXplLXNtICogJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbSkgKyAoJGlucHV0LWJ0bi1wYWRkaW5nLXktc20gKiAyKSkpKSAhZGVmYXVsdDtcbiRpbnB1dC1oZWlnaHQtaW5uZXItbGc6ICAgICAgICAgICAgICAgICAgICAgcHgtdG8tcmVtKGZsb29yKHJlbS10by1weCgoJGZvbnQtc2l6ZS1sZyAqICRsaW5lLWhlaWdodC1sZykgKyAoJGlucHV0LWJ0bi1wYWRkaW5nLXktbGcgKiAyKSkpKSAhZGVmYXVsdDtcblxuJGlucHV0LWludmVydGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCNmZmYsIC4zKSAhZGVmYXVsdDtcbiRpbnB1dC1pbnZlcnRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRpbnB1dC1pbnZlcnRlZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgJGlucHV0LWludmVydGVkLWJnICFkZWZhdWx0O1xuJGlucHV0LWludmVydGVkLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICByZ2JhKCNmZmYsIC43KSAhZGVmYXVsdDtcbiRpbnB1dC1pbnZlcnRlZC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgcmdiYSgjZmZmLCAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW52ZXJ0ZWQtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICRpbnB1dC1pbnZlcnRlZC1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWdyb3VwLWFkZG9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgJGlucHV0LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplOiAgICAgICAgICAgICAxLjEyNXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAgICAgJGlucHV0LWJnICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItd2lkdGg6ICAgICAxcHggIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjogICAgICRpbnB1dC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1ndXR0ZXI6ICAgICAgICAgICAgICAgICAgICAgLjQzOHJlbSAhZGVmYXVsdDtcblxuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAgICBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDkuNSA3LjUnJTNFJTNDcG9seWxpbmUgcG9pbnRzPScwLjc1IDQuMzUgNC4xOCA2Ljc1IDguNzUgMC43NScgc3R5bGU9J2ZpbGw6bm9uZTtzdHJva2U6X0NPTE9SXztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuNXB4Jy8lM0UlM0Mvc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1iZy1zaXplOiAgICAgICAgIDY1JSAhZGVmYXVsdDtcbiRjdXN0b20tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1iZzogICAgICAgICAgXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDQnJTNFJTNDcGF0aCBzdHJva2U9J19DT0xPUl8nIGQ9J00wIDJoNCcvJTNFJTNDL3N2ZyUzRVwiICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRldGVybWluYXRlLWJnLXNpemU6ICAgICAuNXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWJnOiAgICAgICAgICAgICAgICAgXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM0UlM0NjaXJjbGUgcj0nMycgZmlsbD0nX0NPTE9SXycvJTNFJTNDL3N2ZyUzRVwiICFkZWZhdWx0O1xuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYmctc2l6ZTogICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1kaXNhYmxlZC1iZzogICAgICAkaW5wdXQtZGlzYWJsZWQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICAgICAgICR0ZXh0LW11dGVkICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWNoZWNrZWQ6ICAgIG5vbmUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhZGlvLWluZGljYXRvci1pY29uLWNoZWNrZWQ6ICAgICAgIG5vbmUgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICRpbnB1dC1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXktc206ICAgICAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LXNtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LXNtOiAgICAgICAgICAgICAgICAkaW5wdXQtcGFkZGluZy14LXNtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1sZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZzogICAgICAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteC1sZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc6ICAgICAgICAgICAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAxcmVtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdzogICAgICAgICAgICBub25lICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICRpbnB1dC1kaXNhYmxlZC1iZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWludmVydGVkLWRpc2FibGVkLWNvbG9yOiAgICAgJGlucHV0LWludmVydGVkLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW52ZXJ0ZWQtZGlzYWJsZWQtYmc6ICAgICAgICAkaW5wdXQtaW52ZXJ0ZWQtZGlzYWJsZWQtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc2VsZWN0LWJnLXNpemU6ICAgICAgICAgICAgICAgICAgICAgMTdweCAxMnB4ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yOiAgICAgICAgICAgICAgICAgICB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0lBQUFBWUNBWUFBQUNmcGk4SkFBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFLQkpSRUZVU0EzdDFrRUtnQ0FRQlZDVER0Y2l1bEoycFdqUmlhcFRhUHdva1VFalJXMHpnYUhTT0k5UFFXTGJENE1oZnI3a3ovMXRlNGJZS080Sko4S0owQVRvdXFVYnFldXVINVRSZWt5cGI2U2NzcjJzNnpJckhCZ0xRUTFxczBFQWlNVThDTlJtaGNSZ1hFUVJ5QmNNUlJTRHZHRjhpS0lRSHlhRXdMT2l4bThBUG0yTXEySG9WZ01TNnUzdVovOXEzTU5qNWd5aGFYRWluQWhOZ0s1UHB6aEVPL2hTTUs0QUFBQUFTVVZPUks1Q1lJST0nKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWluZGljYXRvci1pbnZlcnRlZDogICAgICAgICAgdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNJQUFBQVlDQVlBQUFDZnBpOEpBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBSjVKUkVGVVNBM3QxRzBLZ0NBTUJ1Q01EdFpsb2pPRmh6VmZVYUZsSDQ0Ti8weUlzcHcrdkdoVENHSEZOUTF1OCtEMTYvSUdxVkhrQjB2RUVxRUowUDVDWDNENzhWKzB4OXFOV2UvRk5xdHo3b2dJejRCNDFJcEJBR0JnRWdLMW9wQk9URVdvUUg1aUxnZzF5QWZtaGxDRlBHQ2FDSXdWTzc2WXJOV3dnZVBSVHAveVptNE4wNGRnMVRkQVVZbWZtakp4NzkwZ05ERkx4QktoQ2REK0NRM0dIbmd2SlRHS0FBQUFBRWxGVGtTdVFtQ0MnKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWluZGljYXRvci1ydGw6ICAgICAgICAgICAgICAgdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNJQUFBQVlDQVlBQUFDZnBpOEpBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBS2RKUkVGVVNBM3RsbEVLZ0NBTWhsTTZYQS9SbGJJclJRK2RxRHFGeFI4cHRFd05GSHVZRCtMYzNENStIQ3Fxd21OWnR4MElzakNITGM4Z1ZvcHJ3WXF3SWxRQmF0ZE4yNmxkNjU0Nlltd2g1VEJQbzRxSkRjVklKRUxDVUNEMXA0UkE3ck5ydnNLa2hyQWdXTVRDNUlDNGdjVEE1SUo0Z1BoZ2NrSTRRVnd3dVNGUVUyQjZHMmh0K0ZLMXFLdU8rUVo0UVZ3SFUrOFpFSDcwcUxLc0NDdENGYUQyYis3SUFaR2RQUHh1V1lHTUFBQUFBRWxGVGtTdVFtQ0MnKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWluZGljYXRvci1pbnZlcnRlZC1ydGw6ICAgICAgdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNJQUFBQVlDQVlBQUFDZnBpOEpBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBSnRKUkVGVVNBM3RsbEVLd0NBSWhtZDBzRjFtN0V5anc3YU1DSExXV2hqdHdSNGlVMzQvZmhLQ2JmSHkzdStJWUJaejVQWUtrcTFJQjNWRUhhRU8wTmlHT1Q3RDVVRVRuYkVEZ0t1enRsbG1rcEJyVnZGSk1RaVVqMU16QUNNS2tVSHc4QUZHSEtJQTZZU1pBdkVBZVlHWkJzR0NWR0NtUW1CUGl4dTM4TTJFMFk2cDlINjRNckU3RUZNYUZOTC9TTTA0L1FaUVo5U1IzenB5QTFpWUhuYlNMUElRQUFBQUFFbEZUa1N1UW1DQycpICFkZWZhdWx0O1xuXG4kY3VzdG9tLWZpbGUtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cbiRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgICAgICAgICAgLjEyNXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg6ICAgICAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10cmFjay1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLWRpc2FibGVkLXRyYWNrLWJnOiAgICAgICAgICAgICRncmF5LTUwICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10cmFjay1ib3gtc2hhZG93OiAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10aHVtYi1iZzogICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWFjdGl2ZS1iZzogICAgICAgICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJveC1zaGFkb3c6ICAgICAgICAgICAgIDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xKSwgJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItZGlzYWJsZWQtYmc6ICAgICAgICAgICAgJGN1c3RvbS1yYW5nZS10aHVtYi1iZyAhZGVmYXVsdDtcblxuJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3I6ICAgICAgICAgICAgICAgICB0aGVtZS1jb2xvcihcInN1Y2Nlc3NcIikgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1pbnZhbGlkLWNvbG9yOiAgICAgICAgICAgICAgIHRoZW1lLWNvbG9yKFwiZGFuZ2VyXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZC1jb2xvcjogICAgICAgICAgICAkZm9ybS1mZWVkYmFjay12YWxpZC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZC1jb2xvcjogICAgICAgICAgJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQ6ICAgICAgICAgICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPScjeyRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3J9JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1pY29uLXZhbGlkLXJ0bDogICAgICAgICAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzZSUzY3BhdGggZmlsbD0nI3skZm9ybS1mZWVkYmFjay1pY29uLXZhbGlkLWNvbG9yfScgZD0nTTIuMyA2LjczTC42IDQuNTNjLS40LTEuMDQuNDYtMS40IDEuMS0uOGwxLjEgMS40IDMuNC0zLjhjLjYtLjYzIDEuNi0uMjcgMS4yLjdsLTQgNC42Yy0uNDMuNS0uOC40LTEuMS4xeicgdHJhbnNmb3JtPSdzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC04LCAwKScvJTNlJTNjL3N2ZyUzZVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkOiAgICAgICAgICAgICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQtY29sb3J9JyB2aWV3Qm94PSctMiAtMiA3IDcnJTNlJTNjcGF0aCBzdHJva2U9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgZD0nTTAgMGwzIDNtMC0zTDAgMycvJTNlJTNjY2lyY2xlIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3k9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIGN5PSczJyByPScuNScvJTNlJTNjL3N2ZyUzRVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLXJ0bDogICAgICAgICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQtY29sb3J9JyB2aWV3Qm94PSctMiAtMiA3IDcnJTNlJTNjcGF0aCBzdHJva2U9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgZD0nTTAgMGwzIDNtMC0zTDAgMycvJTNlJTNjY2lyY2xlIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3k9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIGN5PSczJyByPScuNScvJTNlJTNjL3N2ZyUzRVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nOiAgICAgICAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZyArICRpbnB1dC1oZWlnaHQtaW5uZXIgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctc206ICAgICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nICsgJGlucHV0LWhlaWdodC1pbm5lci1zbSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1sZzogICAgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmcgKyAkaW5wdXQtaGVpZ2h0LWlubmVyLWxnICFkZWZhdWx0O1xuXG4kZm9ybS12YWxpZGF0aW9uLXN0YXRlczogKFxuICBcInZhbGlkXCI6IChcbiAgICBcImNvbG9yXCI6ICAgICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yLFxuICAgIFwiaWNvblwiOiAgICAgJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZCxcbiAgICBcImljb24tcnRsXCI6ICRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtcnRsXG4gICksXG4gIFwiaW52YWxpZFwiOiAoXG4gICAgXCJjb2xvclwiOiAgICAkZm9ybS1mZWVkYmFjay1pbnZhbGlkLWNvbG9yLFxuICAgIFwiaWNvblwiOiAgICAgJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLFxuICAgIFwiaWNvbi1ydGxcIjogJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLXJ0bFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBEcm9wZG93bnNcblxuJGRyb3Bkb3duLXBhZGRpbmcteTogICAgICAgICAgIC4zMTI1cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJvcmRlci1jb2xvcjogICAgICAgICRmbG9hdGluZy1jb21wb25lbnQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLWRpdmlkZXItYmc6ICAgICAgICAgICRkcm9wZG93bi1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYm94LXNoYWRvdzogICAgICAgICAgJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3cgIWRlZmF1bHQ7XG4kZHJvcGRvd24tZm9udC1zaXplOiAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taW5uZXItYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWl0ZW0tcGFkZGluZy15OiAgICAgIC40MzhyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXg6ICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I6ICAgICRkcm9wZG93bi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstaG92ZXItYmc6ICAgICAgICRncmF5LTUwICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstbGluZS1oZWlnaHQ6ICAgICRjb21wb25lbnQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yOiAkdGV4dC1saWdodGVyICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taGVhZGVyLWNvbG9yOiAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTmF2c1xuXG4kbmF2LXNwYWNlcjogICAgICAgICAgICAgICAgICAgICAgICAuMTI1cmVtICFkZWZhdWx0O1xuXG4kbmF2LWxpbmstcGFkZGluZy15OiAgICAgICAgICAgICAgICAuNjI1cmVtICFkZWZhdWx0O1xuJG5hdi1saW5rLXBhZGRpbmcteDogICAgICAgICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcbiRuYXYtbGluay1saW5lLWhlaWdodDogICAgICAgICAgICAgICRjb21wb25lbnQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRuYXYtbGluay1wYWRkaW5nLXktbGc6ICAgICAgICAgICAgIC44NzVyZW0gIWRlZmF1bHQ7XG4kbmF2LWxpbmstcGFkZGluZy14LWxnOiAgICAgICAgICAgICAxLjMxMjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWxpbmstbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICAkbGluZS1oZWlnaHQtbGcgIWRlZmF1bHQ7XG5cbiRuYXYtbGluay1wYWRkaW5nLXktc206ICAgICAgICAgICAgIC4zMTI1cmVtICFkZWZhdWx0O1xuJG5hdi1saW5rLXBhZGRpbmcteC1zbTogICAgICAgICAgICAgLjg3NXJlbSAhZGVmYXVsdDtcbiRuYXYtbGluay1saW5lLWhlaWdodC1zbTogICAgICAgICAgICRsaW5lLWhlaWdodC1zbSAhZGVmYXVsdDtcblxuJG5hdi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJHRleHQtbXV0ZWQtaG92ZXIgIWRlZmF1bHQ7XG4kbmF2LWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAkdGV4dC1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAgJGdyYXktMTAwICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kbmF2LXBpbGxzLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAjZmZmICFkZWZhdWx0O1xuJG5hdi1waWxscy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTmF2YmFyXG5cbiRuYXZiYXItdG9nZ2xlci1wYWRkaW5nLXk6ICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDogICAgICAgICAgLjdyZW0gIWRlZmF1bHQ7XG4kbmF2YmFyLXRvZ2dsZXItZm9udC1zaXplOiAgICAgICAgICAuNjI1cmVtICFkZWZhdWx0O1xuXG4kbmF2YmFyLWRhcmstY29sb3I6ICAgICAgICAgICAgICAgICByZ2JhKCR3aGl0ZSwgLjgpICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWRpc2FibGVkLWNvbG9yOiAgICAgICAgcmdiYSgkd2hpdGUsIC40KSAhZGVmYXVsdDtcblxuJG5hdmJhci1saWdodC1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktNTAwICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjogICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtZGlzYWJsZWQtY29sb3I6ICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtdG9nZ2xlci1ib3JkZXItY29sb3I6IHJnYmEoJGJsYWNrLCAuMDYpICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFBhZ2luYXRpb25cblxuJHBhZ2luYXRpb24tcGFkZGluZy15OiAgICAgICAgICAgICAuNjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14OiAgICAgICAgICAgICAuMzEyNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteS1zbTogICAgICAgICAgLjM3NXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteC1zbTogICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy15LWxnOiAgICAgICAgICAuOTM3NXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteC1sZzogICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5lLWhlaWdodDogICAgICAgICAgIDEgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICRib3JkZXItaW5uZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1iZyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJvcmRlci1jb2xvcjogICAgJGdyYXktMjAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICR0ZXh0LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICRwYWdpbmF0aW9uLWJnICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgbm9uZSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tc3BhY2VyOiAgICAgICAgICAgICAgICAuMTg3NXJlbSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDYXJkc1xuXG4kY2FyZC1zcGFjZXIteTogICAgICAgICAgICAuODc1cmVtICFkZWZhdWx0O1xuJGNhcmQtc3BhY2VyLXg6ICAgICAgICAgICAgMS41cmVtICFkZWZhdWx0O1xuJGNhcmQtc3BhY2VyLXgtc206ICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1jb2xvcjogICAgICAgICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kY2FyZC1pbm5lci1ib3JkZXItY29sb3I6ICAkYm9yZGVyLWlubmVyLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtY2FwLWJnOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiRjYXJkLWltZy1vdmVybGF5LXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuJGNhcmQtY29sdW1ucy1nYXA6ICAgICAgICAgMS41cmVtICFkZWZhdWx0O1xuJGNhcmQtc2hhZG93OiAgICAgICAgICAgICAgMCAxcHggNHB4IHJnYmEoJGJsYWNrLCAuMDEyKSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBUb29sdGlwc1xuXG4kdG9vbHRpcC1jb2xvcjogICAgICAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtYmc6ICAgICAgICAgcmdiYS10by1oZXgoJGdyYXktODAwKSAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6ICAgIDEgIWRlZmF1bHQ7XG4kdG9vbHRpcC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFBvcG92ZXJzXG5cbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogICAgICRncmF5LTEwMCAhZGVmYXVsdDtcbiRwb3BvdmVyLWJveC1zaGFkb3c6ICAgICAgICRmbG9hdGluZy1jb21wb25lbnQtc2hhZG93ICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1oZWFkZXItYmc6ICAgICAgICAkZ3JheS01MCAhZGVmYXVsdDtcbiRwb3BvdmVyLWhlYWRlci1jb2xvcjogICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy15OiAuNjI1cmVtICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1ib2R5LWNvbG9yOiAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBCYWRnZXNcblxuJGJhZGdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgLjg1OGVtICFkZWZhdWx0O1xuJGJhZGdlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgJGZvbnQtd2VpZ2h0LXNlbWlib2xkICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteTogICAgICAgICAgICAgLjI1ZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy14OiAgICAgICAgICAgICAuNDE3ZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtYm9yZGVyLXJhZGl1czogICAgICAgICAuMTI1cmVtICFkZWZhdWx0O1xuXG4kYmFkZ2UtcGlsbC1wYWRkaW5nLXg6ICAgICAgICAuNTgzZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzOiAgICAxMHJlbSAhZGVmYXVsdDtcblxuJGJhZGdlLWRlZmF1bHQtYmc6ICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJGJhZGdlLW91dGxpbmUtZGVmYXVsdC1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTW9kYWxzXG5cbiRtb2RhbC1pbm5lci1wYWRkaW5nOiAgICAgICAgICAgIDEuNTYyNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy15OiAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteDogICAgICAgICAkbW9kYWwtaW5uZXItcGFkZGluZyAhZGVmYXVsdDtcbiRtb2RhbC1mb290ZXItcGFkZGluZzogICAgICAgICAgIDEuMjVyZW0gJG1vZGFsLWlubmVyLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogICAgIDBweCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItYm9yZGVyLXdpZHRoOiAgICAgIDFweCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICAgICRib3JkZXItaW5uZXItY29sb3IgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjogICAgICAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHM6ICAgICRmbG9hdGluZy1jb21wb25lbnQtc2hhZG93ICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy1zbS11cDogJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3cgIWRlZmF1bHQ7XG5cbiRtb2RhbC1tZDogICAgICAgICAgICAgICAgICAgICAgIDM1cmVtICFkZWZhdWx0O1xuJG1vZGFsLWxnOiAgICAgICAgICAgICAgICAgICAgICAgNTByZW0gIWRlZmF1bHQ7XG4kbW9kYWwtc206ICAgICAgICAgICAgICAgICAgICAgICAyMi41cmVtICFkZWZhdWx0O1xuXG4kbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogICAgICAgICAuNSAhZGVmYXVsdDtcblxuJG1vZGFsLXNsaWRlLXdpZHRoOiAgICAgICAgICAgICAgMjByZW0gIWRlZmF1bHQ7XG5cbiRtb2RhbC10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgIC4xNXMgIWRlZmF1bHQ7XG4kbW9kYWwtdHJhbnNpdGlvbjogICAgICAgICAgICAgICB0cmFuc2Zvcm0gJG1vZGFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQWxlcnRzXG5cbiRhbGVydC1wYWRkaW5nLXk6IDFyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFByb2dyZXNzIGJhcnNcblxuJHByb2dyZXNzLWhlaWdodDogICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1mb250LXNpemU6ICAgICAuNjI1cmVtICFkZWZhdWx0O1xuJHByb2dyZXNzLWJnOiAgICAgICAgICAgICRncmF5LTUwICFkZWZhdWx0O1xuJHByb2dyZXNzLWJvcmRlci1yYWRpdXM6IDEwcmVtICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1jb2xvcjogICAgICNmZmYgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTGlzdCBncm91cFxuXG4kbGlzdC1ncm91cC1iZzogICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgIHJnYmEtdG8taGV4KCRncmF5LTIwMCkgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWl0ZW0tcGFkZGluZy15OiAgICAgIC42MjVyZW0gIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1pdGVtLXBhZGRpbmcteDogICAgICAuOTM3NXJlbSAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICAgICAgICAgICAgJGdyYXktMjUgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yOiAgICAgICR0ZXh0LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1kaXNhYmxlZC1iZzogICAgICAgICAkbGlzdC1ncm91cC1iZyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWNvbG9yOiAgICAgICAgJHRleHQtbXV0ZWQtaG92ZXIgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3Rpb24taG92ZXItY29sb3I6ICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogICAgJGdyYXktNTAgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogSW1hZ2UgdGh1bWJuYWlsc1xuXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgIDAgIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJnOiAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRodW1ibmFpbC1ib3JkZXItd2lkdGg6ICAwcHggIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6IDBweCAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm94LXNoYWRvdzogICAgbm9uZSAhZGVmYXVsdDtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBGaWd1cmVzXG5cbiRmaWd1cmUtY2FwdGlvbi1jb2xvcjogJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQnJlYWRjcnVtYnNcblxuJGJyZWFkY3J1bWItcGFkZGluZy15OiAgICAgMCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLXBhZGRpbmcteDogICAgIDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmc6ICAuNXJlbSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWItY29sb3I6ICAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICR0ZXh0LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWRpdmlkZXI6ICAgICAgIFwiL1wiICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItZGl2aWRlci1ydGw6ICAgXCIvXCIgIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU3dpdGNoZXJzXG5cbiRzd2l0Y2hlci1zcGFjZXIteDogICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHN3aXRjaGVyLXNwYWNlci15OiAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2hlci1ndXR0ZXI6ICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kc3dpdGNoZXItaW5uZXItc3BhY2VyOiAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcblxuJHN3aXRjaGVyLXNxdWFyZS1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJHN3aXRjaGVyLWxhYmVsLWNvbG9yOiAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRzd2l0Y2hlci1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWxhYmVsLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kc3dpdGNoZXItd2lkdGg6ICAgICAgICAgICAgICAgIDIuMzc1cmVtICFkZWZhdWx0O1xuJHN3aXRjaGVyLWhlaWdodDogICAgICAgICAgICAgICAxLjM3NXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2hlci1mb250LXNpemU6ICAgICAgICAgICAgLjYyNXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2hlci1sYWJlbC1mb250LXNpemU6ICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJHN3aXRjaGVyLWxhYmVsLWxpbmUtaGVpZ2h0OiAgICAxLjQgIWRlZmF1bHQ7XG5cbiRzd2l0Y2hlci13aWR0aC1zbTogICAgICAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRzd2l0Y2hlci1oZWlnaHQtc206ICAgICAgICAgICAgMS4xMjVyZW0gIWRlZmF1bHQ7XG4kc3dpdGNoZXItbGFiZWwtZm9udC1zaXplLXNtOiAgICRmb250LXNpemUtc20gIWRlZmF1bHQ7XG4kc3dpdGNoZXItbGFiZWwtbGluZS1oZWlnaHQtc206IDEuNDg2ICFkZWZhdWx0O1xuXG4kc3dpdGNoZXItd2lkdGgtbGc6ICAgICAgICAgICAgIDMuMjVyZW0gIWRlZmF1bHQ7XG4kc3dpdGNoZXItaGVpZ2h0LWxnOiAgICAgICAgICAgIDEuNzVyZW0gIWRlZmF1bHQ7XG4kc3dpdGNoZXItbGFiZWwtZm9udC1zaXplLWxnOiAgICRmb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kc3dpdGNoZXItbGFiZWwtbGluZS1oZWlnaHQtbGc6IDEuNDcgIWRlZmF1bHQ7XG5cbiRzd2l0Y2hlci1vZmYtY29sb3I6ICAgICAgICAgICAgJGdyYXktNDAwICFkZWZhdWx0O1xuJHN3aXRjaGVyLW9mZi1iZzogICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kc3dpdGNoZXItaG9sZGVyLWJnOiAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kc3dpdGNoZXItaG9sZGVyLXNoYWRvdzogICAgICAgIDAgMCAwIDFweCByZ2JhKCRibGFjaywgLjA0KSwgMCAxcHggNnB4IHJnYmEoJGJsYWNrLCAuMDkpICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIENsb3NlXG5cbiRjbG9zZS1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJGNsb3NlLXRleHQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGNsb3NlLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEp1bWJvdHJvblxuXG4kanVtYm90cm9uLXBhZGRpbmc6IDNyZW0gIWRlZmF1bHQ7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU2lkZW5hdlxuXG4kc2lkZW5hdi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjYyNXJlbSAhZGVmYXVsdDsgLy8yNTBweFxuJHNpZGVuYXYtY29sbGFwc2VkLXdpZHRoOiAgICAgICAgICAgICAgICA0LjM3NXJlbSAhZGVmYXVsdDsgLy83MHB4XG5cbiRzaWRlbmF2LWl0ZW0tc3BhY2VyOiAgICAgICAgICAgICAgICAgICAgLjA2MjVyZW0gIWRlZmF1bHQ7XG5cbiRzaWRlbmF2LXZlcnRpY2FsLWxpbmstcGFkZGluZy15OiAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHNpZGVuYXYtdmVydGljYWwtbGluay1wYWRkaW5nLXg6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJHNpZGVuYXYtdmVydGljYWwtbWVudS1saW5rLXBhZGRpbmcteTogICAuNjI1cmVtICFkZWZhdWx0O1xuJHNpZGVuYXYtdmVydGljYWwtbWVudS1sZXZlbC1zcGFjZXI6ICAgICAxcmVtICFkZWZhdWx0O1xuXG4kc2lkZW5hdi1ob3Jpem9udGFsLWxpbmstcGFkZGluZy15OiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kc2lkZW5hdi1ob3Jpem9udGFsLWxpbmstcGFkZGluZy14OiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kc2lkZW5hdi1ob3Jpem9udGFsLW1lbnUtbGluay1wYWRkaW5nLXk6IC42MjVyZW0gIWRlZmF1bHQ7XG4kc2lkZW5hdi1ob3Jpem9udGFsLW1lbnUtbGV2ZWwtc3BhY2VyOiAgIDFyZW0gIWRlZmF1bHQ7XG5cbiRzaWRlbmF2LW1lbnUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMTIuNXJlbSAhZGVmYXVsdDs7IC8vMjAwcHhcbiRzaWRlbmF2LWNvbnRyb2wtd2lkdGg6ICAgICAgICAgICAgICAgICAgMi4yNXJlbSAhZGVmYXVsdDtcbiRzaWRlbmF2LWNvbnRyb2wtYXJyb3ctc2l6ZTogICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG5cbiRzaWRlbmF2LWljb24tZXhwYW5kZWQtd2lkdGg6ICAgICAgICAgICAgMS43NXJlbSAhZGVmYXVsdDtcbiRzaWRlbmF2LWljb24tZXhwYW5kZWQtZm9udC1zaXplOiAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRzaWRlbmF2LWljb24tZXhwYW5kZWQtc3BhY2VyOiAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuXG4kc2lkZW5hdi1hbmltYXRpb24tZHVyYXRpb246ICAgICAgICAgICAgIC4ycyAhZGVmYXVsdDtcblxuJHNpZGVuYXYtbWF4LWxldmVsczogICAgICAgICAgICAgICAgICAgICA1ICFkZWZhdWx0O1xuXG4kc2lkZW5hdi1kYXJrLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpICFkZWZhdWx0O1xuJHNpZGVuYXYtZGFyay1tZW51LWJnOiAgICAgICAgICAgICAgICAgICByZ2JhKDAsIDAsIDAsIC4wNikgIWRlZmF1bHQ7XG4kc2lkZW5hdi1saWdodC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgLjA2KSAhZGVmYXVsdDtcbiRzaWRlbmF2LWxpZ2h0LW1lbnUtYmc6ICAgICAgICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAuMDUpICFkZWZhdWx0O1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFRvYXN0c1xuXG4kdG9hc3QtYm9yZGVyLWNvbG9yOiAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci1yYWRpdXM6ICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJHRvYXN0LWJveC1zaGFkb3c6ICAgICAgICAgICRmbG9hdGluZy1jb21wb25lbnQtc2hhZG93ICFkZWZhdWx0O1xuJHRvYXN0LWhlYWRlci1ib3JkZXItY29sb3I6ICRjYXJkLWlubmVyLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ29uZmlnXG4kcnRsLXN1cHBvcnQ6IGZhbHNlICFkZWZhdWx0O1xuJG1hdGVyaWFsLXN0eWxlOiBmYWxzZTtcbiIsIi8vIFZhcmlhYmxlc1xuLy9cbi8vIFZhcmlhYmxlcyBzaG91bGQgZm9sbG93IHRoZSBgJGNvbXBvbmVudC1zdGF0ZS1wcm9wZXJ0eS1zaXplYCBmb3JtdWxhIGZvclxuLy8gY29uc2lzdGVudCBuYW1pbmcuIEV4OiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3IgYW5kICRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHMuXG5cbi8vIENvbG9yIHN5c3RlbVxuXG4kd2hpdGU6ICAgICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS0xMDA6ICNmOGY5ZmEgIWRlZmF1bHQ7XG4kZ3JheS0yMDA6ICNlOWVjZWYgIWRlZmF1bHQ7XG4kZ3JheS0zMDA6ICNkZWUyZTYgIWRlZmF1bHQ7XG4kZ3JheS00MDA6ICNjZWQ0ZGEgIWRlZmF1bHQ7XG4kZ3JheS01MDA6ICNhZGI1YmQgIWRlZmF1bHQ7XG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XG4kZ3JheS04MDA6ICMzNDNhNDAgIWRlZmF1bHQ7XG4kZ3JheS05MDA6ICMyMTI1MjkgIWRlZmF1bHQ7XG4kYmxhY2s6ICAgICMwMDAgIWRlZmF1bHQ7XG5cbiRncmF5czogKCkgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJGdyYXlzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcIjEwMFwiOiAkZ3JheS0xMDAsXG4gICAgXCIyMDBcIjogJGdyYXktMjAwLFxuICAgIFwiMzAwXCI6ICRncmF5LTMwMCxcbiAgICBcIjQwMFwiOiAkZ3JheS00MDAsXG4gICAgXCI1MDBcIjogJGdyYXktNTAwLFxuICAgIFwiNjAwXCI6ICRncmF5LTYwMCxcbiAgICBcIjcwMFwiOiAkZ3JheS03MDAsXG4gICAgXCI4MDBcIjogJGdyYXktODAwLFxuICAgIFwiOTAwXCI6ICRncmF5LTkwMFxuICApLFxuICAkZ3JheXNcbik7XG5cbiRibHVlOiAgICAjMDA3YmZmICFkZWZhdWx0O1xuJGluZGlnbzogICM2NjEwZjIgIWRlZmF1bHQ7XG4kcHVycGxlOiAgIzZmNDJjMSAhZGVmYXVsdDtcbiRwaW5rOiAgICAjZTgzZThjICFkZWZhdWx0O1xuJHJlZDogICAgICNkYzM1NDUgIWRlZmF1bHQ7XG4kb3JhbmdlOiAgI2ZkN2UxNCAhZGVmYXVsdDtcbiR5ZWxsb3c6ICAjZmZjMTA3ICFkZWZhdWx0O1xuJGdyZWVuOiAgICMyOGE3NDUgIWRlZmF1bHQ7XG4kdGVhbDogICAgIzIwYzk5NyAhZGVmYXVsdDtcbiRjeWFuOiAgICAjMTdhMmI4ICFkZWZhdWx0O1xuXG4kY29sb3JzOiAoKSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kY29sb3JzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcImJsdWVcIjogICAgICAgJGJsdWUsXG4gICAgXCJpbmRpZ29cIjogICAgICRpbmRpZ28sXG4gICAgXCJwdXJwbGVcIjogICAgICRwdXJwbGUsXG4gICAgXCJwaW5rXCI6ICAgICAgICRwaW5rLFxuICAgIFwicmVkXCI6ICAgICAgICAkcmVkLFxuICAgIFwib3JhbmdlXCI6ICAgICAkb3JhbmdlLFxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxuICAgIFwiZ3JlZW5cIjogICAgICAkZ3JlZW4sXG4gICAgXCJ0ZWFsXCI6ICAgICAgICR0ZWFsLFxuICAgIFwiY3lhblwiOiAgICAgICAkY3lhbixcbiAgICBcIndoaXRlXCI6ICAgICAgJHdoaXRlLFxuICAgIFwiZ3JheVwiOiAgICAgICAkZ3JheS02MDAsXG4gICAgXCJncmF5LWRhcmtcIjogICRncmF5LTgwMFxuICApLFxuICAkY29sb3JzXG4pO1xuXG4kcHJpbWFyeTogICAgICAgJGJsdWUgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5OiAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHN1Y2Nlc3M6ICAgICAgICRncmVlbiAhZGVmYXVsdDtcbiRpbmZvOiAgICAgICAgICAkY3lhbiAhZGVmYXVsdDtcbiR3YXJuaW5nOiAgICAgICAkeWVsbG93ICFkZWZhdWx0O1xuJGRhbmdlcjogICAgICAgICRyZWQgIWRlZmF1bHQ7XG4kbGlnaHQ6ICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJGRhcms6ICAgICAgICAgICRncmF5LTgwMCAhZGVmYXVsdDtcblxuJHRoZW1lLWNvbG9yczogKCkgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKFxuICAoXG4gICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxuICAgIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcbiAgICBcImluZm9cIjogICAgICAgJGluZm8sXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxuICAgIFwibGlnaHRcIjogICAgICAkbGlnaHQsXG4gICAgXCJkYXJrXCI6ICAgICAgICRkYXJrXG4gICksXG4gICR0aGVtZS1jb2xvcnNcbik7XG5cbi8vIFNldCBhIHNwZWNpZmljIGp1bXAgcG9pbnQgZm9yIHJlcXVlc3RpbmcgY29sb3IganVtcHNcbiR0aGVtZS1jb2xvci1pbnRlcnZhbDogICAgICA4JSAhZGVmYXVsdDtcblxuLy8gVGhlIHlpcSBsaWdodG5lc3MgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZW4gdGhlIGxpZ2h0bmVzcyBvZiBjb2xvciBjaGFuZ2VzIGZyb20gXCJkYXJrXCIgdG8gXCJsaWdodFwiLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgYmV0d2VlbiAwIGFuZCAyNTUuXG4keWlxLWNvbnRyYXN0ZWQtdGhyZXNob2xkOiAgMTUwICFkZWZhdWx0O1xuXG4vLyBDdXN0b21pemUgdGhlIGxpZ2h0IGFuZCBkYXJrIHRleHQgY29sb3JzIGZvciB1c2UgaW4gb3VyIFlJUSBjb2xvciBjb250cmFzdCBmdW5jdGlvbi5cbiR5aXEtdGV4dC1kYXJrOiAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG4keWlxLXRleHQtbGlnaHQ6ICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG5cbi8vIE9wdGlvbnNcbi8vXG4vLyBRdWlja2x5IG1vZGlmeSBnbG9iYWwgc3R5bGluZyBieSBlbmFibGluZyBvciBkaXNhYmxpbmcgb3B0aW9uYWwgZmVhdHVyZXMuXG5cbiRlbmFibGUtY2FyZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1yb3VuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXNoYWRvd3M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLWdyYWRpZW50czogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLXRyYW5zaXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1tZWRpYS1xdWVyeTogICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeTogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0OyAvLyBEZXByZWNhdGVkLCBubyBsb25nZXIgYWZmZWN0cyBhbnkgY29tcGlsZWQgQ1NTXG4kZW5hYmxlLWdyaWQtY2xhc3NlczogICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcG9pbnRlci1jdXJzb3ItZm9yLWJ1dHRvbnM6ICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1wcmludC1zdHlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6ICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtZGVwcmVjYXRpb24tbWVzc2FnZXM6ICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG5cbi8vIFNwYWNpbmdcbi8vXG4vLyBDb250cm9sIHRoZSBkZWZhdWx0IHN0eWxpbmcgb2YgbW9zdCBCb290c3RyYXAgZWxlbWVudHMgYnkgbW9kaWZ5aW5nIHRoZXNlXG4vLyB2YXJpYWJsZXMuIE1vc3RseSBmb2N1c2VkIG9uIHNwYWNpbmcuXG4vLyBZb3UgY2FuIGFkZCBtb3JlIGVudHJpZXMgdG8gdGhlICRzcGFjZXJzIG1hcCwgc2hvdWxkIHlvdSBuZWVkIG1vcmUgdmFyaWF0aW9uLlxuXG4kc3BhY2VyOiAxcmVtICFkZWZhdWx0O1xuJHNwYWNlcnM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRzcGFjZXJzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICAwOiAwLFxuICAgIDE6ICgkc3BhY2VyICogLjI1KSxcbiAgICAyOiAoJHNwYWNlciAqIC41KSxcbiAgICAzOiAkc3BhY2VyLFxuICAgIDQ6ICgkc3BhY2VyICogMS41KSxcbiAgICA1OiAoJHNwYWNlciAqIDMpXG4gICksXG4gICRzcGFjZXJzXG4pO1xuXG4vLyBUaGlzIHZhcmlhYmxlIGFmZmVjdHMgdGhlIGAuaC0qYCBhbmQgYC53LSpgIGNsYXNzZXMuXG4kc2l6ZXM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRzaXplczogbWFwLW1lcmdlKFxuICAoXG4gICAgMjU6IDI1JSxcbiAgICA1MDogNTAlLFxuICAgIDc1OiA3NSUsXG4gICAgMTAwOiAxMDAlLFxuICAgIGF1dG86IGF1dG9cbiAgKSxcbiAgJHNpemVzXG4pO1xuXG5cbi8vIEJvZHlcbi8vXG4vLyBTZXR0aW5ncyBmb3IgdGhlIGA8Ym9keT5gIGVsZW1lbnQuXG5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kYm9keS1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuXG5cbi8vIExpbmtzXG4vL1xuLy8gU3R5bGUgYW5jaG9yIGVsZW1lbnRzLlxuXG4kbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZS1jb2xvcihcInByaW1hcnlcIikgIWRlZmF1bHQ7XG4kbGluay1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuJGxpbmstaG92ZXItZGVjb3JhdGlvbjogICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lICFkZWZhdWx0O1xuLy8gRGFya2VuIHBlcmNlbnRhZ2UgZm9yIGxpbmtzIHdpdGggYC50ZXh0LSpgIGNsYXNzIChlLmcuIGAudGV4dC1zdWNjZXNzYClcbiRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2U6IDE1JSAhZGVmYXVsdDtcblxuLy8gUGFyYWdyYXBoc1xuLy9cbi8vIFN0eWxlIHAgZWxlbWVudC5cblxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAgIDFyZW0gIWRlZmF1bHQ7XG5cblxuLy8gR3JpZCBicmVha3BvaW50c1xuLy9cbi8vIERlZmluZSB0aGUgbWluaW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzLlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206IDU3NnB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5OTJweCxcbiAgeGw6IDEyMDBweFxuKSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgX2Fzc2VydC1hc2NlbmRpbmcoJGdyaWQtYnJlYWtwb2ludHMsIFwiJGdyaWQtYnJlYWtwb2ludHNcIik7XG5AaW5jbHVkZSBfYXNzZXJ0LXN0YXJ0cy1hdC16ZXJvKCRncmlkLWJyZWFrcG9pbnRzLCBcIiRncmlkLWJyZWFrcG9pbnRzXCIpO1xuXG5cbi8vIEdyaWQgY29udGFpbmVyc1xuLy9cbi8vIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4XG4pICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBfYXNzZXJ0LWFzY2VuZGluZygkY29udGFpbmVyLW1heC13aWR0aHMsIFwiJGNvbnRhaW5lci1tYXgtd2lkdGhzXCIpO1xuXG5cbi8vIEdyaWQgY29sdW1uc1xuLy9cbi8vIFNldCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHRoZSBndXR0ZXJzLlxuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgICAxMiAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG5cblxuLy8gQ29tcG9uZW50c1xuLy9cbi8vIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS5cblxuJGxpbmUtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zcmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc206ICAgICAgICAgICAgLjJyZW0gIWRlZmF1bHQ7XG5cbiRyb3VuZGVkLXBpbGw6ICAgICAgICAgICAgICAgIDUwcmVtICFkZWZhdWx0O1xuXG4kYm94LXNoYWRvdy1zbTogICAgICAgICAgICAgICAwIC4xMjVyZW0gLjI1cmVtIHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWxnOiAgICAgICAgICAgICAgIDAgMXJlbSAzcmVtIHJnYmEoJGJsYWNrLCAuMTc1KSAhZGVmYXVsdDtcblxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpICFkZWZhdWx0O1xuXG4kY2FyZXQtd2lkdGg6ICAgICAgICAgICAgICAgICAuM2VtICFkZWZhdWx0O1xuJGNhcmV0LXZlcnRpY2FsLWFsaWduOiAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuJGNhcmV0LXNwYWNpbmc6ICAgICAgICAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbi1iYXNlOiAgICAgICAgICAgICBhbGwgLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tZmFkZTogICAgICAgICAgICAgb3BhY2l0eSAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLWNvbGxhcHNlOiAgICAgICAgIGhlaWdodCAuMzVzIGVhc2UgIWRlZmF1bHQ7XG5cbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6IGpvaW4oXG4gIChcbiAgICAoMjEgOSksXG4gICAgKDE2IDkpLFxuICAgICg0IDMpLFxuICAgICgxIDEpLFxuICApLFxuICAkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW9zXG4pO1xuXG4vLyBUeXBvZ3JhcGh5XG4vL1xuLy8gRm9udCwgbGluZS1oZWlnaHQsIGFuZCBjb2xvciBmb3IgYm9keSB0ZXh0LCBoZWFkaW5ncywgYW5kIG1vcmUuXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLWtleXdvcmQtY2FzZVxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogICAgICAgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1iYXNlOiAgICAgICAgICAgICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcblxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDsgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0LCB0eXBpY2FsbHkgYDE2cHhgXG4kZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1zbTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogLjg3NSAhZGVmYXVsdDtcblxuJGZvbnQtd2VpZ2h0LWxpZ2h0ZXI6ICAgICAgICAgbGlnaHRlciAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1saWdodDogICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ub3JtYWw6ICAgICAgICAgIDQwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiAgICAgICAgICAgIDcwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkZXI6ICAgICAgICAgIGJvbGRlciAhZGVmYXVsdDtcblxuJGZvbnQtd2VpZ2h0LWJhc2U6ICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcblxuJGgxLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi41ICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMiAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNzUgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1ICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogICAgICAkc3BhY2VyIC8gMiAhZGVmYXVsdDtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgICAgICA1MDAgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjIgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtY29sb3I6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kZGlzcGxheTEtc2l6ZTogICAgICAgICAgICAgICA2cmVtICFkZWZhdWx0O1xuJGRpc3BsYXkyLXNpemU6ICAgICAgICAgICAgICAgNS41cmVtICFkZWZhdWx0O1xuJGRpc3BsYXkzLXNpemU6ICAgICAgICAgICAgICAgNC41cmVtICFkZWZhdWx0O1xuJGRpc3BsYXk0LXNpemU6ICAgICAgICAgICAgICAgMy41cmVtICFkZWZhdWx0O1xuXG4kZGlzcGxheTEtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTItd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTMtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTQtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheS1saW5lLWhlaWdodDogICAgICAgICAkaGVhZGluZ3MtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRsZWFkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuMjUgIWRlZmF1bHQ7XG4kbGVhZC1mb250LXdlaWdodDogICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG5cbiRzbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgIDgwJSAhZGVmYXVsdDtcblxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kYmxvY2txdW90ZS1zbWFsbC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1zbWFsbC1mb250LXNpemU6ICAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS4yNSAhZGVmYXVsdDtcblxuJGhyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRoci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbiRtYXJrLXBhZGRpbmc6ICAgICAgICAgICAgICAgIC4yZW0gIWRlZmF1bHQ7XG5cbiRkdC1mb250LXdlaWdodDogICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4ka2JkLWJveC1zaGFkb3c6ICAgICAgICAgICAgICBpbnNldCAwIC0uMXJlbSAwIHJnYmEoJGJsYWNrLCAuMjUpICFkZWZhdWx0O1xuJG5lc3RlZC1rYmQtZm9udC13ZWlnaHQ6ICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbiRsaXN0LWlubGluZS1wYWRkaW5nOiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kbWFyay1iZzogICAgICAgICAgICAgICAgICAgICAjZmNmOGUzICFkZWZhdWx0O1xuXG4kaHItbWFyZ2luLXk6ICAgICAgICAgICAgICAgICAkc3BhY2VyICFkZWZhdWx0O1xuXG5cbi8vIFRhYmxlc1xuLy9cbi8vIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cblxuJHRhYmxlLWNlbGwtcGFkZGluZzogICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1zbTogICAgICAgLjNyZW0gIWRlZmF1bHQ7XG5cbiR0YWJsZS1jb2xvcjogICAgICAgICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWJnOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDUpICFkZWZhdWx0O1xuJHRhYmxlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJHRhYmxlLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWhvdmVyLWJnOiAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wNzUpICFkZWZhdWx0O1xuJHRhYmxlLWFjdGl2ZS1iZzogICAgICAgICAgICAgJHRhYmxlLWhvdmVyLWJnICFkZWZhdWx0O1xuXG4kdGFibGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJHRhYmxlLWhlYWQtYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktNzAwICFkZWZhdWx0O1xuXG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1iZzogICAgICAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1hY2NlbnQtYmc6ICAgICAgICByZ2JhKCR3aGl0ZSwgLjA1KSAhZGVmYXVsdDtcbiR0YWJsZS1kYXJrLWhvdmVyLWNvbG9yOiAgICAgICR0YWJsZS1kYXJrLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstaG92ZXItYmc6ICAgICAgICAgcmdiYSgkd2hpdGUsIC4wNzUpICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yOiAgICAgbGlnaHRlbigkdGFibGUtZGFyay1iZywgNy41JSkgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG5cbiR0YWJsZS1zdHJpcGVkLW9yZGVyOiAgICAgICAgIG9kZCAhZGVmYXVsdDtcblxuJHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbiR0YWJsZS1iZy1sZXZlbDogICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1sZXZlbDogICAgICAgICAgLTYgIWRlZmF1bHQ7XG5cblxuLy8gQnV0dG9ucyArIEZvcm1zXG4vL1xuLy8gU2hhcmVkIHZhcmlhYmxlcyB0aGF0IGFyZSByZWFzc2lnbmVkIHRvIGAkaW5wdXQtYCBhbmQgYCRidG4tYCBzcGVjaWZpYyB2YXJpYWJsZXMuXG5cbiRpbnB1dC1idG4tcGFkZGluZy15OiAgICAgICAgIC4zNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiAgICAgICBudWxsICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb250LXNpemU6ICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodDogICAgICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG5cbiRpbnB1dC1idG4tZm9jdXMtd2lkdGg6ICAgICAgIC4ycmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjogICAgICAgcmdiYSgkY29tcG9uZW50LWFjdGl2ZS1iZywgLjI1KSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdzogIDAgMCAwICRpbnB1dC1idG4tZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbTogICAgJGxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZzogICAgICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZzogICAgJGxpbmUtaGVpZ2h0LWxnICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLWJvcmRlci13aWR0aDogICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCwgYW5kIGJvcmRlciBjb2xvci5cblxuJGJ0bi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kYnRuLXBhZGRpbmcteDogICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRidG4tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRidG4tcGFkZGluZy15LXNtOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LXNtICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtc206ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1zbTogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtc206ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtc20gIWRlZmF1bHQ7XG5cbiRidG4tcGFkZGluZy15LWxnOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LWxnICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1sZzogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtbGcgIWRlZmF1bHQ7XG5cbiRidG4tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ0bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKCR3aGl0ZSwgLjE1KSwgMCAxcHggMXB4IHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRidG4tZm9jdXMtd2lkdGg6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG4kYnRuLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kYnRuLWRpc2FibGVkLW9wYWNpdHk6ICAgICAgICAuNjUgIWRlZmF1bHQ7XG4kYnRuLWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICBpbnNldCAwIDNweCA1cHggcmdiYSgkYmxhY2ssIC4xMjUpICFkZWZhdWx0O1xuXG4kYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRidG4tYmxvY2stc3BhY2luZy15OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4vLyBBbGxvd3MgZm9yIGN1c3RvbWl6aW5nIGJ1dHRvbiByYWRpdXMgaW5kZXBlbmRlbnRseSBmcm9tIGdsb2JhbCBib3JkZXIgcmFkaXVzXG4kYnRuLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRidG4tYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICRib3JkZXItcmFkaXVzLWxnICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgJGJvcmRlci1yYWRpdXMtc20gIWRlZmF1bHQ7XG5cbiRidG4tdHJhbnNpdGlvbjogICAgICAgICAgICAgIGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuXG4vLyBGb3Jtc1xuXG4kbGFiZWwtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1zaXplICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXktc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXgtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1zbSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemUtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodC1zbTogICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXktbGcgIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1mb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXktNDAwICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIGluc2V0IDAgMXB4IDFweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbSAhZGVmYXVsdDtcblxuJGlucHV0LWZvY3VzLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAyNSUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcbiRpbnB1dC1wbGFpbnRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggKiAyICFkZWZhdWx0O1xuXG4kaW5wdXQtaGVpZ2h0LWlubmVyOiAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIDFlbX0gKyAjeyRpbnB1dC1wYWRkaW5nLXkgKiAyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY6ICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIC41ZW19ICsgI3skaW5wdXQtcGFkZGluZy15fSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI6ICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIC4yNWVtfSArICN7JGlucHV0LXBhZGRpbmcteSAvIDJ9KSAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGMoI3skaW5wdXQtbGluZS1oZWlnaHQgKiAxZW19ICsgI3skaW5wdXQtcGFkZGluZy15ICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodC1zbSAqIDFlbX0gKyAjeyRpbnB1dC1idG4tcGFkZGluZy15LXNtICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodC1sZyAqIDFlbX0gKyAjeyRpbnB1dC1idG4tcGFkZGluZy15LWxnICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG5cbiRpbnB1dC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4kZm9ybS10ZXh0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1jaGVjay1pbnB1dC1ndXR0ZXI6ICAgICAgICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi15OiAgICAgICAgICAgICAuM3JlbSAhZGVmYXVsdDtcbiRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi14OiAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG5cbiRmb3JtLWNoZWNrLWlubGluZS1tYXJnaW4teDogICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbmxpbmUtaW5wdXQtbWFyZ2luLXg6ICAgICAgLjMxMjVyZW0gIWRlZmF1bHQ7XG5cbiRmb3JtLWdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1ncm91cC1hZGRvbi1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjogICAgICAgICRpbnB1dC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRjdXN0b20tZm9ybXMtdHJhbnNpdGlvbjogICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1ndXR0ZXI6ICAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1zcGFjZXIteDogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZTogICAgICA1MCUgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3gtc2hhZG93OiAgICRpbnB1dC1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3I6ICRncmF5LTUwMCAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWRpc2FibGVkLWJnOiAgICAgICAgICAkaW5wdXQtZGlzYWJsZWQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcjogICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJnOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtZGlzYWJsZWQtYmc6ICByZ2JhKHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSwgLjUpICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJveC1zaGFkb3c6ICAgbm9uZSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1ib3JkZXItY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3gtc2hhZG93OiAgICAgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWZvY3VzLWJvcmRlci1jb2xvcjogICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1jb2xvcjogICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSkgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1ib3gtc2hhZG93OiAgICBub25lICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm9yZGVyLWNvbG9yOiAgJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM6ICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPScjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcn0nIGQ9J002LjU2NC43NWwtMy41OSAzLjYxMi0xLjUzOC0xLjU1TDAgNC4yNiAyLjk3NCA3LjI1IDggMi4xOTN6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYmc6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtY29sb3I6ICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWluZGV0ZXJtaW5hdGU6ICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDQnJTNlJTNjcGF0aCBzdHJva2U9JyN7JGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1jb2xvcn0nIGQ9J00wIDJoNCcvJTNlJTNjL3N2ZyUzZVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1ib3gtc2hhZG93OiAgIG5vbmUgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvcjogJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM2UlM2NjaXJjbGUgcj0nMycgZmlsbD0nI3skY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3J9Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc3dpdGNoLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSAqIDEuNzUgIWRlZmF1bHQ7XG4kY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUgLyAyICFkZWZhdWx0O1xuJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgICAgICAgICAgY2FsYygjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZX0gLSAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogNH0pICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk6ICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14OiAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5OiAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZTogICAgICAgICAgICRpbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1oZWlnaHQ6ICAgICAgICAgICAgICAkaW5wdXQtaGVpZ2h0ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc6ICAgMXJlbSAhZGVmYXVsdDsgLy8gRXh0cmEgcGFkZGluZyB0byBhY2NvdW50IGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIGJhY2tncm91bmQtaW1hZ2UgYmFzZWQgaW5kaWNhdG9yXG4kY3VzdG9tLXNlbGVjdC1mb250LXdlaWdodDogICAgICAgICAkaW5wdXQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1saW5lLWhlaWdodDogICAgICAgICAkaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZzogICAgICAgICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZzogICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZy1zaXplOiAgICAgICAgICAgICA4cHggMTBweCAhZGVmYXVsdDsgLy8gSW4gcGl4ZWxzIGJlY2F1c2UgaW1hZ2UgZGltZW5zaW9uc1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLWNvbG9yOiAgICAgJGdyYXktODAwICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yOiAgICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNlJTNjcGF0aCBmaWxsPScjeyRjdXN0b20tc2VsZWN0LWluZGljYXRvci1jb2xvcn0nIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWJhY2tncm91bmQ6ICAgICAgICAgICRjdXN0b20tc2VsZWN0LWluZGljYXRvciBuby1yZXBlYXQgcmlnaHQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14IGNlbnRlciAvICRjdXN0b20tc2VsZWN0LWJnLXNpemUgIWRlZmF1bHQ7IC8vIFVzZWQgc28gd2UgY2FuIGhhdmUgbXVsdGlwbGUgYmFja2dyb3VuZCBlbGVtZW50cyAoZS5nLiwgYXJyb3cgYW5kIGZlZWRiYWNrIGljb24pXG5cbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1yaWdodDogY2FsYygoMWVtICsgI3syICogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15fSkgKiAzIC8gNCArICN7JGN1c3RvbS1zZWxlY3QtcGFkZGluZy14ICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmd9KSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb246ICAgICAgY2VudGVyIHJpZ2h0ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZykgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXNpemU6ICAgICAgICAgICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGYgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc2VsZWN0LWJvcmRlci13aWR0aDogICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93OiAgICAgICAgICBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIC4wNzUpICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3I6ICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGg6ICAgICAgICAgJGlucHV0LWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdzogICAgMCAwIDAgJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtc206ICAgICAgICAkaW5wdXQtZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1zbSAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LWxnOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1sZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZzogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtbGc6ICAgICAgICAkaW5wdXQtZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LWxnOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDogICAgICAgICAgMTAwJSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I6ICAgICAgICAgcG9pbnRlciAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYmc6ICAgICAgICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1czogIDFyZW0gIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3c6ICAgICBpbnNldCAwIC4yNXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDogICAgICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyOiAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgMCAuMXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzogICAgICAgIDAgMCAwIDFweCAkYm9keS1iZywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg6ICAkaW5wdXQtZm9jdXMtd2lkdGggIWRlZmF1bHQ7IC8vIEZvciBmb2N1cyBib3ggc2hhZG93IGlzc3VlIGluIElFL0VkZ2VcbiRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSkgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnOiAgICAgICAgICAgICAkZ3JheS01MDAgIWRlZmF1bHQ7XG5cbiRjdXN0b20tZmlsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICRpbnB1dC1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtaGVpZ2h0LWlubmVyOiAgICAgICAgICAkaW5wdXQtaGVpZ2h0LWlubmVyICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjogICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb2N1cy1ib3gtc2hhZG93OiAgICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWRpc2FibGVkLWJnOiAgICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnICFkZWZhdWx0O1xuXG4kY3VzdG9tLWZpbGUtcGFkZGluZy15OiAgICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLXBhZGRpbmcteDogICAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1saW5lLWhlaWdodDogICAgICAgICAgICRpbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LWZhbWlseTogICAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LXdlaWdodDogICAgICAgICAgICRpbnB1dC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1iZzogICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGlucHV0LWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm94LXNoYWRvdzogICAgICAgICAgICAkaW5wdXQtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tY29sb3I6ICAgICAgICAgICRjdXN0b20tZmlsZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tYmc6ICAgICAgICAgICAgICRpbnB1dC1ncm91cC1hZGRvbi1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS10ZXh0OiAoXG4gIGVuOiBcIkJyb3dzZVwiXG4pICFkZWZhdWx0O1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG4kZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wOiAgICAgICAgICAkZm9ybS10ZXh0LW1hcmdpbi10b3AgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1mb250LXNpemU6ICAgICAgICAgICAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3I6ICAgICAgICAgdGhlbWUtY29sb3IoXCJzdWNjZXNzXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcjogICAgICAgdGhlbWUtY29sb3IoXCJkYW5nZXJcIikgIWRlZmF1bHQ7XG5cbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3I6ICAgICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPScjeyRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3J9JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQtY29sb3I6ICAkZm9ybS1mZWVkYmFjay1pbnZhbGlkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkOiAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgdmlld0JveD0nLTIgLTIgNyA3JyUzZSUzY3BhdGggc3Ryb2tlPScjeyRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZC1jb2xvcn0nIGQ9J00wIDBsMyAzbTAtM0wwIDMnLyUzZSUzY2NpcmNsZSByPScuNScvJTNlJTNjY2lyY2xlIGN4PSczJyByPScuNScvJTNlJTNjY2lyY2xlIGN5PSczJyByPScuNScvJTNlJTNjY2lyY2xlIGN4PSczJyBjeT0nMycgcj0nLjUnLyUzZSUzYy9zdmclM0VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcblxuJGZvcm0tdmFsaWRhdGlvbi1zdGF0ZXM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRmb3JtLXZhbGlkYXRpb24tc3RhdGVzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcInZhbGlkXCI6IChcbiAgICAgIFwiY29sb3JcIjogJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3IsXG4gICAgICBcImljb25cIjogJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZFxuICAgICksXG4gICAgXCJpbnZhbGlkXCI6IChcbiAgICAgIFwiY29sb3JcIjogJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcixcbiAgICAgIFwiaWNvblwiOiAkZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWRcbiAgICApLFxuICApLFxuICAkZm9ybS12YWxpZGF0aW9uLXN0YXRlc1xuKTtcblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuXG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1zdGlja3k6ICAgICAgICAgICAgICAgICAgICAgMTAyMCAhZGVmYXVsdDtcbiR6aW5kZXgtZml4ZWQ6ICAgICAgICAgICAgICAgICAgICAgIDEwMzAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsLWJhY2tkcm9wOiAgICAgICAgICAgICAxMDQwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbDogICAgICAgICAgICAgICAgICAgICAgMTA1MCAhZGVmYXVsdDtcbiR6aW5kZXgtcG9wb3ZlcjogICAgICAgICAgICAgICAgICAgIDEwNjAgIWRlZmF1bHQ7XG4kemluZGV4LXRvb2x0aXA6ICAgICAgICAgICAgICAgICAgICAxMDcwICFkZWZhdWx0O1xuXG5cbi8vIE5hdnNcblxuJG5hdi1saW5rLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG5hdi10YWJzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAkZ3JheS0yMDAgJGdyYXktMjAwICRuYXYtdGFicy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbiRuYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I6ICRncmF5LTMwMCAkZ3JheS0zMDAgJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1waWxscy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG5cbiRuYXYtZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRuYXYtZGl2aWRlci1tYXJnaW4teTogICAgICAgICAgICAgICRzcGFjZXIgLyAyICFkZWZhdWx0O1xuXG5cbi8vIE5hdmJhclxuXG4kbmF2YmFyLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAkc3BhY2VyIC8gMiAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICRzcGFjZXIgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZTogICAgICAgICAgICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuLy8gQ29tcHV0ZSB0aGUgbmF2YmFyLWJyYW5kIHBhZGRpbmcteSBzbyB0aGUgbmF2YmFyLWJyYW5kIHdpbGwgaGF2ZSB0aGUgc2FtZSBoZWlnaHQgYXMgbmF2YmFyLXRleHQgYW5kIG5hdi1saW5rXG4kbmF2LWxpbmstaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSArICRuYXYtbGluay1wYWRkaW5nLXkgKiAyICFkZWZhdWx0O1xuJG5hdmJhci1icmFuZC1oZWlnaHQ6ICAgICAgICAgICAgICAgJG5hdmJhci1icmFuZC1mb250LXNpemUgKiAkbGluZS1oZWlnaHQtYmFzZSAhZGVmYXVsdDtcbiRuYXZiYXItYnJhbmQtcGFkZGluZy15OiAgICAgICAgICAgICgkbmF2LWxpbmstaGVpZ2h0IC0gJG5hdmJhci1icmFuZC1oZWlnaHQpIC8gMiAhZGVmYXVsdDtcblxuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteTogICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDogICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLWZvbnQtc2l6ZTogICAgICAgICAgJGZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzOiAgICAgICRidG4tYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJG5hdmJhci1kYXJrLWNvbG9yOiAgICAgICAgICAgICAgICAgcmdiYSgkd2hpdGUsIC41KSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1ob3Zlci1jb2xvcjogICAgICAgICAgIHJnYmEoJHdoaXRlLCAuNzUpICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWRpc2FibGVkLWNvbG9yOiAgICAgICAgcmdiYSgkd2hpdGUsIC4yNSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnOiAgICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggc3Ryb2tlPScjeyRuYXZiYXItZGFyay1jb2xvcn0nIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1ib3JkZXItY29sb3I6ICByZ2JhKCR3aGl0ZSwgLjEpICFkZWZhdWx0O1xuXG4kbmF2YmFyLWxpZ2h0LWNvbG9yOiAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjUpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogICAgICAgICAgcmdiYSgkYmxhY2ssIC43KSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yOiAgICAgICAgIHJnYmEoJGJsYWNrLCAuOSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWRpc2FibGVkLWNvbG9yOiAgICAgICByZ2JhKCRibGFjaywgLjMpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC10b2dnbGVyLWljb24tYmc6ICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB2aWV3Qm94PScwIDAgMzAgMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIHN0cm9rZT0nI3skbmF2YmFyLWxpZ2h0LWNvbG9yfScgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtdG9nZ2xlci1ib3JkZXItY29sb3I6IHJnYmEoJGJsYWNrLCAuMSkgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbGlnaHQtYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICAgJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuXG4vLyBEcm9wZG93bnNcbi8vXG4vLyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbiRkcm9wZG93bi1taW4td2lkdGg6ICAgICAgICAgICAgICAgIDEwcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3BhY2VyOiAgICAgICAgICAgICAgICAgICAuMTI1cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYmc6ICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjE1KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJvcmRlci13aWR0aDogICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkcm9wZG93bi1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgIGNhbGMoI3skZHJvcGRvd24tYm9yZGVyLXJhZGl1c30gLSAjeyRkcm9wZG93bi1ib3JkZXItd2lkdGh9KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1kaXZpZGVyLW1hcmdpbi15OiAgICAgICAgICRuYXYtZGl2aWRlci1tYXJnaW4teSAhZGVmYXVsdDtcbiRkcm9wZG93bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE3NSkgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTkwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkZ3JheS05MDAsIDUlKSAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXk6ICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXg6ICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcblxuXG4vLyBQYWdpbmF0aW9uXG5cbiRwYWdpbmF0aW9uLXBhZGRpbmcteTogICAgICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14OiAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy15LXNtOiAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14LXNtOiAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXktbGc6ICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5lLWhlaWdodDogICAgICAgICAgICAxLjI1ICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZvY3VzLW91dGxpbmU6ICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICRsaW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYm9yZGVyLWNvbG9yOiAgICAgJGdyYXktMzAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWFjdGl2ZS1iZzogICAgICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24tYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cblxuLy8gSnVtYm90cm9uXG5cbiRqdW1ib3Ryb24tcGFkZGluZzogICAgICAgICAgICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kanVtYm90cm9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuXG5cbi8vIENhcmRzXG5cbiRjYXJkLXNwYWNlci15OiAgICAgICAgICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRjYXJkLXNwYWNlci14OiAgICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNhcmQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjEyNSkgIWRlZmF1bHQ7XG4kY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgICAgICBjYWxjKCN7JGNhcmQtYm9yZGVyLXJhZGl1c30gLSAjeyRjYXJkLWJvcmRlci13aWR0aH0pICFkZWZhdWx0O1xuJGNhcmQtY2FwLWJnOiAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wMykgIWRlZmF1bHQ7XG4kY2FyZC1jYXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcblxuJGNhcmQtaW1nLW92ZXJsYXktcGFkZGluZzogICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGNhcmQtZ3JvdXAtbWFyZ2luOiAgICAgICAgICAgICAgICAgJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMiAhZGVmYXVsdDtcbiRjYXJkLWRlY2stbWFyZ2luOiAgICAgICAgICAgICAgICAgICRjYXJkLWdyb3VwLW1hcmdpbiAhZGVmYXVsdDtcblxuJGNhcmQtY29sdW1ucy1jb3VudDogICAgICAgICAgICAgICAgMyAhZGVmYXVsdDtcbiRjYXJkLWNvbHVtbnMtZ2FwOiAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kY2FyZC1jb2x1bW5zLW1hcmdpbjogICAgICAgICAgICAgICAkY2FyZC1zcGFjZXIteSAhZGVmYXVsdDtcblxuXG4vLyBUb29sdGlwc1xuXG4kdG9vbHRpcC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9vbHRpcC1iZzogICAgICAgICAgICAgICAgICAgICAgICAkYmxhY2sgIWRlZmF1bHQ7XG4kdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6ICAgICAgICAgICAgICAgICAgIC45ICFkZWZhdWx0O1xuJHRvb2x0aXAtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJHRvb2x0aXAtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbHRpcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kdG9vbHRpcC1hcnJvdy13aWR0aDogICAgICAgICAgICAgICAuOHJlbSAhZGVmYXVsdDtcbiR0b29sdGlwLWFycm93LWhlaWdodDogICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJHRvb2x0aXAtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgJHRvb2x0aXAtYmcgIWRlZmF1bHQ7XG5cbi8vIEZvcm0gdG9vbHRpcHMgbXVzdCBjb21lIGFmdGVyIHJlZ3VsYXIgdG9vbHRpcHNcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtcGFkZGluZy15OiAgICAgJHRvb2x0aXAtcGFkZGluZy15ICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg6ICAgICAkdG9vbHRpcC1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLWZvbnQtc2l6ZTogICAgICR0b29sdGlwLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtbGluZS1oZWlnaHQ6ICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLW9wYWNpdHk6ICAgICAgICR0b29sdGlwLW9wYWNpdHkgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLWJvcmRlci1yYWRpdXM6ICR0b29sdGlwLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cblxuLy8gUG9wb3ZlcnNcblxuJHBvcG92ZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwb3BvdmVyLW1heC13aWR0aDogICAgICAgICAgICAgICAgIDI3NnB4ICFkZWZhdWx0O1xuJHBvcG92ZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG4kcG9wb3Zlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRwb3BvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWhlYWRlci1iZzogICAgICAgICAgICAgICAgIGRhcmtlbigkcG9wb3Zlci1iZywgMyUpICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgJGhlYWRpbmdzLWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteTogICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy14OiAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWJvZHktY29sb3I6ICAgICAgICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItYm9keS1wYWRkaW5nLXk6ICAgICAgICAgICAgJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvZHktcGFkZGluZy14OiAgICAgICAgICAgICRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1hcnJvdy1oZWlnaHQ6ICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRwb3BvdmVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICRwb3BvdmVyLWJnICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogICAgICAgICBmYWRlLWluKCRwb3BvdmVyLWJvcmRlci1jb2xvciwgLjA1KSAhZGVmYXVsdDtcblxuXG4vLyBUb2FzdHNcblxuJHRvYXN0LW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgMzUwcHggIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAuODc1cmVtICFkZWZhdWx0O1xuJHRvYXN0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0b2FzdC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgIHJnYmEoJHdoaXRlLCAuODUpICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAuMSkgIWRlZmF1bHQ7XG4kdG9hc3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAwIC4yNXJlbSAuNzVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJHRvYXN0LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHRvYXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgcmdiYSgkd2hpdGUsIC44NSkgIWRlZmF1bHQ7XG4kdG9hc3QtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICByZ2JhKDAsIDAsIDAsIC4wNSkgIWRlZmF1bHQ7XG5cblxuLy8gQmFkZ2VzXG5cbiRiYWRnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgIDc1JSAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgLjI1ZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNGVtICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRiYWRnZS10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICRidG4tdHJhbnNpdGlvbiAhZGVmYXVsdDtcbiRiYWRnZS1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG5cbiRiYWRnZS1waWxsLXBhZGRpbmcteDogICAgICAgICAgICAgIC42ZW0gIWRlZmF1bHQ7XG4vLyBVc2UgYSBoaWdoZXIgdGhhbiBub3JtYWwgdmFsdWUgdG8gZW5zdXJlIGNvbXBsZXRlbHkgcm91bmRlZCBlZGdlcyB3aGVuXG4vLyBjdXN0b21pemluZyBwYWRkaW5nIG9yIGZvbnQtc2l6ZSBvbiBsYWJlbHMuXG4kYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAxMHJlbSAhZGVmYXVsdDtcblxuXG4vLyBNb2RhbHNcblxuLy8gUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4kbW9kYWwtaW5uZXItcGFkZGluZzogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kbW9kYWwtZGlhbG9nLW1hcmdpbjogICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXA6ICAgICAgIDEuNzVyZW0gIWRlZmF1bHQ7XG5cbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICRsaW5lLWhlaWdodC1iYXNlICFkZWZhdWx0O1xuXG4kbW9kYWwtY29udGVudC1jb2xvcjogICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yOiAgICAgICAgcmdiYSgkYmxhY2ssIC4yKSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3JkZXItcmFkaXVzOiAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHM6ICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuNSkgIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXNtLXVwOiAgICAwIC41cmVtIDFyZW0gcmdiYSgkYmxhY2ssIC41KSAhZGVmYXVsdDtcblxuJG1vZGFsLWJhY2tkcm9wLWJnOiAgICAgICAgICAgICAgICAgJGJsYWNrICFkZWZhdWx0O1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6ICAgICAgICAgICAgLjUgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICAgICAgICAgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtY29udGVudC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy15OiAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteDogICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1wYWRkaW5nOiAgICAgICAgICAgICAgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7IC8vIEtlZXAgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblxuJG1vZGFsLXhsOiAgICAgICAgICAgICAgICAgICAgICAgICAgMTE0MHB4ICFkZWZhdWx0O1xuJG1vZGFsLWxnOiAgICAgICAgICAgICAgICAgICAgICAgICAgODAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtbWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA1MDBweCAhZGVmYXVsdDtcbiRtb2RhbC1zbTogICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4ICFkZWZhdWx0O1xuXG4kbW9kYWwtZmFkZS10cmFuc2Zvcm06ICAgICAgICAgICAgICB0cmFuc2xhdGUoMCwgLTUwcHgpICFkZWZhdWx0O1xuJG1vZGFsLXNob3ctdHJhbnNmb3JtOiAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRtb2RhbC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAuM3MgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cblxuLy8gQWxlcnRzXG4vL1xuLy8gRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cbiRhbGVydC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYWxlcnQtbGluay1mb250LXdlaWdodDogICAgICAgICAgICAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbiRhbGVydC1iZy1sZXZlbDogICAgICAgICAgICAgICAgICAgIC0xMCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItbGV2ZWw6ICAgICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yLWxldmVsOiAgICAgICAgICAgICAgICAgNiAhZGVmYXVsdDtcblxuXG4vLyBQcm9ncmVzcyBiYXJzXG5cbiRwcm9ncmVzcy1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAuNzUgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmc6ICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRwcm9ncmVzcy1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIGluc2V0IDAgLjFyZW0gLjFyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItY29sb3I6ICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYmc6ICAgICAgICAgICAgICAgICAgIHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYW5pbWF0aW9uLXRpbWluZzogICAgIDFzIGxpbmVhciBpbmZpbml0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItdHJhbnNpdGlvbjogICAgICAgICAgIHdpZHRoIC42cyBlYXNlICFkZWZhdWx0O1xuXG5cbi8vIExpc3QgZ3JvdXBcblxuJGxpc3QtZ3JvdXAtY29sb3I6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMTI1KSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXk6ICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg6ICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3RpdmUtYmc6ICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6ICAgICRsaXN0LWdyb3VwLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICAgICAgICAgICAgJGxpc3QtZ3JvdXAtYmcgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvcjogICAgICAgICAgICRncmF5LTcwMCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogICAgICRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnOiAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1jb2xvcjogICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm94LXNoYWRvdzogICAgICAgICAgICAgIDAgMXB4IDJweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cblxuLy8gRmlndXJlc1xuXG4kZmlndXJlLWNhcHRpb24tZm9udC1zaXplOiAgICAgICAgICA5MCUgIWRlZmF1bHQ7XG4kZmlndXJlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cblxuLy8gQnJlYWRjcnVtYnNcblxuJGJyZWFkY3J1bWItcGFkZGluZy15OiAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy14OiAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tcGFkZGluZzogICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tOiAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyOiAgICAgICAgICAgICAgICBxdW90ZShcIi9cIikgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuXG5cbi8vIENhcm91c2VsXG5cbiRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC13aWR0aDogICAgICAgICAgICAgMTUlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTogICAgICAgICAgIC41ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtaG92ZXItb3BhY2l0eTogICAgIC45ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtdHJhbnNpdGlvbjogICAgICAgIG9wYWNpdHkgLjE1cyBlYXNlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtaW5kaWNhdG9yLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0OiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWhpdC1hcmVhLWhlaWdodDogMTBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3Itc3BhY2VyOiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNhcm91c2VsLWluZGljYXRvci10cmFuc2l0aW9uOiAgICAgIG9wYWNpdHkgLjZzIGVhc2UgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoOiAgICAgICAgICAgICA3MCUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1pY29uLXdpZHRoOiAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uLWJnOiAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPScjeyRjYXJvdXNlbC1jb250cm9sLWNvbG9yfScgdmlld0JveD0nMCAwIDggOCclM2UlM2NwYXRoIGQ9J001LjI1IDBsLTQgNCA0IDQgMS41LTEuNS0yLjUtMi41IDIuNS0yLjUtMS41LTEuNXonLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbi1iZzogICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skY2Fyb3VzZWwtY29udHJvbC1jb2xvcn0nIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBkPSdNMi43NSAwbC0xLjUgMS41IDIuNSAyLjUtMi41IDIuNSAxLjUgMS41IDQtNC00LTR6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAuNnMgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgdHJhbnNmb3JtICRjYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0ICFkZWZhdWx0OyAvLyBEZWZpbmUgdHJhbnNmb3JtIHRyYW5zaXRpb24gZmlyc3QgaWYgdXNpbmcgbXVsdGlwbGUgdHJhbnNpdGlvbnMgKGUuZy4sIGB0cmFuc2Zvcm0gMnMgZWFzZSwgb3BhY2l0eSAuNXMgZWFzZS1vdXRgKVxuXG5cbi8vIFNwaW5uZXJzXG5cbiRzcGlubmVyLXdpZHRoOiAgICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kc3Bpbm5lci1oZWlnaHQ6ICAgICAgICAkc3Bpbm5lci13aWR0aCAhZGVmYXVsdDtcbiRzcGlubmVyLWJvcmRlci13aWR0aDogIC4yNWVtICFkZWZhdWx0O1xuXG4kc3Bpbm5lci13aWR0aC1zbTogICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kc3Bpbm5lci1oZWlnaHQtc206ICAgICAgICRzcGlubmVyLXdpZHRoLXNtICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLXdpZHRoLXNtOiAuMmVtICFkZWZhdWx0O1xuXG5cbi8vIENsb3NlXG5cbiRjbG9zZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNSAhZGVmYXVsdDtcbiRjbG9zZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGJsYWNrICFkZWZhdWx0O1xuJGNsb3NlLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgMCAxcHggMCAkd2hpdGUgIWRlZmF1bHQ7XG5cblxuLy8gQ29kZVxuXG4kY29kZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICA4Ny41JSAhZGVmYXVsdDtcbiRjb2RlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRwaW5rICFkZWZhdWx0O1xuXG4ka2JkLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgICAuMnJlbSAhZGVmYXVsdDtcbiRrYmQtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJGtiZC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJGNvZGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGtiZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGtiZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuXG4kcHJlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG4kcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDogICAgICAgICAzNDBweCAhZGVmYXVsdDtcblxuXG4vLyBVdGlsaXRpZXNcblxuJGRpc3BsYXlzOiBub25lLCBpbmxpbmUsIGlubGluZS1ibG9jaywgYmxvY2ssIHRhYmxlLCB0YWJsZS1yb3csIHRhYmxlLWNlbGwsIGZsZXgsIGlubGluZS1mbGV4ICFkZWZhdWx0O1xuJG92ZXJmbG93czogYXV0bywgaGlkZGVuICFkZWZhdWx0O1xuJHBvc2l0aW9uczogc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3kgIWRlZmF1bHQ7XG5cblxuLy8gUHJpbnRpbmdcblxuJHByaW50LXBhZ2Utc2l6ZTogICAgICAgICAgICAgICAgICAgYTMgIWRlZmF1bHQ7XG4kcHJpbnQtYm9keS1taW4td2lkdGg6ICAgICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBcImxnXCIpICFkZWZhdWx0O1xuIiwiLy8gVG9nZ2xlc1xuLy9cbi8vIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBnbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBjZXJ0YWluIHRoZW1lIGZlYXR1cmVzLlxuXG4vLyBWZW5kb3JcbkBpbXBvcnQgXCJ2ZW5kb3IvcmZzXCI7XG5cbi8vIERlcHJlY2F0ZVxuQGltcG9ydCBcIm1peGlucy9kZXByZWNhdGVcIjtcblxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0IFwibWl4aW5zL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2hvdmVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ltYWdlXCI7XG5AaW1wb3J0IFwibWl4aW5zL2JhZGdlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9zY3JlZW4tcmVhZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL3NpemVcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzZXQtdGV4dFwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LWVtcGhhc2lzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtaGlkZVwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Zpc2liaWxpdHlcIjtcblxuLy8gLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcIm1peGlucy9hbGVydFwiO1xuQGltcG9ydCBcIm1peGlucy9idXR0b25zXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NhcmV0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcIm1peGlucy9uYXYtZGl2aWRlclwiO1xuQGltcG9ydCBcIm1peGlucy9mb3Jtc1wiO1xuQGltcG9ydCBcIm1peGlucy90YWJsZS1yb3dcIjtcblxuLy8gLy8gU2tpbnNcbkBpbXBvcnQgXCJtaXhpbnMvYmFja2dyb3VuZC12YXJpYW50XCI7XG5AaW1wb3J0IFwibWl4aW5zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcIm1peGlucy9ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNpdGlvblwiO1xuXG4vLyAvLyBMYXlvdXRcbkBpbXBvcnQgXCJtaXhpbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZ3JpZC1mcmFtZXdvcmtcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZ3JpZFwiO1xuQGltcG9ydCBcIm1peGlucy9mbG9hdFwiO1xuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIGZvbnQtcmVzaXppbmdcbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgZm9udC1zaXplIHN0YXJ0cyBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuLy8gUmVzaXplIGZvbnQtc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6ICRyZnMtYmFzZS1mb250LXNpemUgLyAoJHJmcy1iYXNlLWZvbnQtc2l6ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS1mb250LXNpemUtdW5pdCA9PSBcInJlbVwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInB4XCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6ICRyZnMtYnJlYWtwb2ludCAvICgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInJlbVwiIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBSZXNwb25zaXZlIGZvbnQtc2l6ZSBtaXhpblxuQG1peGluIHJmcygkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIC8vIENhY2hlICRmcyB1bml0XG4gICRmcy11bml0OiBpZih0eXBlLW9mKCRmcykgPT0gXCJudW1iZXJcIiwgdW5pdCgkZnMpLCBmYWxzZSk7XG5cbiAgLy8gQWRkICFpbXBvcnRhbnQgc3VmZml4IGlmIG5lZWRlZFxuICAkcmZzLXN1ZmZpeDogaWYoJGltcG9ydGFudCwgXCIgIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICAvLyBJZiAkZnMgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJGZzIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgQGlmIG5vdCAkZnMtdW5pdCBvciAkZnMtdW5pdCAhPSBcIlwiIGFuZCAkZnMtdW5pdCAhPSBcInB4XCIgYW5kICRmcy11bml0ICE9IFwicmVtXCIgb3IgJGZzID09IDAge1xuICAgIGZvbnQtc2l6ZTogI3skZnN9I3skcmZzLXN1ZmZpeH07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFZhcmlhYmxlcyBmb3Igc3RvcmluZyBzdGF0aWMgYW5kIGZsdWlkIHJlc2NhbGluZ1xuICAgICRyZnMtc3RhdGljOiBudWxsO1xuICAgICRyZnMtZmx1aWQ6IG51bGw7XG5cbiAgICAvLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRmcyBmb3IgY2FsY3VsYXRpb25zXG4gICAgQGlmICRmcy11bml0ID09IFwicHhcIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRmcy11bml0ID09IFwicmVtXCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGRlZmF1bHQgZm9udC1zaXplXG4gICAgQGlmICRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtIHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmcyAvICRyZnMtcmVtLXZhbHVlfXJlbSN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ID09IHB4IHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmc31weCN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCJgI3skcmZzLWZvbnQtc2l6ZS11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1mb250LXNpemUtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG4gICAgfVxuXG4gICAgLy8gT25seSBhZGQgbWVkaWEgcXVlcnkgaWYgZm9udC1zaXplIGlzIGJpZ2dlciBhcyB0aGUgbWluaW11bSBmb250LXNpemVcbiAgICAvLyBJZiAkcmZzLWZhY3RvciA9PSAxLCBubyByZXNjYWxpbmcgd2lsbCB0YWtlIHBsYWNlXG4gICAgQGlmICRmcyA+ICRyZnMtYmFzZS1mb250LXNpemUgYW5kICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHtcbiAgICAgICRtaW4td2lkdGg6IG51bGw7XG4gICAgICAkdmFyaWFibGUtdW5pdDogbnVsbDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1taW46ICRyZnMtYmFzZS1mb250LXNpemUgKyAoJGZzIC0gJHJmcy1iYXNlLWZvbnQtc2l6ZSkgLyAkcmZzLWZhY3RvcjtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBnaXZlbiBmb250LXNpemUgYW5kIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1kaWZmOiAkZnMgLSAkZnMtbWluO1xuXG4gICAgICAvLyBCYXNlIGZvbnQtc2l6ZSBmb3JtYXR0aW5nXG4gICAgICAvLyBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSB1bml0IGlzIHZhbGlkLCBiZWNhdXNlIHdlIGRpZCB0aGF0IGJlZm9yZVxuICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0sICN7JGZzLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnMtbWlufXB4KTtcblxuICAgICAgLy8gSWYgdHdvLWRpbWVuc2lvbmFsLCB1c2Ugc21hbGxlc3Qgb2Ygc2NyZWVuIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAkdmFyaWFibGUtd2lkdGg6ICN7JGZzLWRpZmYgKiAxMDAgLyAkcmZzLWJyZWFrcG9pbnR9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgIC8vIFNldCB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUuXG4gICAgICAkcmZzLWZsdWlkOiBjYWxjKCN7JG1pbi13aWR0aH0gKyAjeyR2YXJpYWJsZS13aWR0aH0pICN7JHJmcy1zdWZmaXh9O1xuICAgIH1cblxuICAgIC8vIFJlbmRlcmluZ1xuICAgIEBpZiAkcmZzLWZsdWlkID09IG51bGwge1xuICAgICAgLy8gT25seSByZW5kZXIgc3RhdGljIGZvbnQtc2l6ZSBpZiBubyBmbHVpZCBmb250LXNpemUgaXMgYXZhaWxhYmxlXG4gICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbXEtdmFsdWU6IG51bGw7XG5cbiAgICAgIC8vIFJGUyBicmVha3BvaW50IGZvcm1hdHRpbmdcbiAgICAgIEBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSByZW0ge1xuICAgICAgICAkbXEtdmFsdWU6ICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH07XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCB7XG4gICAgICAgICRtcS12YWx1ZTogI3skcmZzLWJyZWFrcG9pbnR9cHg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy1jbGFzcyA9PSBcImRpc2FibGVcIiB7XG4gICAgICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksXG4gICAgICAgIC8vIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgZm9udCBzaXplXG4gICAgICAgICYsXG4gICAgICAgIC5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICYuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkcmZzLXN0YXRpYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSwgKG1heC1oZWlnaHQ6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIGZvbnQtc2l6ZSAmIHJlc3BvbnNpdmUtZm9udC1zaXplIG1peGluIHVzZXMgUkZTIHRvIHJlc2NhbGUgZm9udCBzaXplc1xuQG1peGluIGZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cbiIsIi8vIERlcHJlY2F0ZSBtaXhpblxuLy9cbi8vIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gZGVwcmVjYXRlIG1peGlucyBvciBmdW5jdGlvbnMuXG4vLyBgJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlc2AgaXMgYSBnbG9iYWwgdmFyaWFibGUsIGAkaWdub3JlLXdhcm5pbmdgIGlzIGEgdmFyaWFibGUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvXG4vLyBzb21lIGRlcHJlY2F0ZWQgbWl4aW5zIHRvIHN1cHByZXNzIHRoZSB3YXJuaW5nIChmb3IgZXhhbXBsZSBpZiB0aGUgbWl4aW4gaXMgc3RpbGwgYmUgdXNlZCBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIEJvb3RzdHJhcClcbkBtaXhpbiBkZXByZWNhdGUoJG5hbWUsICRkZXByZWNhdGUtdmVyc2lvbiwgJHJlbW92ZS12ZXJzaW9uLCAkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIEBpZiAoJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlcyAhPSBmYWxzZSBhbmQgJGlnbm9yZS13YXJuaW5nICE9IHRydWUpIHtcbiAgICBAd2FybiBcIiN7JG5hbWV9IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgI3skZGVwcmVjYXRlLXZlcnNpb259LiBJdCB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gI3skcmVtb3ZlLXZlcnNpb259LlwiO1xuICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhvdmVyIG1peGluIGFuZCBgJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeWAgYXJlIGRlcHJlY2F0ZWQuXG4vL1xuLy8gT3JpZ2luYWxseSBhZGRlZCBkdXJpbmcgb3VyIGFscGhhcyBhbmQgbWFpbnRhaW5lZCBkdXJpbmcgYmV0YXMsIHRoaXMgbWl4aW4gd2FzXG4vLyBkZXNpZ25lZCB0byBwcmV2ZW50IGA6aG92ZXJgIHN0aWNraW5lc3Mgb24gaU9TLWFuIGlzc3VlIHdoZXJlIGhvdmVyIHN0eWxlc1xuLy8gd291bGQgcGVyc2lzdCBhZnRlciBpbml0aWFsIHRvdWNoLlxuLy9cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3ZSd2ZSBrZXB0IHRoZXNlIG1peGlucyBhbmQgdXBkYXRlZCB0aGVtIHRvXG4vLyBhbHdheXMgcmV0dXJuIHRoZWlyIHJlZ3VsYXIgcHNldWRvLWNsYXNzZXMgaW5zdGVhZCBvZiBhIHNoaW1tZWQgbWVkaWEgcXVlcnkuXG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjUxOTVcblxuQG1peGluIGhvdmVyIHtcbiAgJjpob3ZlciB7IEBjb250ZW50OyB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cyB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cy1hY3RpdmUge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuXG5AbWl4aW4gaW1nLWZsdWlkIHtcbiAgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvLyBQYXJ0IDI6IE92ZXJyaWRlIHRoZSBoZWlnaHQgdG8gYXV0bywgb3RoZXJ3aXNlIGltYWdlcyB3aWxsIGJlIHN0cmV0Y2hlZFxuICAvLyB3aGVuIHNldHRpbmcgYSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZSBvbiB0aGUgaW1nIGVsZW1lbnQuXG4gIGhlaWdodDogYXV0bztcbn1cblxuXG4vLyBSZXRpbmEgaW1hZ2Vcbi8vXG4vLyBTaG9ydCByZXRpbmEgbWl4aW4gZm9yIHNldHRpbmcgYmFja2dyb3VuZC1pbWFnZSBhbmQgLXNpemUuXG5cbkBtaXhpbiBpbWctcmV0aW5hKCRmaWxlLTF4LCAkZmlsZS0yeCwgJHdpZHRoLTF4LCAkaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkZmlsZS0xeCk7XG5cbiAgLy8gQXV0b3ByZWZpeGVyIHRha2VzIGNhcmUgb2YgYWRkaW5nIC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyBhbmQgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbyxcbiAgLy8gYnV0IGRvZXNuJ3QgY29udmVydCBkcHB4PT5kcGkuXG4gIC8vIFRoZXJlJ3Mgbm8gc3VjaCB0aGluZyBhcyB1bnByZWZpeGVkIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gc2luY2UgaXQncyBub25zdGFuZGFyZC5cbiAgLy8gQ29tcGF0aWJpbGl0eSBpbmZvOiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAvLyBJRTktMTEgZG9uJ3Qgc3VwcG9ydCBkcHB4XG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHsgLy8gU3RhbmRhcmRpemVkXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRmaWxlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aC0xeCAkaGVpZ2h0LTF4O1xuICB9XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcImBpbWctcmV0aW5hKClgXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG4iLCJAbWl4aW4gYmFkZ2UtdmFyaWFudCgkYmcpIHtcbiAgY29sb3I6IGNvbG9yLXlpcSgkYmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG5cbiAgQGF0LXJvb3QgYSN7Jn0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGNvbG9yOiBjb2xvci15aXEoJGJnKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmcsIDEwJSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkYmFkZ2UtZm9jdXMtd2lkdGggcmdiYSgkYmcsIC41KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlc2l6ZSBhbnl0aGluZ1xuXG5AbWl4aW4gcmVzaXphYmxlKCRkaXJlY3Rpb24pIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFBlciBDU1MzIFVJLCBgcmVzaXplYCBvbmx5IGFwcGxpZXMgd2hlbiBgb3ZlcmZsb3dgIGlzbid0IGB2aXNpYmxlYFxuICByZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG59XG4iLCIvLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xuLy9cbi8vIFNlZTogaHR0cHM6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cbi8vIFNlZTogaHR0cHM6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5cbkBtaXhpbiBzci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vL1xuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG5AbWl4aW4gc3Itb25seS1mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4iLCIvLyBTaXppbmcgc2hvcnRjdXRzXG5cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHNpemUoKWBcIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciB3b3JkLXdyYXAuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gVHlwb2dyYXBoeVxuXG5AbWl4aW4gdGV4dC1lbXBoYXNpcy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2UgIT0gMCB7XG4gICAgYSN7JHBhcmVudH0ge1xuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuQG1peGluIHRleHQtaGlkZSgkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG5cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHRleHQtaGlkZSgpYFwiLCBcInY0LjEuMFwiLCBcInY1XCIsICRpZ25vcmUtd2FybmluZyk7XG59XG4iLCIvLyBUZXh0IHRydW5jYXRlXG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG5cbkBtaXhpbiB0ZXh0LXRydW5jYXRlKCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBWaXNpYmlsaXR5XG5cbkBtaXhpbiBpbnZpc2libGUoJHZpc2liaWxpdHkpIHtcbiAgdmlzaWJpbGl0eTogJHZpc2liaWxpdHkgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYGludmlzaWJsZSgpYFwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuIiwiQG1peGluIGFsZXJ0LXZhcmlhbnQoJGJhY2tncm91bmQsICRib3JkZXIsICRjb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBAaW5jbHVkZSBncmFkaWVudC1iZygkYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRib3JkZXIsIDUlKTtcbiAgfVxuXG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbkBtaXhpbiBidXR0b24tdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYmFja2dyb3VuZCwgNy41JSksICRob3Zlci1ib3JkZXI6IGRhcmtlbigkYm9yZGVyLCAxMCUpLCAkYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKSwgJGFjdGl2ZS1ib3JkZXI6IGRhcmtlbigkYm9yZGVyLCAxMi41JSkpIHtcbiAgY29sb3I6IGNvbG9yLXlpcSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYm94LXNoYWRvdyk7XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6ICRob3Zlci1ib3JkZXI7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBib3gtc2hhZG93OiAkYnRuLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoY29sb3IteWlxKCRiYWNrZ3JvdW5kKSwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgY29tZXMgZmlyc3Qgc28gYWN0aXZlIGNhbiBwcm9wZXJseSByZXN0eWxlXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50cyBpZiB0aGV5J3JlIGVuYWJsZWRcbiAgICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSxcbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlbW92ZSB0aGUgZ3JhZGllbnQgZm9yIHRoZSBwcmVzc2VkL2FjdGl2ZSBzdGF0ZVxuICAgIH1cbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIGFuZCAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICBib3gtc2hhZG93OiAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJGNvbG9yLCAkY29sb3ItaG92ZXI6IGNvbG9yLXlpcSgkY29sb3IpLCAkYWN0aXZlLWJhY2tncm91bmQ6ICRjb2xvciwgJGFjdGl2ZS1ib3JkZXI6ICRjb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSxcbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxuICAgICAgQGlmICRlbmFibGUtc2hhZG93cyBhbmQgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGJ0bi1hY3RpdmUtYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQnV0dG9uIHNpemVzXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmcteSwgJHBhZGRpbmcteCwgJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkYm9yZGVyLXJhZGl1cykge1xuICBwYWRkaW5nOiAkcGFkZGluZy15ICRwYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgLy8gTWFudWFsbHkgZGVjbGFyZSB0byBwcm92aWRlIGFuIG92ZXJyaWRlIHRvIHRoZSBicm93c2VyIGRlZmF1bHRcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cywgMCk7XG59XG4iLCJAbWl4aW4gY2FyZXQtZG93biB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldC11cCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldC1yaWdodCB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQ7XG59XG5cbkBtaXhpbiBjYXJldC1sZWZ0IHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQoJGRpcmVjdGlvbjogZG93bikge1xuICBAaWYgJGVuYWJsZS1jYXJldCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRjYXJldC1zcGFjaW5nO1xuICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtZG93bjtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LXVwO1xuICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY2FyZXQtc3BhY2luZztcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5OjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFBhZ2luYXRpb25cblxuQG1peGluIHBhZ2luYXRpb24tc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIC5wYWdlLWxpbmsge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgfVxuXG4gIC5wYWdlLWl0ZW0ge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAucGFnZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBMaXN0c1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbkBtaXhpbiBsaXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICYubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbkBtaXhpbiBuYXYtZGl2aWRlcigkY29sb3I6ICRuYXYtZGl2aWRlci1jb2xvciwgJG1hcmdpbi15OiAkbmF2LWRpdmlkZXItbWFyZ2luLXkpIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46ICRtYXJnaW4teSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yO1xufVxuIiwiLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcmAgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtZm9jdXMoKSB7XG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaW5wdXQtZm9jdXMtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWZvY3VzLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93LCAkaW5wdXQtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IsICRpY29uKSB7XG4gIC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmVlZGJhY2stbWFyZ2luLXRvcDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stZm9udC1zaXplKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLXJpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kLCAkaWNvbiAkY3VzdG9tLXNlbGVjdC1iZyBuby1yZXBlYXQgJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wb3NpdGlvbiAvICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tc2l6ZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuZm9ybS1jb250cm9sLWZpbGUge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjb2xvciwgMTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1iZyhsaWdodGVuKCRjb2xvciwgMTAlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWxlXG4gIC5jdXN0b20tZmlsZS1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGJvcmRlcjogbnVsbCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAmLFxuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlciAhPSBudWxsIHtcbiAgICAgIHRoLFxuICAgICAgdGQsXG4gICAgICB0aGVhZCB0aCxcbiAgICAgIHRib2R5ICsgdGJvZHkge1xuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyIHtcbiAgICAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG5cbiAgICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG5cbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuICBhI3skcGFyZW50fSxcbiAgYnV0dG9uI3skcGFyZW50fSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmctZ3JhZGllbnQtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdFxuLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cywgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM6IGZhbHNlKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbiAgQGVsc2UgaWYgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXMgIT0gZmFsc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6ICRmYWxsYmFjay1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuIiwiQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAkcmVzdWx0OiAoKTtcblxuICAgIEBpZiAobGVuZ3RoKCRzaGFkb3cpID09IDEpIHtcbiAgICAgIC8vIFdlIGNhbiBwYXNzIGBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO2BcbiAgICAgICRyZXN1bHQ6ICRzaGFkb3c7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgdG8gYXZvaWQgaW52YWxpZCBwcm9wZXJ0aWVzIGZvciBleGFtcGxlIGBib3gtc2hhZG93OiBub25lLCAxcHggMXB4IGJsYWNrO2BcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzaGFkb3cpIHtcbiAgICAgICAgQGlmIG50aCgkc2hhZG93LCAkaSkgIT0gXCJub25lXCIge1xuICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJHNoYWRvdywgJGkpLCBcImNvbW1hXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAobGVuZ3RoKCRyZXN1bHQpID4gMCkge1xuICAgICAgYm94LXNoYWRvdzogJHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdyYWRpZW50c1xuXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3RcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA9PSAwIHtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWJhc2U7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGVuYWJsZS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLW1lZGlhLXF1ZXJ5IHtcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIC8vIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgYnJlYWtwb2ludHNcbiAgJWdyaWQtY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyIC8gMjtcbiAgfVxuXG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIC8vIEFsbG93IGNvbHVtbnMgdG8gc3RyZXRjaCBmdWxsIHdpZHRoIGJlbG93IHRoZWlyIGJyZWFrcG9pbnRzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2wjeyRpbmZpeH0sXG4gICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgLy8gUHJvdmlkZSBiYXNpYyBgLmNvbC17YnB9YCBjbGFzc2VzIGZvciBlcXVhbC13aWR0aCBmbGV4Ym94IGNvbHVtbnNcbiAgICAgIC5jb2wjeyRpbmZpeH0ge1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBSZXNldCBlYXJsaWVyIGdyaWQgdGllcnNcbiAgICAgIH1cblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWZpcnN0IHsgb3JkZXI6IC0xOyB9XG5cbiAgICAgIC5vcmRlciN7JGluZml4fS1sYXN0IHsgb3JkZXI6ICRjb2x1bW5zICsgMTsgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLm9yZGVyI3skaW5maXh9LSN7JGl9IHsgb3JkZXI6ICRpOyB9XG4gICAgICB9XG5cbiAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MgLm9mZnNldC0wXG4gICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW4tbGVmdDogLSRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xuICAvLyBBZGQgYSBgbWF4LXdpZHRoYCB0byBlbnN1cmUgY29udGVudCB3aXRoaW4gZWFjaCBjb2x1bW4gZG9lcyBub3QgYmxvdyBvdXRcbiAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gIC8vIGRvIG5vdCBhcHBlYXIgdG8gcmVxdWlyZSB0aGlzLlxuICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBmbG9hdC1sZWZ0YCBtaXhpblwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtcmlnaHRgIG1peGluXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG5AbWl4aW4gZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtbm9uZWAgbWl4aW5cIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbiIsIi8vIE1peGluc1xuLy9cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBSVEwvTFRSXG5cbkBtaXhpbiBsdHItb25seSgpIHtcbiAgQGlmICRydGwtc3VwcG9ydCB7XG4gICAgaHRtbDpub3QoW2Rpcj1ydGxdKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBydGwtb25seSgpIHtcbiAgQGlmICRydGwtc3VwcG9ydCB7XG4gICAgW2Rpcj1ydGxdIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbHRyLXN0eWxlKCkge1xuICBAaWYgJHJ0bC1zdXBwb3J0IHtcbiAgICBodG1sOm5vdChbZGlyPXJ0bF0pICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcnRsLXN0eWxlKCkge1xuICBAaWYgJHJ0bC1zdXBwb3J0IHtcbiAgICBbZGlyPXJ0bF0gJiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBLZXlmcmFtZXNcblxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDYXJldHNcblxuQG1peGluIGNhcmV0LWRvd24ge1xuICBtYXJnaW4tdG9wOiAtMSAqICgkY2FyZXQtd2lkdGggLyAxLjUpO1xuICB3aWR0aDogJGNhcmV0LXdpZHRoO1xuICBoZWlnaHQ6ICRjYXJldC13aWR0aDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbkBtaXhpbiBjYXJldC11cCB7XG4gIG1hcmdpbi10b3A6IC0wO1xuICB3aWR0aDogJGNhcmV0LXdpZHRoO1xuICBoZWlnaHQ6ICRjYXJldC13aWR0aDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG5AbWl4aW4gY2FyZXQtcmlnaHQge1xuICBtYXJnaW4tdG9wOiAtMSAqICgkY2FyZXQtd2lkdGggLyAyKTtcbiAgd2lkdGg6ICRjYXJldC13aWR0aDtcbiAgaGVpZ2h0OiAkY2FyZXQtd2lkdGg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuQG1peGluIGNhcmV0LWxlZnQge1xuICBtYXJnaW4tdG9wOiAtMSAqICgkY2FyZXQtd2lkdGggLyAyKTtcbiAgd2lkdGg6ICRjYXJldC13aWR0aDtcbiAgaGVpZ2h0OiAkY2FyZXQtd2lkdGg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBSZXNwb25zaXplIGxvb3BzXG5cbkBtaXhpbiByZXNwb25zaXZlLWxvb3AtYmVmb3JlKCRwYXJlbnQsICRzdGFydC1icmVha3BvaW50OiBzbSkge1xuICAkY3VyLWJyZWFrcG9pbnQ6ICRzdGFydC1icmVha3BvaW50O1xuXG4gIEB3aGlsZSAkY3VyLWJyZWFrcG9pbnQge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkY3VyLWJyZWFrcG9pbnQpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IChicmVha3BvaW50LW1pbigkY3VyLWJyZWFrcG9pbnQpIC0gMSkpIHtcbiAgICAgICN7JHBhcmVudH0jeyRpbmZpeH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkY3VyLWJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQtbmV4dCgkY3VyLWJyZWFrcG9pbnQpO1xuICB9XG59XG5cbkBtaXhpbiByZXNwb25zaXZlLWxvb3AtYWZ0ZXIoJHBhcmVudCwgJHN0YXJ0LWJyZWFrcG9pbnQ6IHNtKSB7XG4gICRjdXItYnJlYWtwb2ludDogJHN0YXJ0LWJyZWFrcG9pbnQ7XG5cbiAgQHdoaWxlICRjdXItYnJlYWtwb2ludCB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRjdXItYnJlYWtwb2ludCk7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogYnJlYWtwb2ludC1taW4oJGN1ci1icmVha3BvaW50KSkge1xuICAgICAgI3skcGFyZW50fSN7JGluZml4fSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICRjdXItYnJlYWtwb2ludDogYnJlYWtwb2ludC1uZXh0KCRjdXItYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDb2xvcnNcblxuLy8gQ29udHJhc3RcbkBtaXhpbiBjb2xvci15aXEoJGNvbG9yKSB7XG4gIGNvbG9yOiB5aXEoJGNvbG9yKTtcbn1cblxuQG1peGluIGJnLWNvbG9yLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkcnRoLWNvbG9yOiAjMDAwKSB7XG4gICN7JHBhcmVudH0geyBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IgIWltcG9ydGFudDsgfVxuICBhI3skcGFyZW50fSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjk1KSwgJGJhY2tncm91bmQ6ICRydGgtY29sb3IpICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuXG5AbWl4aW4gYmctdmFyaWFudCgkcGFyZW50LCAkY29sb3IsICRydGgtY29sb3I6ICMwMDApIHtcbiAgQGluY2x1ZGUgYmctY29sb3ItdmFyaWFudCgkcGFyZW50LCAkY29sb3IpO1xuICBAaW5jbHVkZSBiZy1jb2xvci12YXJpYW50KFwiI3skcGFyZW50fS1kYXJrXCIsIHJnYmEtdG8taGV4KHJnYmEoJGNvbG9yLCAuOSksICRiYWNrZ3JvdW5kOiAkcnRoLWNvbG9yKSk7XG4gIEBpbmNsdWRlIGJnLWNvbG9yLXZhcmlhbnQoXCIjeyRwYXJlbnR9LWRhcmtlclwiLCByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjg1KSwgJGJhY2tncm91bmQ6ICRydGgtY29sb3IpKTtcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBCdXR0b25zXG5cbkBtaXhpbiBidXR0b24tdmFyaWFudCgkYmFja2dyb3VuZDogbnVsbCwgJGJvcmRlcjogbnVsbCwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiBudWxsLCAkYWN0aXZlLWJvcmRlcjogbnVsbCkge31cblxuQG1peGluIGFwcHdvcmstYnV0dG9uLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkYnRuLWNvbG9yczogZ2V0LWJ0bi1jb2xvcnMoJGJhY2tncm91bmQsIGlmKCRib3JkZXIsICRib3JkZXIsICRiYWNrZ3JvdW5kKSk7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWJveC1zaGFkb3cpO1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKTtcbiAgICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJnLWhvdmVyKTtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIHNoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAjeyRwYXJlbnR9IC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiByZ2JhLXRvLWhleCgkYmFja2dyb3VuZCk7XG4gIH1cblxuICAjeyRwYXJlbnR9OmFjdGl2ZSxcbiAgI3skcGFyZW50fS5hY3RpdmUsXG4gIC5zaG93ID4gI3skcGFyZW50fS5kcm9wZG93bi10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1hY3RpdmUpO1xuXG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYWN0aXZlLWJveC1zaGFkb3cpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBCdXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgI3skcGFyZW50fSxcbiAgLmlucHV0LWdyb3VwLXByZXBlbmQgI3skcGFyZW50fSxcbiAgLmlucHV0LWdyb3VwLWFwcGVuZCAjeyRwYXJlbnR9IHtcbiAgICBib3JkZXItcmlnaHQ6ICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoIHNvbGlkIG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJnLWFjdGl2ZSk7XG4gICAgYm9yZGVyLWxlZnQ6ICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoIHNvbGlkIG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJnLWFjdGl2ZSk7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtYnV0dG9uLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCwgJG1kLWNvbG9yOiAkYmFja2dyb3VuZCkge1xuICAkYnRuLWNvbG9yczogZ2V0LW1hdGVyaWFsLWJ0bi1jb2xvcnMoJGJhY2tncm91bmQpO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAkYnRuLWJveC1zaGFkb3c7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJnLWhvdmVyKTtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogJGJ0bi1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH0gLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgY29sb3I6IHJnYmEtdG8taGV4KCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gICN7JHBhcmVudH0gLndhdmVzLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogaWYoJGNvbG9yID09ICNmZmYsIHJnYmEoJGNvbG9yLCAuMyksIHJnYmEoJGNvbG9yLCAuMikpO1xuICB9XG5cbiAgI3skcGFyZW50fTphY3RpdmUsXG4gICN7JHBhcmVudH0uYWN0aXZlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0uZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1hY3RpdmUpO1xuICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBGbGF0IGJ1dHRvbnNcbiAgI3skcGFyZW50fS5tZC1idG4tZmxhdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkbWQtY29sb3I7XG5cbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkbWQtY29sb3IsIC4xKTtcbiAgICB9XG5cbiAgICAud2F2ZXMtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJG1kLWNvbG9yLCAuMyk7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50fS5tZC1idG4tZmxhdDphY3RpdmUsXG4gICN7JHBhcmVudH0ubWQtYnRuLWZsYXQuYWN0aXZlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0ubWQtYnRuLWZsYXQuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtZC1jb2xvciwgLjE1KTtcbiAgfVxuXG4gIC8vIERpc2FibGVkXG5cbiAgI3skcGFyZW50fS5kaXNhYmxlZCxcbiAgI3skcGFyZW50fTpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAkbWF0ZXJpYWwtY29tcG9uZW50LXNoYWRvdyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gICN7JHBhcmVudH0ubWQtYnRuLWZsYXQuZGlzYWJsZWQsXG4gICN7JHBhcmVudH0ubWQtYnRuLWZsYXQ6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBPdXRsaW5lIGJ1dHRvbnNcblxuQG1peGluIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJGNvbG9yOiBudWxsLCAkY29sb3ItaG92ZXI6IG51bGwsICRob3Zlci1jb2xvcjogbnVsbCkge31cblxuQG1peGluIGFwcHdvcmstYnV0dG9uLW91dGxpbmUtdmFyaWFudCgkcGFyZW50LCAkY29sb3IsICRob3Zlci1jb2xvcjogbnVsbCkge1xuICAkYnRuLWNvbG9yczogZ2V0LWJ0bi1jb2xvcnMoJGNvbG9yLCAkY29sb3IpO1xuICAkY29sb3ItaG92ZXI6IGlmKCRob3Zlci1jb2xvciwgJGhvdmVyLWNvbG9yLCB5aXEoJGNvbG9yKSk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIHNoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH06YWN0aXZlLFxuICAjeyRwYXJlbnR9LmFjdGl2ZSxcbiAgLnNob3cgPiAjeyRwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBib3JkZXIpO1xuICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJnLWhvdmVyKTtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuXG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYWN0aXZlLWJveC1zaGFkb3cpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRwYXJlbnR9IC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgI3skcGFyZW50fTpob3ZlciAuYmFkZ2UsXG4gICN7JHBhcmVudH06Zm9jdXMgLmJhZGdlLFxuICAjeyRwYXJlbnR9OmFjdGl2ZSAuYmFkZ2UsXG4gICN7JHBhcmVudH0uYWN0aXZlIC5iYWRnZSxcbiAgLnNob3cgPiAjeyRwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZSAuYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogaWYoYWxwaGEoJGNvbG9yKT09MSwgJGNvbG9yLCB5aXEoJGNvbG9yLWhvdmVyKSk7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtYnV0dG9uLW91dGxpbmUtdmFyaWFudCgkcGFyZW50LCAkY29sb3IsICRob3Zlci1jb2xvcjogbnVsbCkge1xuICAkYnRuLWNvbG9yczogZ2V0LW1hdGVyaWFsLWJ0bi1jb2xvcnMoJGNvbG9yKTtcbiAgJGNvbG9yLWhvdmVyOiBpZigkaG92ZXItY29sb3IsICRob3Zlci1jb2xvciwgeWlxKCRjb2xvcikpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkY29sb3IgaW5zZXQ7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgIGJveC1zaGFkb3c6ICRidG4tZm9jdXMtYm94LXNoYWRvdztcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50fTphY3RpdmUsXG4gICN7JHBhcmVudH0uYWN0aXZlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0uZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1ob3Zlcik7XG4gICAgYm94LXNoYWRvdzogJGJ0bi1hY3RpdmUtYm94LXNoYWRvdztcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG5cbiAgI3skcGFyZW50fSAud2F2ZXMtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiBpZigkY29sb3ItaG92ZXI9PSNmZmYsIHJnYmEoJGNvbG9yLWhvdmVyLCAuMyksIHJnYmEoJGNvbG9yLWhvdmVyLCAuMikpO1xuICB9XG5cbiAgI3skcGFyZW50fSAuYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICN7JHBhcmVudH06aG92ZXIgLmJhZGdlLFxuICAjeyRwYXJlbnR9OmZvY3VzIC5iYWRnZSxcbiAgI3skcGFyZW50fTphY3RpdmUgLmJhZGdlLFxuICAjeyRwYXJlbnR9LmFjdGl2ZSAuYmFkZ2UsXG4gIC5zaG93ID4gI3skcGFyZW50fS5kcm9wZG93bi10b2dnbGUgLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6IGlmKGFscGhhKCRjb2xvcik9PTEsICRjb2xvciwgeWlxKCRjb2xvci1ob3ZlcikpO1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQmFkZ2VzXG5cbkBtaXhpbiBiYWRnZS12YXJpYW50KCRiZykge31cblxuQG1peGluIGFwcHdvcmstYmFkZ2UtdmFyaWFudCgkcGFyZW50LCAkYmcsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJnKSk7XG4gIH1cblxuICAjeyRwYXJlbnR9W2hyZWZdIHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihhbHBoYSgkYmcpID09IDEsIHJnYmEtdG8taGV4KHJnYmEoJGJnLCAuOTUpLCAjMDAwKSwgcmdiYSgkYmcsIGFscGhhKCRiZykgKyAuMDMpKTtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiZykpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5idG4gI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZDogJGJnICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmcgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmcpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWJhZGdlLW91dGxpbmUtdmFyaWFudCgkcGFyZW50LCAkYmcsICRjb2xvcjogJGJnKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkYmcgaW5zZXQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICN7JHBhcmVudH1baHJlZl0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmJ0biAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkYmcgaW5zZXQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBEcm9wZG93bnNcblxuQG1peGluIGFwcHdvcmstZHJvcGRvd24tdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICN7JHBhcmVudH0gLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuICAjeyRwYXJlbnR9IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgfVxuXG4gICN7JHBhcmVudH0uZHJvcGRvd24tbWVudSA+IGxpOm5vdCguZGlzYWJsZWQpID4gYTpub3QoLmRyb3Bkb3duLWl0ZW0pOmFjdGl2ZSxcbiAgI3skcGFyZW50fS5kcm9wZG93bi1tZW51ID4gbGkuYWN0aXZlOm5vdCguZGlzYWJsZWQpID4gYTpub3QoLmRyb3Bkb3duLWl0ZW0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWRyb3Bkb3duLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1kcm9wZG93bi12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtZHJvcGRvd24tdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICN7JHBhcmVudH0gLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCkuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuICB9XG5cbiAgI3skcGFyZW50fS5kcm9wZG93bi1tZW51ID4gbGkuYWN0aXZlOm5vdCguZGlzYWJsZWQpID4gYTpub3QoLmRyb3Bkb3duLWl0ZW0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWRyb3Bkb3duLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1kcm9wZG93bi12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBOYXZzXG5cbkBtaXhpbiBhcHB3b3JrLW5hdi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCkge1xuICAgPiAubmF2IC5uYXYtbGluayxcbiAgJi5uYXYgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy15ICRwYWRkaW5nLXg7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbmF2LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkcGlsbHMtc2VsZWN0b3I6IGlmKCRwYXJlbnQgPT0gJycsICcubmF2LXBpbGxzJywgJyN7JHBhcmVudH0ubmF2LXBpbGxzLCAjeyRwYXJlbnR9ID4gLm5hdi1waWxscycpO1xuXG4gICN7JHBpbGxzLXNlbGVjdG9yfSAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50fS50YWJzLWFsdC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlLFxuICAjeyRwYXJlbnR9LnRhYnMtYWx0ID4gLm5hdi10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICAgIEBpbmNsdWRlIHBsYWluLWhvdmVyLWZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgLTJweCAwICRiYWNrZ3JvdW5kIGluc2V0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1uYXYtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBhcHB3b3JrLW5hdi12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtbmF2LXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkbGluay1jb2xvcjogbnVsbCkge1xuICAkdGFicy1zZWxlY3RvcjogaWYoJHBhcmVudCA9PSAnJywgJy5uYXYtdGFicycsICcjeyRwYXJlbnR9Lm5hdi10YWJzJyk7XG4gICRwaWxscy1zZWxlY3RvcjogaWYoJHBhcmVudCA9PSAnJywgJy5uYXYtcGlsbHMnLCAnI3skcGFyZW50fS5uYXYtcGlsbHMsICN7JHBhcmVudH0gPiAubmF2LXBpbGxzJyk7XG5cbiAgI3skdGFicy1zZWxlY3Rvcn0gLm5hdi1saW5rIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGNvbG9yLCAkY29sb3IpO1xuICB9XG5cbiAgI3skcGlsbHMtc2VsZWN0b3J9IC5uYXYtbGluay5hY3RpdmUge1xuICAgIEBpbmNsdWRlIHBsYWluLWhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGNvbG9yOiBpZigkbGluay1jb2xvciwgJGxpbmstY29sb3IsIHlpcSgkY29sb3IpKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtbmF2LXRoZW1lKCRjb2xvciwgJGxpbmstY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1uYXYtdmFyaWFudCgnJywgJGNvbG9yLCAkbGluay1jb2xvcik7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogUGFnaW5hdGlvblxuXG5AbWl4aW4gYXBwd29yay1wYWdpbmF0aW9uLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmssXG4gICN7JHBhcmVudH0ucGFnaW5hdGlvbiBsaS5hY3RpdmUgPiBhOm5vdCgucGFnZS1saW5rKSB7XG4gICAgQGluY2x1ZGUgcGxhaW4taG92ZXItZm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstcGFnaW5hdGlvbi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstcGFnaW5hdGlvbi12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBQcm9ncmVzcyBiYXJzXG5cbkBtaXhpbiBhcHB3b3JrLXByb2dyZXNzLWJhci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIC5wcm9ncmVzcy1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBMaXN0IGdyb3Vwc1xuXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHN0YXRlOiBudWxsLCAkYmFja2dyb3VuZDogbnVsbCwgJGNvbG9yOiBudWxsKSB7fVxuXG5AbWl4aW4gYXBwd29yay1saXN0LWdyb3VwLWl0ZW0tdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRiZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjEpLCAjZmZmKTtcbiAgJGNvbG9yOiB5aXEoJGJnKTtcbiAgJGhvdmVyLWJnOiByZ2JhLXRvLWhleChyZ2JhKCRiZywgLjk5KSwgIzAwMCk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4wNyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICBhI3skcGFyZW50fSxcbiAgYnV0dG9uI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZztcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbGlzdC1ncm91cC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJy5saXN0LWdyb3VwLWl0ZW0tcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcblxuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgcGxhaW4taG92ZXItZm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBBbGVydHNcblxuQG1peGluIGFsZXJ0LXZhcmlhbnQoJGJhY2tncm91bmQ6IG51bGwsICRib3JkZXI6IG51bGwsICRjb2xvcjogbnVsbCkge31cblxuQG1peGluIGFwcHdvcmstYWxlcnQtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjE1KSwgI2ZmZik7XG4gICRib3JkZXI6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC45NCksICMwMDApO1xuICAkY29sb3I6IHlpcSgkYmFja2dyb3VuZCk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBociB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkYm9yZGVyO1xuICAgIH1cblxuICAgIC5hbGVydC1saW5rIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWFsZXJ0LWRhcmstdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBociB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKHlpcSgkYmFja2dyb3VuZCksLjIpO1xuICAgIH1cblxuICAgIC5jbG9zZSxcbiAgICAuYWxlcnQtbGluayB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFRvb2x0aXBzXG5cbkBtaXhpbiBhcHB3b3JrLXRvb2x0aXAtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIC50b29sdGlwLWlubmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgICB9XG5cbiAgICAmLmJzLXRvb2x0aXAtdG9wIC5hcnJvdzo6YmVmb3JlLCAmLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gLmFycm93OjpiZWZvcmUgeyBib3JkZXItdG9wLWNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICAgICYuYnMtdG9vbHRpcC1yaWdodCAuYXJyb3c6OmJlZm9yZSwgJi5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gLmFycm93OjpiZWZvcmUgeyBib3JkZXItcmlnaHQtY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gICAgJi5icy10b29sdGlwLWJvdHRvbSAuYXJyb3c6OmJlZm9yZSwgJi5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdzo6YmVmb3JlIHsgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgICAmLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3c6OmJlZm9yZSwgJi5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSAuYXJyb3c6OmJlZm9yZSB7IGJvcmRlci1sZWZ0LWNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogUG9wb3ZlcnNcblxuQG1peGluIGFwcHdvcmstcG9wb3Zlci12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAgIC5wb3BvdmVyLWhlYWRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoeWlxKCRiYWNrZ3JvdW5kKSwuMik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgLnBvcG92ZXItYm9keSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgPiAuYXJyb3c6OmJlZm9yZSB7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuICAgICYuYnMtcG9wb3Zlci10b3AgPiAuYXJyb3c6OmFmdGVyLCAmLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gPiAuYXJyb3c6OmFmdGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgICAmLmJzLXBvcG92ZXItcmlnaHQgPiAuYXJyb3c6OmFmdGVyLCAmLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJyaWdodFwiXSA+IC5hcnJvdzo6YWZ0ZXIgeyBib3JkZXItcmlnaHQtY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gICAgJi5icy1wb3BvdmVyLWJvdHRvbSA+IC5hcnJvdzo6YWZ0ZXIsICYuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSA+IC5hcnJvdzo6YWZ0ZXIgeyBib3JkZXItYm90dG9tLWNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICAgICYuYnMtcG9wb3Zlci1sZWZ0ID4gLmFycm93OjphZnRlciwgJi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSA+IC5hcnJvdzo6YWZ0ZXIgeyBib3JkZXItbGVmdC1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEZvcm0gY29udHJvbHNcblxuQG1peGluIGFwcHdvcmstY3VzdG9tLXNlbGVjdC1zaXplKCRzaXplLCAkcGFkZGluZy14LCAkbGluZS1oZWlnaHQsICRmb250LXNpemUpIHtcbiAgLmN1c3RvbS1zZWxlY3QtI3skc2l6ZX0sXG4gIC5pbnB1dC1ncm91cC0jeyRzaXplfSAuY3VzdG9tLXNlbGVjdCB7XG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICRwYWRkaW5nLXggY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgJixcbiAgICAgICZbc2l6ZT1cIjBcIl06bm90KFttdWx0aXBsZV0pIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy14ICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgJHBhZGRpbmcteCBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJltzaXplPVwiMFwiXTpub3QoW211bHRpcGxlXSkge1xuICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1jdXN0b20tY29udHJvbC12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwsICRkZWZhdWx0LWJhY2tncm91bmQ6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgQGlmICRkZWZhdWx0LWJhY2tncm91bmQge1xuICAgICAgLmN1c3RvbS1jb250cm9sLWlucHV0IH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6YWN0aXZlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgICAmOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgICAmOmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGggcmdiYSgkYmFja2dyb3VuZCwgLjQpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDppbmRldGVybWluYXRlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbiAgICAmLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYmcsICdfQ09MT1JfJywgJGNvbG9yKSwgXCIjXCIsIFwiJTIzXCIpKTtcbiAgICB9XG5cbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1iZywgJ19DT0xPUl8nLCAkY29sb3IpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cblxuICAgICYuY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHN0ci1yZXBsYWNlKHN0ci1yZXBsYWNlKCRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWJnLCAnX0NPTE9SXycsICRjb2xvciksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWN1c3RvbS1jb250cm9sLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1jdXN0b20tY29udHJvbC12YXJpYW50KCcuY3VzdG9tLWNvbnRyb2wnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWNvbnRyb2wtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsLCAkZGVmYXVsdC1iYWNrZ3JvdW5kOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIEBpZiAkZGVmYXVsdC1iYWNrZ3JvdW5kIHtcbiAgICAgIC5jdXN0b20tY29udHJvbC1pbnB1dCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICAgLmN1c3RvbS1jb250cm9sLWlucHV0OmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICYuY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJi5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYuY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDppbmRldGVybWluYXRlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRldGVybWluYXRlLWJnLCAnX0NPTE9SXycsICRjb2xvciksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuXG4gICAgJi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1iZywgJ19DT0xPUl8nLCAkY29sb3IpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cblxuICAgICYuY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLXJhZGlvLWluZGljYXRvci1iZywgJ19DT0xPUl8nLCAkYmFja2dyb3VuZCksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIC4xNSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWN1c3RvbS1jb250cm9sLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1jdXN0b20tY29udHJvbC12YXJpYW50KCcuY3VzdG9tLWNvbnRyb2wnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuQG1peGluIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGU6IG51bGwsICRjb2xvcjogbnVsbCwgJGljb246IG51bGwpIHt9XG5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCRwYXJlbnQsICRzdGF0ZSkge1xuICAjeyRwYXJlbnR9IHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstZm9ybS12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGNvbG9yLCAkaWNvbiwgJGljb24tcnRsKSB7XG4gIC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1zaXplOiAkZm9ybS1mZWVkYmFjay1mb250LXNpemU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tdGV4dC1tYXJnaW4tdG9wO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1heC13aWR0aDogMTAwJTsgLy8gQ29udGFpbiB0byBwYXJlbnQgd2hlbiBwb3NzaWJsZVxuICAgIHBhZGRpbmc6ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtcGFkZGluZy15ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtcGFkZGluZy14O1xuICAgIG1hcmdpbi10b3A6IC4xcmVtO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yLCAkZm9ybS1mZWVkYmFjay10b29sdGlwLW9wYWNpdHkpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5mb3JtLWNvbnRyb2wsIC5jdXN0b20tc2VsZWN0LCAuZm9ybS1jb250cm9sLWZpbGUsIC5jdXN0b20tY29udHJvbC1pbnB1dCcsICRzdGF0ZSkge1xuICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sLCAuY3VzdG9tLXNlbGVjdCcsICRzdGF0ZSkge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1jb250cm9sW2NsYXNzXSAuY3VzdG9tLWNvbnRyb2wtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICY6YWN0aXZlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoIHJnYmEoJGNvbG9yLCAuNCk7XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICAmOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYmcsICdfQ09MT1JfJywgeWlxKCRjb2xvcikpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHN0ci1yZXBsYWNlKHN0ci1yZXBsYWNlKCRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWJnLCAnX0NPTE9SXycsIHlpcSgkY29sb3IpKSwgXCIjXCIsIFwiJTIzXCIpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLWZpbGUtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGlvbiBpY29uc1xuICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAvLyBJbnB1dHNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sJywgJHN0YXRlKSB7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcblxuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGljb247XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGljb24tcnRsO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyfSAvIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sLXNtJywgJHN0YXRlKSB7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5wdXQtaGVpZ2h0LWlubmVyLXNtO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItc219IC8gNCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbnB1dC1oZWlnaHQtaW5uZXItc207XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLXNtfSAvIDQpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sLWxnJywgJHN0YXRlKSB7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5wdXQtaGVpZ2h0LWlubmVyLWxnO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItbGd9IC8gMi41KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LWhlaWdodC1pbm5lci1sZztcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGxlZnQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItbGd9IC8gMi41KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZXh0YXJlYXNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wnLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSByaWdodCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyfSAvIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wtc20nLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KSByaWdodCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KSBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLXNtfSAvIDQpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wtbGcnLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1sZ30gLyAyLjUpIHJpZ2h0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItbGd9IC8gMi41KSBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3VzdG9tIHNlbGVjdHNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLXNlbGVjdFtzaXplPVwiMVwiXSwgLmN1c3RvbS1zZWxlY3Q6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pJywgJHN0YXRlKSB7XG4gICAgICAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldDogKCgkaW5wdXQtaGVpZ2h0LWlubmVyIC0gJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14KSAvIDMpICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tc2VsZWN0LWluZGljYXRvciwgJGljb247XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCBjZW50ZXIsIHJpZ2h0ICRmb3JtLWZlZWRiYWNrLWljb24tb2Zmc2V0IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcnRsLCAkaWNvbi1ydGw7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14IGNlbnRlciwgbGVmdCAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldCBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tc2VsZWN0LXNtW3NpemU9XCIxXCJdLCAuY3VzdG9tLXNlbGVjdC1zbTpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSknLCAkc3RhdGUpIHtcbiAgICAgICRmb3JtLWZlZWRiYWNrLWljb24tb2Zmc2V0OiAoKCRpbnB1dC1oZWlnaHQtaW5uZXItc20gLSAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXgpIC8gNCkgKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZztcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1zbTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LXNtIGNlbnRlciwgcmlnaHQgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQgY2VudGVyO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctc207XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LXNtIGNlbnRlciwgbGVmdCAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldCBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tc2VsZWN0LWxnW3NpemU9XCIxXCJdLCAuY3VzdG9tLXNlbGVjdC1sZzpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSknLCAkc3RhdGUpIHtcbiAgICAgICRmb3JtLWZlZWRiYWNrLWljb24tb2Zmc2V0OiAoKCRpbnB1dC1oZWlnaHQtaW5uZXItbGcgLSAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXgpIC8gMikgKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZztcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1sZztcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LWxnIGNlbnRlciwgcmlnaHQgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQgY2VudGVyO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctbGc7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LWxnIGNlbnRlciwgbGVmdCAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldCBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWZvcm0tdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRjb2xvciwgJGljb24sICRpY29uLXJ0bCkge1xuICAuI3skc3RhdGV9LWZlZWRiYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tZmVlZGJhY2stZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLXRleHQtbWFyZ2luLXRvcDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBmb250LXNpemU6ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sLCAuY3VzdG9tLXNlbGVjdCwgLmZvcm0tY29udHJvbC1maWxlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbCwgLmN1c3RvbS1zZWxlY3QnLCAkc3RhdGUpIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tY29udHJvbFtjbGFzc10gLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICB+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICY6YWN0aXZlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAuMTUpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tY2hlY2tib3hbY2xhc3NdIC5jdXN0b20tY29udHJvbC1pbnB1dCcsICRzdGF0ZSkge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1iZywgJ19DT0xPUl8nLCB5aXEoJGNvbG9yKSksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1yYWRpb1tjbGFzc10gLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHN0ci1yZXBsYWNlKHN0ci1yZXBsYWNlKCRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWJnLCAnX0NPTE9SXycsICRjb2xvciksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1maWxlLWlucHV0JywgJHN0YXRlKSB7XG4gICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGlvbiBpY29uc1xuICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAvLyBJbnB1dHNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sJywgJHN0YXRlKSB7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcblxuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGljb247XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGljb24tcnRsO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRleHRhcmVhc1xuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJ3RleHRhcmVhLmZvcm0tY29udHJvbCcsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyfSAvIDMpIHJpZ2h0O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyfSAvIDMpIGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJ3RleHRhcmVhLmZvcm0tY29udHJvbC1zbScsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLXNtfSAvIDQpIHJpZ2h0O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLXNtfSAvIDQpIGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJ3RleHRhcmVhLmZvcm0tY29udHJvbC1sZycsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSkgcmlnaHQ7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItbGd9IC8gMi41KSBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEN1c3RvbSBzZWxlY3RzXG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1zZWxlY3Rbc2l6ZT1cIjFcIl0sIC5jdXN0b20tc2VsZWN0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKScsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3IsICRpY29uO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXIsIHJpZ2h0IDFyZW0gY2VudGVyO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1ydGwsICRpY29uLXJ0bDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXIsIGxlZnQgMXJlbSBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWN1c3RvbS1maWxlLWlucHV0LXRoZW1lKCRjb2xvcikge1xuICAuY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1tYXRlcmlhbC1jdXN0b20tZmlsZS1pbnB1dC10aGVtZSgkY29sb3IpIHtcbiAgLmN1c3RvbS1maWxlLWlucHV0OmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAtMXB4IDAgMCAkY29sb3IgaW5zZXQ7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtZm9ybS1jb250cm9sLXNpemUoJHNpemUsICRwYWRkaW5nLXkpIHtcbiAgQGlmICRzaXplID09ICcnIHtcbiAgICAuZm9ybS1jb250cm9sLFxuICAgIC5jdXN0b20tc2VsZWN0LFxuICAgIC5jdXN0b20tZmlsZS1sYWJlbCxcbiAgICAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRwYWRkaW5nLXl9IC0gMXB4KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC5mb3JtLWNvbnRyb2wtI3skc2l6ZX0sXG4gICAgLmN1c3RvbS1zZWxlY3QtI3skc2l6ZX0sXG4gICAgLmlucHV0LWdyb3VwLSN7JHNpemV9ID4gLmZvcm0tY29udHJvbCxcbiAgICAuaW5wdXQtZ3JvdXAtI3skc2l6ZX0gPiAuY3VzdG9tLXNlbGVjdCxcbiAgICAuaW5wdXQtZ3JvdXAtI3skc2l6ZX0gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRwYWRkaW5nLXl9IC0gMXB4KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstZm9ybS1jb250cm9sLXRoZW1lKCRjb2xvcikge1xuICAuZm9ybS1jb250cm9sOmZvY3VzLFxuICAuY3VzdG9tLXNlbGVjdDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtZm9ybS1jb250cm9sLXRoZW1lKCRjb2xvcikge1xuICAuZm9ybS1jb250cm9sOmZvY3VzLFxuICAuY3VzdG9tLXNlbGVjdDpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgLTFweCAwIDAgJGNvbG9yIGluc2V0O1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU3dpdGNoZXJzXG5cbkBtaXhpbiBhcHB3b3JrLXN3aXRjaGVyLXNpemUtYmFzZSgkd2lkdGgsICRoZWlnaHQsICRmb250LXNpemUsICRkZXNjcmlwdGlvbi1mb250LXNpemUsICRkZXNjcmlwdGlvbi1saW5lLWhlaWdodCwgJGlubmVyLXNwYWNlcjogJHN3aXRjaGVyLWlubmVyLXNwYWNlcikge1xuICBwYWRkaW5nLWxlZnQ6ICR3aWR0aDtcbiAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgZm9udC1zaXplOiAkZGVzY3JpcHRpb24tZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0O1xuXG4gICRsaW5lLWhlaWdodC1jb21wdXRlZDogJGRlc2NyaXB0aW9uLWZvbnQtc2l6ZSAqICRkZXNjcmlwdGlvbi1saW5lLWhlaWdodDtcbiAgJGRlbHRhOiBpZigkbWF0ZXJpYWwtc3R5bGUsIHB4LXRvLXJlbShjZWlsKHJlbS10by1weCgkaGVpZ2h0ICogLjEyNSkpKSwgMCk7XG5cbiAgLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQgLSAoJGRlbHRhICogMik7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gICAgQGlmICRsaW5lLWhlaWdodC1jb21wdXRlZCA+ICRoZWlnaHQge1xuICAgICAgdG9wOiAoKCRsaW5lLWhlaWdodC1jb21wdXRlZCAtICRoZWlnaHQpIC8gMikgKyAkZGVsdGE7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0b3A6IDAgKyAkZGVsdGE7XG4gICAgfVxuICB9XG5cbiAgLnN3aXRjaGVyLWxhYmVsIHtcbiAgICBAaWYgJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDwgJGhlaWdodCB7XG4gICAgICB0b3A6ICgkaGVpZ2h0IC0gJGxpbmUtaGVpZ2h0LWNvbXB1dGVkKSAvIDI7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLnN3aXRjaGVyLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoZXItaW5kaWNhdG9yOjphZnRlciB7XG4gICAgbGVmdDogJHdpZHRoIC0gJGhlaWdodDtcbiAgfVxuXG4gIC5zd2l0Y2hlci1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgICB0b3A6ICRkZWx0YSAqIC0xO1xuICAgIG1hcmdpbjogJGlubmVyLXNwYWNlciAwIDAgJGlubmVyLXNwYWNlcjtcbiAgICB3aWR0aDogJGhlaWdodCAtICRpbm5lci1zcGFjZXIgKiAyO1xuICAgIGhlaWdodDogJGhlaWdodCAtICRpbm5lci1zcGFjZXIgKiAyO1xuICB9XG5cbiAgLnN3aXRjaGVyLW5vIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkaW5uZXItc3BhY2VyO1xuICAgIHBhZGRpbmctbGVmdDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gIH1cblxuICAuc3dpdGNoZXIteWVzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkaGVpZ2h0IC0gJGlubmVyLXNwYWNlcjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRpbm5lci1zcGFjZXI7XG4gIH1cblxuICBAaWYgJG1hdGVyaWFsLXN0eWxlIHtcbiAgICAuc3dpdGNoZXItaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgICAgdG9wOiAkZGVsdGEgKiAtMTtcbiAgICAgIHdpZHRoOiAkaGVpZ2h0O1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cblxuICAgIC5zd2l0Y2hlci1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6ICR3aWR0aCAtICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRydGwtc3VwcG9ydCB7XG4gICAgW2Rpcj1ydGxdICYgLnN3aXRjaGVyLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoZXItaW5kaWNhdG9yOjphZnRlciB7XG4gICAgICByaWdodDogJHdpZHRoIC0gJGhlaWdodDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgW2Rpcj1ydGxdICYgLnN3aXRjaGVyLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkaW5uZXItc3BhY2VyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgW2Rpcj1ydGxdICYgLnN3aXRjaGVyLW5vIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyO1xuICAgICAgcGFkZGluZy1sZWZ0OiAkaW5uZXItc3BhY2VyO1xuICAgIH1cblxuICAgIFtkaXI9cnRsXSAmIC5zd2l0Y2hlci15ZXMge1xuICAgICAgcGFkZGluZy1yaWdodDogJGlubmVyLXNwYWNlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gICAgfVxuXG4gICAgQGlmICRtYXRlcmlhbC1zdHlsZSB7XG4gICAgICBbZGlyPXJ0bF0gJiAuc3dpdGNoZXItaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2hlci1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgICAgIHJpZ2h0OiAkd2lkdGggLSAkaGVpZ2h0O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1zd2l0Y2hlci1zaXplKCRzaXplLCAkd2lkdGgsICRoZWlnaHQsICRmb250LXNpemUsICRkZXNjcmlwdGlvbi1mb250LXNpemUsICRkZXNjcmlwdGlvbi1saW5lLWhlaWdodCwgJGlubmVyLXNwYWNlcjogJHN3aXRjaGVyLWlubmVyLXNwYWNlcikge1xuICAuc3dpdGNoZXItI3skc2l6ZX0sXG4gIC5mb3JtLWdyb3VwLSN7JHNpemV9IC5zd2l0Y2hlciB7XG4gICAgQGluY2x1ZGUgYXBwd29yay1zd2l0Y2hlci1zaXplLWJhc2UoJHdpZHRoLCAkaGVpZ2h0LCAkZm9udC1zaXplLCAkZGVzY3JpcHRpb24tZm9udC1zaXplLCAkZGVzY3JpcHRpb24tbGluZS1oZWlnaHQsICRpbm5lci1zcGFjZXIpO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLXN3aXRjaGVyLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkc2VsZWN0b3I6IGlmKCRwYXJlbnQgPT0gJycsICcnLCAnI3skcGFyZW50fS5zd2l0Y2hlcicpO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAjeyRzZWxlY3Rvcn0gLnN3aXRjaGVyLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoZXItaW5kaWNhdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IC5zd2l0Y2hlci1pbnB1dDpmb2N1cyB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgIGJveC1zaGFkb3c6IDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoIHJnYmEoJGJhY2tncm91bmQsIC40KTtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSAuc3dpdGNoZXItaW5wdXQ6YWN0aXZlIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1zd2l0Y2hlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstc3dpdGNoZXItdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLXN3aXRjaGVyLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQpIHtcbiAgJHNlbGVjdG9yOiBpZigkcGFyZW50ID09ICcnLCAnJywgJyN7JHBhcmVudH0uc3dpdGNoZXInKTtcblxuICAjeyRzZWxlY3Rvcn0gLnN3aXRjaGVyLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoZXItaW5kaWNhdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRiYWNrZ3JvdW5kLCAuNSk7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmFja2dyb3VuZCwgLjE1KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtc3dpdGNoZXItdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1zd2l0Y2hlci12YXJpYW50KCcnLCAkYmFja2dyb3VuZCk7XG59XG5cbkBtaXhpbiBhcHB3b3JrLXN3aXRjaGVyLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IpIHtcbiAgLnN3aXRjaGVyLWlucHV0W2NsYXNzXSB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgJjpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IHlpcSgkY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoIHJnYmEoJGNvbG9yLCAuNCk7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIH4gLnN3aXRjaGVyLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtc3dpdGNoZXItdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRjb2xvcikge1xuICAuc3dpdGNoZXItaW5wdXRbY2xhc3NdIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICB+IC5zd2l0Y2hlci1pbmRpY2F0b3JbY2xhc3NdIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAuMTUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIH4gLnN3aXRjaGVyLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBUYWJsZXNcblxuQG1peGluIHRhYmxlLXJvdy12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRib3JkZXI6IG51bGwpIHt9XG5cbkBtaXhpbiBhcHB3b3JrLXRhYmxlLXJvdy12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kKSB7XG4gICRiZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjEpLCAjZmZmKTtcbiAgJGNvbG9yOiB5aXEoJGJnKTtcbiAgJGhvdmVyLWJnOiByZ2JhLXRvLWhleChyZ2JhKCRiZywgLjk5KSwgIzAwMCk7XG5cbiAgLnRhYmxlICN7JHBhcmVudH0sXG4gIC50YWJsZSAjeyRwYXJlbnR9ID4gdGgsXG4gIC50YWJsZSAjeyRwYXJlbnR9ID4gdGQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMDM1KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLnRhYmxlLWhvdmVyICN7JHBhcmVudH06aG92ZXIsXG4gIC50YWJsZS1ob3ZlciAjeyRwYXJlbnR9OmhvdmVyID4gdGQsXG4gIC50YWJsZS1ob3ZlciAjeyRwYXJlbnR9OmhvdmVyID4gdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZztcbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIE5hdmJhclxuXG5AbWl4aW4gYXBwd29yay1uYXZiYXItdmFyaWFudCgkcGFyZW50LCAkYmcsICRjb2xvcjogbnVsbCwgJGFjdGl2ZS1jb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkY29sb3JzOiBnZXQtbmF2LWNvbG9ycygkYmcsICRhY3RpdmUtY29sb3IsICRjb2xvciwgJGJvcmRlcik7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBiZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAubmF2YmFyLWJyYW5kIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2YmFyLW5hdiB7XG4gICAgICAubmF2LWxpbmsge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkaXNhYmxlZC1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2hvdyA+IC5uYXYtbGluayxcbiAgICAgIC5hY3RpdmUgPiAubmF2LWxpbmssXG4gICAgICAubmF2LWxpbmsuc2hvdyxcbiAgICAgIC5uYXYtbGluay5hY3RpdmUge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICB9XG5cbiAgICAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpZihtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcikgPT0gI2ZmZiwgJG5hdmJhci1kYXJrLXRvZ2dsZXItaWNvbi1iZywgJG5hdmJhci1saWdodC10b2dnbGVyLWljb24tYmcpO1xuICAgIH1cblxuICAgIC5uYXZiYXItdGV4dCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlcik7XG4gICAgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU2lkZW5hdlxuXG5AbWl4aW4gYXBwd29yay1zaWRlbmF2LXZhcmlhbnQoJHBhcmVudCwgJGJnLCAkY29sb3I6IG51bGwsICRhY3RpdmUtY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwsICRtZW51LWJnOiBudWxsKSB7XG4gICRjb2xvcnM6IGdldC1uYXYtY29sb3JzKCRiZywgJGFjdGl2ZS1jb2xvciwgJGNvbG9yLCAkYm9yZGVyKTtcbiAgJHlpcS1wZXJjZW50OiBtYXAtZ2V0KCRjb2xvcnMsIHlpcS1wZXJjZW50KTtcblxuICBAaWYgbm90ICRtZW51LWJnIHtcbiAgICAkbWVudS1iZzogcmdiYS10by1oZXgocmdiYShtYXAtZ2V0KCRjb2xvcnMsIGJnKSwgMSAtIGlmKCR5aXEtcGVyY2VudCA+IC43NSwgLjAyNSwgLjA1KSksIGlmKCR5aXEtcGVyY2VudCA8IC4yNSwgI2ZmZiwgIzAwMCkpO1xuICB9XG5cbiAgJG1lbnUtYWN0aXZlLWJnOiByZ2JhLXRvLWhleChyZ2JhKCRtZW51LWJnLCAxIC0gaWYoJHlpcS1wZXJjZW50ID4gLjc1LCAuMDI1LCAuMDUpKSwgaWYoJHlpcS1wZXJjZW50IDwgLjI1LCAjZmZmLCAjMDAwKSk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBiZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAuc2lkZW5hdi1saW5rLFxuICAgIC5zaWRlbmF2LWhvcml6b250YWwtcHJldixcbiAgICAuc2lkZW5hdi1ob3Jpem9udGFsLW5leHQge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pdGVtLmRpc2FibGVkIC5zaWRlbmF2LWxpbmssXG4gICAgLnNpZGVuYXYtaG9yaXpvbnRhbC1wcmV2LmRpc2FibGVkLFxuICAgIC5zaWRlbmF2LWhvcml6b250YWwtbmV4dC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkaXNhYmxlZC1jb2xvcikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pdGVtLm9wZW46bm90KC5zaWRlbmF2LWl0ZW0tY2xvc2luZykgPiAuc2lkZW5hdi10b2dnbGUsXG4gICAgLnNpZGVuYXYtaXRlbS5hY3RpdmUgPiAuc2lkZW5hdi1saW5rIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaXRlbS5hY3RpdmUgPiAuc2lkZW5hdi1saW5rOm5vdCguc2lkZW5hdi10b2dnbGUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LWJnO1xuICAgIH1cblxuICAgICYuc2lkZW5hdi1ob3Jpem9udGFsIC5zaWRlbmF2LW1lbnUgPiAuc2lkZW5hdi1pdGVtLmFjdGl2ZSA+IC5zaWRlbmF2LWxpbms6bm90KC5zaWRlbmF2LXRvZ2dsZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtYWN0aXZlLWJnO1xuICAgIH1cblxuICAgICYuc2lkZW5hdi1ob3Jpem9udGFsIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbTpub3QoLnNpZGVuYXYtaXRlbS1jbG9zaW5nKSA+IC5zaWRlbmF2LW1lbnUsXG4gICAgJi5zaWRlbmF2LWhvcml6b250YWwgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1pdGVtLm9wZW4gPiAuc2lkZW5hdi10b2dnbGUge1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1pdGVtLnNpZGVuYXYtaXRlbS1jbG9zaW5nIC5zaWRlbmF2LWl0ZW0ub3BlbiAuc2lkZW5hdi1tZW51LFxuICAgIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5zaWRlbmF2LWl0ZW0tY2xvc2luZyAuc2lkZW5hdi1pdGVtLm9wZW4gLnNpZGVuYXYtdG9nZ2xlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuICAgIH1cblxuICAgIC5zaWRlbmF2LXRleHQge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1oZWFkZXIge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgbXV0ZWQtY29sb3IpO1xuICAgIH1cblxuICAgIGhyLFxuICAgIC5zaWRlbmF2LWRpdmlkZXIsXG4gICAgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1pdGVtLm9wZW4gPiAuc2lkZW5hdi1tZW51OjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlcikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWhlYWRlcjo6YmVmb3JlLFxuICAgIC5zaWRlbmF2LWJsb2NrOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgIH1cblxuICAgIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5vcGVuIC5zaWRlbmF2LWl0ZW0ub3BlbiA+IC5zaWRlbmF2LXRvZ2dsZTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEtdG8taGV4KG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKSwgJG1lbnUtYmcpO1xuICAgIH1cblxuICAgIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5vcGVuIC5zaWRlbmF2LWl0ZW0uYWN0aXZlID4gLnNpZGVuYXYtbGluazo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW0ub3BlbiAuc2lkZW5hdi1pdGVtLm9wZW4gPiAuc2lkZW5hdi10b2dnbGU6OmJlZm9yZSxcbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW0ub3BlbiAuc2lkZW5hdi1pdGVtLmFjdGl2ZSA+IC5zaWRlbmF2LWxpbms6OmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJG1lbnUtYmc7XG4gICAgfVxuXG4gICAgLnBzX190aHVtYi15LFxuICAgIC5wc19fcmFpbC15LnBzLS1jbGlja2luZyA+IC5wc19fdGh1bWIteSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKSwgaWYoJHlpcS1wZXJjZW50ID4gLjc1LCBtYXAtZ2V0KCRjb2xvcnMsIG9wYWNpdHkpIC0gLjQsIG1hcC1nZXQoJGNvbG9ycywgb3BhY2l0eSkgLSAuMikpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogRm9vdGVyXG5cbkBtaXhpbiBhcHB3b3JrLWZvb3Rlci12YXJpYW50KCRwYXJlbnQsICRiZywgJGNvbG9yOiBudWxsLCAkYWN0aXZlLWNvbG9yOiBudWxsLCAkYm9yZGVyOiBudWxsKSB7XG4gICRjb2xvcnM6IGdldC1uYXYtY29sb3JzKCRiZywgJGFjdGl2ZS1jb2xvciwgJGNvbG9yLCAkYm9yZGVyKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJnKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcblxuICAgIC5mb290ZXItbGluayB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgIH1cblxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGRpc2FibGVkLWNvbG9yKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mb290ZXItdGV4dCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIC5zaG93ID4gLmZvb3Rlci1saW5rLFxuICAgIC5hY3RpdmUgPiAuZm9vdGVyLWxpbmssXG4gICAgLmZvb3Rlci1saW5rLnNob3csXG4gICAgLmZvb3Rlci1saW5rLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIGhyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay10b2FzdC12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgI3skcGFyZW50fS5iczQtdG9hc3Qge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgLjkpICFpbXBvcnRhbnQ7XG5cbiAgICAudG9hc3QtaGVhZGVyIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgLjEpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay10b2FzdC10aGVtZSgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstdG9hc3QtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZW1lIG1peGluXG5cbkBtaXhpbiBhcHB3b3JrLWNvbW1vbi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudCgnLnRleHQtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIGh0bWw6bm90KFtkaXI9cnRsXSkgLmJvcmRlci1wcmltYXJ5LCBodG1sW2Rpcj1ydGxdIC5ib3JkZXItcHJpbWFyeSB7IGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICBAaW5jbHVkZSBhcHB3b3JrLWJhZGdlLXZhcmlhbnQoJy5iYWRnZS1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstYmFkZ2Utb3V0bGluZS12YXJpYW50KCcuYmFkZ2Utb3V0bGluZS1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXBhZ2luYXRpb24tdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstcHJvZ3Jlc3MtYmFyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWxpc3QtZ3JvdXAtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstYWxlcnQtdmFyaWFudCgnLmFsZXJ0LXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstYWxlcnQtZGFyay12YXJpYW50KCcuYWxlcnQtZGFyay1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdG9vbHRpcC12YXJpYW50KCcudG9vbHRpcC1wcmltYXJ5LCAudG9vbHRpcC1wcmltYXJ5ID4gLnRvb2x0aXAsIC5uZ2ItdG9vbHRpcC1wcmltYXJ5ICsgbmdiLXRvb2x0aXAtd2luZG93JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstcG9wb3Zlci12YXJpYW50KCcucG9wb3Zlci1wcmltYXJ5LCAucG9wb3Zlci1wcmltYXJ5ID4gLnBvcG92ZXIsIC5uZ2ItcG9wb3Zlci1wcmltYXJ5ICsgbmdiLXBvcG92ZXItd2luZG93JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdGFibGUtcm93LXZhcmlhbnQoJy50YWJsZS1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWJ1dHRvbi12YXJpYW50KCcuYnRuLXByaW1hcnknLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1idXR0b24tb3V0bGluZS12YXJpYW50KCcuYnRuLW91dGxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWRyb3Bkb3duLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW5hdi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1jdXN0b20tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1jdXN0b20tZmlsZS1pbnB1dC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstZm9ybS1jb250cm9sLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1zd2l0Y2hlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1uYXZiYXItdmFyaWFudCgnLm5hdmJhci5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXNpZGVuYXYtdmFyaWFudCgnLnNpZGVuYXYuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1mb290ZXItdmFyaWFudCgnLmZvb3Rlci5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRvYXN0LXRoZW1lKCcuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yLCAkY29sb3IpO1xuICAuZmlsbC1wcmltYXJ5IHsgZmlsbDogJGJhY2tncm91bmQgfVxufVxuXG5AbWl4aW4gYXBwd29yay1jb21tb24tbWF0ZXJpYWwtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJy50ZXh0LXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGJnLXZhcmlhbnQoJy5iZy1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBodG1sOm5vdChbZGlyPXJ0bF0pIC5ib3JkZXItcHJpbWFyeSwgaHRtbFtkaXI9cnRsXSAuYm9yZGVyLXByaW1hcnkgeyBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7IH1cbiAgQGluY2x1ZGUgYXBwd29yay1iYWRnZS12YXJpYW50KCcuYmFkZ2UtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWJhZGdlLW91dGxpbmUtdmFyaWFudCgnLmJhZGdlLW91dGxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1wYWdpbmF0aW9uLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXByb2dyZXNzLWJhci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1saXN0LWdyb3VwLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWFsZXJ0LXZhcmlhbnQoJy5hbGVydC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWFsZXJ0LWRhcmstdmFyaWFudCgnLmFsZXJ0LWRhcmstcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRvb2x0aXAtdmFyaWFudCgnLnRvb2x0aXAtcHJpbWFyeSwgLnRvb2x0aXAtcHJpbWFyeSA+IC50b29sdGlwLCAubmdiLXRvb2x0aXAtcHJpbWFyeSArIG5nYi10b29sdGlwLXdpbmRvdycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXBvcG92ZXItdmFyaWFudCgnLnBvcG92ZXItcHJpbWFyeSwgLnBvcG92ZXItcHJpbWFyeSA+IC5wb3BvdmVyLCAubmdiLXBvcG92ZXItcHJpbWFyeSArIG5nYi1wb3BvdmVyLXdpbmRvdycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRhYmxlLXJvdy12YXJpYW50KCcudGFibGUtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1idXR0b24tdmFyaWFudCgnLmJ0bi1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtYnV0dG9uLW91dGxpbmUtdmFyaWFudCgnLmJ0bi1vdXRsaW5lLXByaW1hcnknLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1kcm9wZG93bi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1uYXYtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWNvbnRyb2wtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWZpbGUtaW5wdXQtdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW1hdGVyaWFsLWZvcm0tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtc3dpdGNoZXItdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW5hdmJhci12YXJpYW50KCcubmF2YmFyLmJnLXByaW1hcnknLCAkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstc2lkZW5hdi12YXJpYW50KCcuc2lkZW5hdi5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWZvb3Rlci12YXJpYW50KCcuZm9vdGVyLmJnLXByaW1hcnknLCAkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdG9hc3QtdGhlbWUoJy5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IsICRjb2xvcik7XG4gIC5maWxsLXByaW1hcnkgeyBmaWxsOiAkYmFja2dyb3VuZCB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBJbXBvcnRzXG5cbkBpbXBvcnQgXCIuLi8uLi9saWJzL2Jvb3RzdHJhcC1zbGlkZXIvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9ub3Vpc2xpZGVyL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvc2VsZWN0Mi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9saWJzL2Jvb3RzdHJhcC10YWdzaW5wdXQvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9ib290c3RyYXAtc2VsZWN0L21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvYm9vdHN0cmFwLWRhdGVwaWNrZXIvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9mbGF0cGlja3IvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9ib290c3RyYXAtZGF0ZXJhbmdlcGlja2VyL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvYm9vdHN0cmFwLW1hdGVyaWFsLWRhdGV0aW1lcGlja2VyL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvdGltZXBpY2tlci9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9saWJzL2dyb3dsL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvYm9vdHN0cmFwLW1hcmtkb3duL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL2xpYnMvcXVpbGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy90eXBlYWhlYWQtanMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9kcm9wem9uZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9saWJzL3N3aXBlci9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9saWJzL3NwaW5raXQvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9zbWFydHdpemFyZC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9saWJzL3BseXIvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9mdWxsY2FsZW5kYXIvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vbGlicy9zd2VldGFsZXJ0Mi9taXhpbnNcIjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlbWUgbWl4aW5cblxuQG1peGluIGFwcHdvcmstbGlicy10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGJzLXNsaWRlci10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIG5vdWlzbGlkZXItdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBzZWxlY3QyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBicy10YWdzaW5wdXQtdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBicy1zZWxlY3QtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGJzLWRhdGVwaWNrZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGZsYXRwaWNrci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYnMtZGF0ZXJhbmdlcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBicy1tYXRlcmlhbC1kYXRldGltZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgdGltZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgZ3Jvd2wtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGJzLW1hcmtkb3duLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgcXVpbGwtdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSB0eXBlYWhlYWQtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGRyb3B6b25lLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgc3dpcGVyLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgc3BpbmtpdC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHNtYXJ0d2l6YXJkLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgcGx5ci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgZnVsbGNhbGVuZGFyLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgc3dlZXRhbGVydDItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBhcHB3b3JrLWxpYnMtbWF0ZXJpYWwtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBtYXRlcmlhbC1icy1zbGlkZXItdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBtYXRlcmlhbC1ub3Vpc2xpZGVyLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgbWF0ZXJpYWwtc2VsZWN0Mi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWF0ZXJpYWwtYnMtdGFnc2lucHV0LXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYnMtc2VsZWN0LXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBicy1kYXRlcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBmbGF0cGlja3ItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGJzLWRhdGVyYW5nZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYnMtbWF0ZXJpYWwtZGF0ZXRpbWVwaWNrZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRpbWVwaWNrZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGdyb3dsLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBicy1tYXJrZG93bi10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHF1aWxsLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgdHlwZWFoZWFkLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBkcm9wem9uZS10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHN3aXBlci10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHNwaW5raXQtdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBzbWFydHdpemFyZC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHBseXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGZ1bGxjYWxlbmRhci10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHN3ZWV0YWxlcnQyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xufVxuIiwiQG1peGluIGJzLXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKSB7XG4gIC5zbGlkZXItc2VsZWN0aW9uLFxuICAuc2xpZGVyLXJldmVyc2VkIC5zbGlkZXItdHJhY2staGlnaCxcbiAgJi5zbGlkZXItcmV2ZXJzZWQgLnNsaWRlci10cmFjay1oaWdoIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYnMtc2xpZGVyLXZhcmlhbnQoJGJhY2tncm91bmQpIHtcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlLFxuICAuc2xpZGVyLXNlbGVjdGlvbixcbiAgLnNsaWRlci1yZXZlcnNlZCAuc2xpZGVyLXRyYWNrLWhpZ2gsXG4gICYuc2xpZGVyLXJldmVyc2VkIC5zbGlkZXItdHJhY2staGlnaCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIGJzLXNsaWRlci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuc2xpZGVyLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIGJzLXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYnMtc2xpZGVyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC5zbGlkZXItcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgbWF0ZXJpYWwtYnMtc2xpZGVyLXZhcmlhbnQoJGJhY2tncm91bmQpO1xuICB9XG59XG4iLCJAbWl4aW4gbm91aXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKSB7XG4gIC5ub1VpLWNvbm5lY3QgeyBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDsgfVxufVxuXG5AbWl4aW4gbWF0ZXJpYWwtbm91aXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKSB7XG4gIC5ub1VpLWNvbm5lY3QgeyBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDsgfVxufVxuXG5AbWl4aW4gbm91aXNsaWRlci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAubm9VaS1wcmltYXJ5IC5ub1VpLWJhc2Uge1xuICAgIC5ub1VpLWNvbm5lY3QgeyBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuQG1peGluIG1hdGVyaWFsLW5vdWlzbGlkZXItdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgLm5vVWktcHJpbWFyeSAubm9VaS1iYXNlIHtcbiAgICAubm9VaS1oYW5kbGUge1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubm9VaS1jb25uZWN0IHsgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gc2VsZWN0Mi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2Uge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIHNlbGVjdDItdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRib3JkZXIpIHtcbiAgLmlzLSN7JHN0YXRlfSAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLFxuICAuaXMtI3skc3RhdGV9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbiAge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gc2VsZWN0Mi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5kZWZhdWx0LXN0eWxlIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZFthcmlhLXNlbGVjdGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzIC5zZWxlY3QyLXNlbGVjdGlvbixcbiAgICAmLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLXNlbGVjdGlvbiB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmRlZmF1bHQtc3R5bGUgLnNlbGVjdDItcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgc2VsZWN0Mi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1zZWxlY3QyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgLm1hdGVyaWFsLXN0eWxlIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZFthcmlhLXNlbGVjdGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzOm5vdCguc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkKSAuc2VsZWN0Mi1zZWxlY3Rpb24sXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbjpub3QoLnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCkgLnNlbGVjdDItc2VsZWN0aW9uIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAwIDAgJGJhY2tncm91bmQgaW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAubWF0ZXJpYWwtc3R5bGUgLnNlbGVjdDItcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgc2VsZWN0Mi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICB9XG59XG4iLCJAbWl4aW4gYnMtdGFnc2lucHV0LXRoZW1lKCRib3JkZXIpIHtcbiAgLmJvb3RzdHJhcC10YWdzaW5wdXQuZm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlciAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1icy10YWdzaW5wdXQtdGhlbWUoJGJvcmRlcikge1xuICAuYm9vdHN0cmFwLXRhZ3NpbnB1dC5mb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAtMXB4IDAgMCAkYm9yZGVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGJnLXRhZ3NpbnB1dC12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGJvcmRlcikge1xuICAuaXMtI3skc3RhdGV9LmJvb3RzdHJhcC10YWdzaW5wdXQsXG4gIC5pcy0jeyRzdGF0ZX0gLmJvb3RzdHJhcC10YWdzaW5wdXQge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIGJzLXNlbGVjdC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51LmlubmVyIGFbYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jc3MvX2FwcHdvcmsvZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBicy1kYXRlcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICRyYW5nZS1iZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjE1KSwgI2ZmZik7XG4gICRyYW5nZS1jb2xvcjogeWlxKCRyYW5nZS1iZyk7XG5cbiAgLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQge1xuICAgICYuYWN0aXZlLFxuICAgICYuYWN0aXZlLmhpZ2hsaWdodGVkLFxuICAgICYuYWN0aXZlLnRvZGF5LFxuICAgIHNwYW4uYWN0aXZlLFxuICAgIHNwYW4uYWN0aXZlLmRpc2FibGVkLFxuICAgICYucmFuZ2Utc3RhcnQsXG4gICAgJi5yYW5nZS1lbmQge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnJhbmdlLFxuICAgICYucmFuZ2UuaGlnaGxpZ2h0ZWQsXG4gICAgJi5yYW5nZS50b2RheSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtYmcgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkcmFuZ2UtY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgJi5mb2N1c2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRyYW5nZS1iZywgNiUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkcmFuZ2UtYmcsIC41KSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJHJhbmdlLWNvbG9yLCAuNSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jc3MvX2FwcHdvcmsvZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBmbGF0cGlja3ItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgJGluLXJhbmdlLWJnOiByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuMTUpLCAjZmZmKTtcbiAgJGluLXJhbmdlLWNvbG9yOiB5aXEoJGluLXJhbmdlLWJnKTtcblxuICAuZmxhdHBpY2tyLWNhbGVuZGFyIC5udW1JbnB1dFdyYXBwZXIgc3BhbiB7XG4gICAgJi5hcnJvd1VwOmFmdGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICAmLmFycm93RG93bjphZnRlciB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmZsYXRwaWNrci1tb250aCxcbiAgc3Bhbi5mbGF0cGlja3Itd2Vla2RheSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBmaWxsOiAkY29sb3I7XG4gIH1cblxuICAuZmxhdHBpY2tyLXdlZWtkYXlzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5mbGF0cGlja3ItZGF5IHtcbiAgICAmLnRvZGF5IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5pblJhbmdlLFxuICAgICYucHJldk1vbnRoRGF5LmluUmFuZ2UsXG4gICAgJi5uZXh0TW9udGhEYXkuaW5SYW5nZSxcbiAgICAmLnRvZGF5LmluUmFuZ2UsXG4gICAgJi5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcbiAgICAmLm5leHRNb250aERheS50b2RheS5pblJhbmdlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGluLXJhbmdlLWJnICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkaW4tcmFuZ2UtYmcgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkaW4tcmFuZ2UtY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLFxuICAgICYuc3RhcnRSYW5nZSxcbiAgICAmLmVuZFJhbmdlLFxuICAgICYuc2VsZWN0ZWQuaW5SYW5nZSxcbiAgICAmLnN0YXJ0UmFuZ2UuaW5SYW5nZSxcbiAgICAmLmVuZFJhbmdlLmluUmFuZ2UsXG4gICAgJi5zZWxlY3RlZDpmb2N1cyxcbiAgICAmLnN0YXJ0UmFuZ2U6Zm9jdXMsXG4gICAgJi5lbmRSYW5nZTpmb2N1cyxcbiAgICAmLnNlbGVjdGVkOmhvdmVyLFxuICAgICYuc3RhcnRSYW5nZTpob3ZlcixcbiAgICAmLmVuZFJhbmdlOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQucHJldk1vbnRoRGF5LFxuICAgICYuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksXG4gICAgJi5lbmRSYW5nZS5wcmV2TW9udGhEYXksXG4gICAgJi5zZWxlY3RlZC5uZXh0TW9udGhEYXksXG4gICAgJi5zdGFydFJhbmdlLm5leHRNb250aERheSxcbiAgICAmLmVuZFJhbmdlLm5leHRNb250aERheSxcbiAgICAmLndlZWsuc2VsZWN0ZWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jc3MvX2FwcHdvcmsvZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBicy1kYXRlcmFuZ2VwaWNrZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgJGhpZ2xpZ2h0ZWQtYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC4xNSksICNmZmYpO1xuICAkaGlnbGlnaHRlZC1jb2xvcjogeWlxKCRoaWdsaWdodGVkLWJnKTtcblxuICAuZGF0ZXJhbmdlcGlja2VyIHRkLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZGF0ZXJhbmdlcGlja2VyIHRkLmluLXJhbmdlOm5vdCguc3RhcnQtZGF0ZSk6bm90KC5lbmQtZGF0ZSk6bm90KC5vZmYpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnbGlnaHRlZC1iZyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkaGlnbGlnaHRlZC1jb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmRhdGVyYW5nZXBpY2tlciAuaW5wdXQtbWluaS5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5yYW5nZXMgbGkuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIGJzLW1hdGVyaWFsLWRhdGV0aW1lcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgLmR0cC1kYXRlLFxuICAuZHRwLXRpbWUge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAuZHRwLWNsb3NlID4gYSB7IGNvbG9yOiAkY29sb3I7IH1cblxuICBoZWFkZXIuZHRwLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjg1KSwgJGJhY2tncm91bmQ6ICMwMDApO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICB0YWJsZS5kdHAtcGlja2VyLWRheXMgdHIgPiB0ZCA+IGEuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5kdHAtYWN0dWFsLW1lcmlkaWVuIGEuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmR0cCAueWVhci1waWNrZXItaXRlbSB7XG4gICAgJjpob3ZlciB7IGNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICAgICYuYWN0aXZlIHsgY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gIH1cblxuICAuZHRwIC5zdmctY2xvY2sgW3N0cm9rZT1cIiM4QkMzNEFcIl0geyBzdHJva2U6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmR0cCAuc3ZnLWNsb2NrIFtmaWxsPVwiIzhCQzM0QVwiXSB7IGZpbGw6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmR0cCAuc3ZnLWNsb2NrIFtmaWxsPVwiI2ZmZlwiXSB7IGZpbGw6ICRjb2xvciAhaW1wb3J0YW50OyB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gdGltZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIGxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQsXG4gIC51aS10aW1lcGlja2VyLWxpc3QgLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gZ3Jvd2wtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAuZ3Jvd2wtZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBicy1tYXJrZG93bi10aGVtZSgkYm9yZGVyKSB7XG4gIC5tZC1lZGl0b3IuYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXIgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQG1peGluIHF1aWxsLWdlbmVyYXRlLWxpc3RzKCRpbmRlbnQpIHtcbiAgJHF1aWxsLWxpc3QtdHlwZXM6IChcbiAgICAxOiBsb3dlci1hbHBoYSxcbiAgICAyOiBsb3dlci1yb21hbixcbiAgICAzOiBkZWNpbWFsLFxuICAgIDQ6IGxvd2VyLWFscGhhLFxuICAgIDU6IGxvd2VyLXJvbWFuLFxuICAgIDY6IGRlY2ltYWwsXG4gICAgNzogbG93ZXItYWxwaGEsXG4gICAgODogbG93ZXItcm9tYW4sXG4gICAgOTogZGVjaW1hbFxuICApO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggOSB7XG4gICAgb2wgbGkucWwtaW5kZW50LSN7JGl9IHtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBsaXN0LSN7JGl9O1xuXG4gICAgICBAaWYgJGkgPCA5IHtcbiAgICAgICAgJGxpc3RzOiAnJztcblxuICAgICAgICBAZm9yICRsIGZyb20gJGkgKyAxIHRocm91Z2ggOSB7XG4gICAgICAgICAgJGxpc3RzOiBcIiN7JGxpc3RzfSBsaXN0LSN7JGx9XCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb3VudGVyLXJlc2V0OiAjeyRsaXN0c307XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobGlzdC0jeyRpfSwgbWFwLWdldCgkcXVpbGwtbGlzdC10eXBlcywgJGkpKSAnLiAnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5xbC1pbmRlbnQtI3skaX06bm90KC5xbC1kaXJlY3Rpb24tcnRsKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRpbmRlbnQgKiAkaTtcblxuICAgICAgW2Rpcj1ydGxdICYge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5kZW50ICogJGk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgbGkucWwtaW5kZW50LSN7JGl9Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkaW5kZW50ICogKCRpICsgMSk7XG5cbiAgICAgIFtkaXI9cnRsXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICgkaSArIDEpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5xbC1pbmRlbnQtI3skaX0ucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5kZW50ICogJGk7XG5cbiAgICAgIFtkaXI9cnRsXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5kZW50ICogJGk7XG4gICAgICB9XG4gICAgfVxuICAgIGxpLnFsLWluZGVudC0jeyRpfS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbmRlbnQgKiAoJGkgKyAxKTtcblxuICAgICAgW2Rpcj1ydGxdICYge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbmRlbnQgKiAoJGkgKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHF1aWxsLXRoZW1lKCRjb2xvcikge1xuICAucWwtc25vdy5xbC10b29sYmFyLFxuICAucWwtc25vdyAucWwtdG9vbGJhciB7XG4gICAgYnV0dG9uOmhvdmVyLFxuICAgIGJ1dHRvbjpmb2N1cyxcbiAgICBidXR0b24ucWwtYWN0aXZlLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIsXG4gICAgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUsXG4gICAgLnFsLXBpY2tlci1pdGVtOmhvdmVyLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCB7XG4gICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1maWxsLFxuICAgIGJ1dHRvbjpmb2N1cyAucWwtZmlsbCxcbiAgICBidXR0b24ucWwtYWN0aXZlIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLWZpbGwsXG4gICAgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUgLnFsLWZpbGwsXG4gICAgLnFsLXBpY2tlci1pdGVtOmhvdmVyIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtZmlsbCxcbiAgICBidXR0b246aG92ZXIgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIGJ1dHRvbjpmb2N1cyAucWwtc3Ryb2tlLnFsLWZpbGwsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLnFsLWZpbGwsXG4gICAgLnFsLXBpY2tlci1sYWJlbDpob3ZlciAucWwtc3Ryb2tlLnFsLWZpbGwsXG4gICAgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtc3Ryb2tlLnFsLWZpbGwsXG4gICAgLnFsLXBpY2tlci1pdGVtLnFsLXNlbGVjdGVkIC5xbC1zdHJva2UucWwtZmlsbCB7XG4gICAgICBmaWxsOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBidXR0b246aG92ZXIgLnFsLXN0cm9rZSxcbiAgICBidXR0b246Zm9jdXMgLnFsLXN0cm9rZSxcbiAgICBidXR0b24ucWwtYWN0aXZlIC5xbC1zdHJva2UsXG4gICAgLnFsLXBpY2tlci1sYWJlbDpob3ZlciAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlIC5xbC1zdHJva2UsXG4gICAgLnFsLXBpY2tlci1pdGVtOmhvdmVyIC5xbC1zdHJva2UsXG4gICAgLnFsLXBpY2tlci1pdGVtLnFsLXNlbGVjdGVkIC5xbC1zdHJva2UsXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1zdHJva2UtbWl0ZXIsXG4gICAgYnV0dG9uOmZvY3VzIC5xbC1zdHJva2UtbWl0ZXIsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWxhYmVsLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtc3Ryb2tlLW1pdGVyIHtcbiAgICAgIHN0cm9rZTogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gdHlwZWFoZWFkLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgLnR0LXN1Z2dlc3Rpb246YWN0aXZlLFxuICAudHQtY3Vyc29yIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQG1peGluIGRyb3B6b25lLXRoZW1lKCRib3JkZXIpIHtcbiAgLmRyb3B6b25lLmR6LWRyYWctaG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlciAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAbWl4aW4gc3dpcGVyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSxcbiAgLnN3aXBlci1wYWdpbmF0aW9uLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAbWl4aW4gc3BpbmtpdC10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuc2stcHJpbWFyeS5zay1yb3RhdGluZy1wbGFuZSxcbiAgLnNrLXByaW1hcnkuc2stZG91YmxlLWJvdW5jZSAuc2stY2hpbGQsXG4gIC5zay1wcmltYXJ5LnNrLXdhdmUgLnNrLXJlY3QsXG4gIC5zay1wcmltYXJ5LnNrLXdhbmRlcmluZy1jdWJlcyAuc2stY3ViZSxcbiAgLnNrLXByaW1hcnkuc2stc3Bpbm5lci1wdWxzZSxcbiAgLnNrLXByaW1hcnkuc2stY2hhc2luZy1kb3RzIC5zay1jaGlsZCxcbiAgLnNrLXByaW1hcnkuc2stdGhyZWUtYm91bmNlIC5zay1jaGlsZCxcbiAgLnNrLXByaW1hcnkuc2stY2lyY2xlIC5zay1jaGlsZDpiZWZvcmUsXG4gIC5zay1wcmltYXJ5LnNrLWN1YmUtZ3JpZCAuc2stY3ViZSxcbiAgLnNrLXByaW1hcnkuc2stZmFkaW5nLWNpcmNsZSAuc2stY2lyY2xlOmJlZm9yZSxcbiAgLnNrLXByaW1hcnkuc2stZm9sZGluZy1jdWJlIC5zay1jdWJlOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBzbWFydHdpemFyZC10aGVtZSgkY29sb3IpIHtcbiAgLnN3LXRoZW1lLWRlZmF1bHQgLnN0ZXAtYW5jaG9yID4gbGkuYWN0aXZlID4gYSAuc3ctaWNvbixcbiAgLnN3LXRoZW1lLWRlZmF1bHQgLnN0ZXAtYW5jaG9yID4gbGkuYWN0aXZlID4gYSAuc3ctbnVtYmVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gcGx5ci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5wbHlyIGlucHV0W3R5cGU9J3JhbmdlJ106Oi1tcy1maWxsLWxvd2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBseXIgaW5wdXRbdHlwZT0ncmFuZ2UnXTphY3RpdmUge1xuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyBidXR0b24udGFiLWZvY3VzOmZvY3VzLFxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucGx5ci0tYXVkaW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbi50YWItZm9jdXM6Zm9jdXMsXG4gIC5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbHMgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wbHlyX19wbGF5LWxhcmdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wbHlyX19wcm9ncmVzcy0tcGxheWVkLFxuICAucGx5cl9fdm9sdW1lLS1kaXNwbGF5IHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGZ1bGxjYWxlbmRhci1ldmVudC1iZygkYmFja2dyb3VuZCwgJG9wYWNpdHk6IC4xNSkge1xuICBAcmV0dXJuIHJnYmEoJGJhY2tncm91bmQsICRvcGFjaXR5KTtcbn1cblxuQG1peGluIGZ1bGxjYWxlbmRhci1ldmVudC12YXJpYW50KCRiYWNrZ3JvdW5kKSB7XG4gICYuZmMtZXZlbnQge1xuICAgIGJhY2tncm91bmQ6IGZ1bGxjYWxlbmRhci1ldmVudC1iZygkYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mYy1ldmVudC1kb3Qge1xuICAgIGJhY2tncm91bmQ6IGZ1bGxjYWxlbmRhci1ldmVudC1iZygkYmFja2dyb3VuZCwgLjQpICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZ1bGxjYWxlbmRhci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuZmMtZXZlbnQge1xuICAgIGJhY2tncm91bmQ6IGZ1bGxjYWxlbmRhci1ldmVudC1iZygkYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mYy1ldmVudC1kb3Qge1xuICAgIGJhY2tncm91bmQ6IGZ1bGxjYWxlbmRhci1ldmVudC1iZygkYmFja2dyb3VuZCwgLjQpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmMtaGlnaGxpZ2h0LFxuICAuZmMtYmdldmVudDpub3QoLmZjLW5vbmJ1c2luZXNzKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIHN3ZWV0YWxlcnQyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC1saW5lLFxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAuc3dhbDItYWN0aXZlLXByb2dyZXNzLXN0ZXAgfiAuc3dhbDItcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCB+IC5zd2FsMi1wcm9ncmVzcy1zdGVwLWxpbmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC4yNSkpO1xuICB9XG59XG4iLCJAbWl4aW4gYXBwd29yay11aWtpdC10aGVtZSgkYmFja2dyb3VuZCkge1xuICAudWktcHJvZHVjdC1jb2xvci5hY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjZmZmLCAwIDAgMCA0cHggJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLEFBQUEsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFQUhGLE9BQU8sR0FJaEI7O0FBRUQsQUFBQSxRQUFRLENBQUM7RUFDUCxVQUFVLEVBUEYsT0FBTyxDQU9NLFVBQVUsR0FDaEM7O0FrQlRDLEFBQUEsYUFBYSxDQUFGO0VBQ1QsS0FBSyxFbEJETyxPQUFPLENrQkNMLFVBQVUsR0FDekI7O0FBRUMsQVBPRixDT1BHLEFBQUEsYUFBYSxBUE9mLE1BQU0sRU9QTCxDQUFDLEFBQUEsYUFBYSxBUFFmLE1BQU0sQ0FBQztFT05GLEtBQUssRUFBRSxPQUF3RCxDQUFDLFVBQVUsR1BRL0U7O0E2QjZIRCxBQUFBLFdBQVcsQ0FBQTtFQUFFLGdCQUFnQixFeEMzSWYsT0FBTyxDd0MySWlCLFVBQVUsR0FBSTs7QUFDcEQsQTdCaklBLEM2QmlJQyxBQUFBLFdBQVcsQTdCaklYLE1BQU0sRTZCaUlQLENBQUMsQUFBQSxXQUFXLEE3QmhJWCxNQUFNLENBQUM7RTZCaUlpQixnQkFBZ0IsRXJDVi9CLE9BQW1DLENxQ1VzRCxVQUFVLEc3Qi9INUc7O0E2QjZIRCxBQUFBLGdCQUFnQixDQUFMO0VBQUUsZ0JBQWdCLEVyQ1JuQixPQUFtQyxDcUNRUCxVQUFVLEdBQUk7O0FBQ3BELEE3QmpJQSxDNkJpSUMsQUFBQSxnQkFBZ0IsQTdCakloQixNQUFNLEU2QmlJUCxDQUFDLEFBQUEsZ0JBQWdCLEE3QmhJaEIsTUFBTSxDQUFDO0U2QmlJaUIsZ0JBQWdCLEVyQ1YvQixPQUFtQyxDcUNVc0QsVUFBVSxHN0IvSDVHOztBNkI2SEQsQUFBQSxrQkFBa0IsQ0FBUDtFQUFFLGdCQUFnQixFckNSbkIsT0FBbUMsQ3FDUVAsVUFBVSxHQUFJOztBQUNwRCxBN0JqSUEsQzZCaUlDLEFBQUEsa0JBQWtCLEE3QmpJbEIsTUFBTSxFNkJpSVAsQ0FBQyxBQUFBLGtCQUFrQixBN0JoSWxCLE1BQU0sQ0FBQztFNkJpSWlCLGdCQUFnQixFckNWL0IsT0FBbUMsQ3FDVXNELFVBQVUsRzdCL0g1Rzs7QThCYkQsQUFBQSxJQUFJLEFBQUEsSUFBSyxFQUFBLEFBQUEsR0FBQyxDQUFELEdBQUMsQUFBQSxHQUFVLGVBQWUsRUFBRSxJQUFJLENBQUEsQUFBQSxHQUFDLENBQUQsR0FBQyxBQUFBLEVBQVMsZUFBZSxDQUFDO0VBQUUsWUFBWSxFekNEbkUsT0FBTyxDeUNDMEUsVUFBVSxHQUFJOztBRHdaN0csQUFBQSxjQUFjLENBQUg7RUFDVCxnQkFBZ0IsRXhDMVpKLE9BQU87RXdDMlpuQixLQUFLLEVyQzVQRyxJQUFJLEdxQzZQYjs7QUFFRCxBN0JuWkEsYzZCbVpjLENBQUEsQUFBQSxJQUFDLEFBQUEsQzdCblpkLE1BQU0sRTZCbVpQLGNBQWMsQ0FBQSxBQUFBLElBQUMsQUFBQSxDN0JsWmQsTUFBTSxDQUFDO0U2Qm9aSixnQkFBZ0IsRXJDN1JWLE9BQW1DO0VxQzhSekMsS0FBSyxFckNsUUMsSUFBSTtFcUNtUVYsZUFBZSxFQUFFLElBQUksRzdCcFp4Qjs7QTZCd1pELEFBQUEsSUFBSSxDQUFDLGNBQWMsQ0FBSDtFQUNkLFVBQVUsRXhDdmFFLE9BQU8sQ3dDdWFILFVBQVU7RUFDMUIsWUFBWSxFeEN4YUEsT0FBTyxDd0N3YUQsVUFBVTtFQUM1QixLQUFLLEVyQzFRRyxJQUFJLENxQzBRd0IsVUFBVSxHQUMvQzs7QUFJRCxBQUFBLHNCQUFzQixDQUFYO0VBQ1QsZ0JBQWdCLEVBQUUsV0FBVztFQUM3QixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDeENoYlQsT0FBTyxDd0NnYk8sS0FBSztFQUMvQixLQUFLLEV4Q2piTyxPQUFPLEd3Q2ticEI7O0FBRUQsQTdCemFBLHNCNkJ5YXNCLENBQUEsQUFBQSxJQUFDLEFBQUEsQzdCemF0QixNQUFNLEU2QnlhUCxzQkFBc0IsQ0FBQSxBQUFBLElBQUMsQUFBQSxDN0J4YXRCLE1BQU0sQ0FBQztFNkIwYUosS0FBSyxFeEN0YkssT0FBTztFd0N1YmpCLGVBQWUsRUFBRSxJQUFJLEc3QnpheEI7O0E2QjZhRCxBQUFBLElBQUksQ0FBQyxzQkFBc0IsQ0FBWDtFQUNkLGdCQUFnQixFQUFFLHNCQUFzQjtFQUN4QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDeEM3YlQsT0FBTyxDd0M2Yk8sS0FBSyxDQUFDLFVBQVU7RUFDMUMsS0FBSyxFeEM5Yk8sT0FBTyxDd0M4YkwsVUFBVSxHQUN6Qjs7QUFrR0EsQTdCL2dCRCxVNkIrZ0JXLEFBQUEsT0FBTyxDQUFDLFVBQVUsRUFBNUIsVUFBVSxBQUFBLE9BQU8sQ0FBQyxVQUFVLEE3QjlnQjVCLE1BQU0sRTZCOGdCTixVQUFVLEFBQUEsT0FBTyxDQUFDLFVBQVUsQTdCN2dCNUIsTUFBTTtBNkI4Z0JQLFdBQVcsQ0FBQyxFQUFFLEFBQUEsT0FBTyxHQUFHLENBQUMsQUFBQSxJQUFLLENBQUEsVUFBVTtBQUF4QyxXQUFXLENBQUMsRUFBRSxBQUFBLE9BQU8sR0FBRyxDQUFDLEFBQUEsSUFBSyxDQUFBLFVBQVUsQzdCL2dCdkMsTUFBTTtBNkIrZ0JQLFdBQVcsQ0FBQyxFQUFFLEFBQUEsT0FBTyxHQUFHLENBQUMsQUFBQSxJQUFLLENBQUEsVUFBVSxDN0I5Z0J2QyxNQUFNLENBQUM7RTZCZ2hCSixZQUFZLEV4Q3BpQkYsT0FBTztFd0NxaUJqQixnQkFBZ0IsRXhDcmlCTixPQUFPO0V3Q3NpQmpCLEtBQUssRXJDdllDLElBQUksR1F6SWI7O0E2QjZoQkQsQUFBQSxhQUFhLENBQUM7RUFDWixnQkFBZ0IsRXhDcGpCSixPQUFPO0V3Q3FqQm5CLEtBQUssRXJDdFpHLElBQUksR3FDdVpiOztBQWFELEFBQUEsd0JBQXdCLENBQWI7RUFDVCxZQUFZLEVBQUUsbUJBQWU7RUFDN0IsZ0JBQWdCLEVyQ2xjUixPQUFtQztFcUNtYzNDLEtBQUssRXJDbmNHLE9BQW1DLEdxQ29jNUM7O0FBRUQsQUFBQSxDQUFDLEFBQUEsd0JBQXdCO0FBQ3pCLE1BQU0sQUFBQSx3QkFBd0IsQ0FBYjtFQUNmLEtBQUssRXJDeGNHLE9BQW1DLEdxQ29kNUM7RUFkRCxBN0I5akJBLEM2QjhqQkMsQUFBQSx3QkFBd0IsQTdCOWpCeEIsTUFBTSxFNkI4akJQLENBQUMsQUFBQSx3QkFBd0IsQTdCN2pCeEIsTUFBTTtFNkI4akJQLE1BQU0sQUFBQSx3QkFBd0IsQTdCL2pCN0IsTUFBTTtFNkIrakJQLE1BQU0sQUFBQSx3QkFBd0IsQTdCOWpCN0IsTUFBTSxDQUFDO0k2QmtrQkosZ0JBQWdCLEVyQzNjVixPQUFtQztJcUM0Y3pDLEtBQUssRXJDNWNDLE9BQW1DLEdRckg1QztFNkIyakJELEFBU0UsQ0FURCxBQUFBLHdCQUF3QixBQVN0QixPQUFPO0VBUlYsTUFBTSxBQUFBLHdCQUF3QixBQVEzQixPQUFPLENBQUM7SUFDUCxZQUFZLEV4Q25sQkYsT0FBTztJd0NvbEJqQixnQkFBZ0IsRXhDcGxCTixPQUFPO0l3Q3FsQmpCLEtBQUssRXJDbGRDLE9BQW1DLEdxQ21kMUM7O0FBT0gsQTdCM2tCQSxnQjZCMmtCZ0IsQUFBQSxPQUFPLEVBQXZCLGdCQUFnQixBQUFBLE9BQU8sQTdCMWtCdEIsTUFBTSxFNkIwa0JQLGdCQUFnQixBQUFBLE9BQU8sQTdCemtCdEIsTUFBTSxDQUFDO0U2QjJrQkosWUFBWSxFeEMvbEJGLE9BQU87RXdDZ21CakIsZ0JBQWdCLEV4Q2htQk4sT0FBTztFd0NpbUJqQixLQUFLLEVyQ2xjQyxJQUFJLEdRekliOztBNkIwbEJELEFBQUEsY0FBYyxDQUFIO0VBQ1QsWUFBWSxFckM5ZUosT0FBbUM7RXFDK2UzQyxnQkFBZ0IsRXJDL2VSLE9BQW1DO0VxQ2dmM0MsS0FBSyxFckNoZkcsT0FBbUMsR3FDeWY1QztFQVpELEFBS0UsY0FMWSxDQUtaLEVBQUUsQ0FBQztJQUNELGdCQUFnQixFckNuZlYsT0FBbUMsR3FDb2YxQztFQVBILEFBU0UsY0FUWSxDQVNaLFdBQVcsQ0FBQztJQUNWLEtBQUssRXJDdmZDLE9BQW1DLEdxQ3dmMUM7O0FBT0gsQUFBQSxtQkFBbUIsQ0FBUjtFQUNULGdCQUFnQixFeENub0JKLE9BQU87RXdDb29CbkIsS0FBSyxFckNyZUcsSUFBSSxHcUMrZWI7RUFaRCxBQUlFLG1CQUppQixDQUlqQixFQUFFLENBQUM7SUFDRCxnQkFBZ0IsRXJDeGVWLHdCQUFJLEdxQ3llWDtFQU5ILEFBUUUsbUJBUmlCLENBUWpCLE1BQU07RUFSUixtQkFBbUIsQ0FTakIsV0FBVyxDQUFDO0lBQ1YsS0FBSyxFckM3ZUMsSUFBSSxHcUM4ZVg7O0FBUUgsQUFDRSxnQkFEYyxDQUNkLGNBQWMsRUFERSxnQkFBZ0IsR0FBRyxRQUFRLENBQzNDLGNBQWMsRUFEK0Isb0JBQW9CLEdBQUcsa0JBQWtCLENBQ3RGLGNBQWMsQ0FBQztFQUNiLFVBQVUsRXhDdnBCQSxPQUFPO0V3Q3dwQmpCLEtBQUssRXJDemZDLElBQUksR3FDMGZYOztBQUpILEFBTUUsZ0JBTmMsQUFNYixlQUFlLENBQUMsTUFBTSxBQUFBLFFBQVEsRUFOakMsZ0JBQWdCLEFBTW9CLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLEtBQUssQUFBbEIsRUFBb0IsTUFBTSxBQUFBLFFBQVEsRUFOckUsZ0JBQWdCLEdBQUcsUUFBUSxBQU0xQyxlQUFlLENBQUMsTUFBTSxBQUFBLFFBQVEsRUFOZixnQkFBZ0IsR0FBRyxRQUFRLEFBTVQsZ0JBQWdCLENBQUEsQUFBQSxXQUFDLEVBQWEsS0FBSyxBQUFsQixFQUFvQixNQUFNLEFBQUEsUUFBUSxFQU54QyxvQkFBb0IsR0FBRyxrQkFBa0IsQUFNckYsZUFBZSxDQUFDLE1BQU0sQUFBQSxRQUFRLEVBTmMsb0JBQW9CLEdBQUcsa0JBQWtCLEFBTXBELGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLEtBQUssQUFBbEIsRUFBb0IsTUFBTSxBQUFBLFFBQVEsQ0FBQztFQUFFLGdCQUFnQixFeEMzcEI1RixPQUFPLEd3QzJwQnNHOztBQU4zSCxBQU9FLGdCQVBjLEFBT2IsaUJBQWlCLENBQUMsTUFBTSxBQUFBLFFBQVEsRUFQbkMsZ0JBQWdCLEFBT3NCLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE9BQU8sQUFBcEIsRUFBc0IsTUFBTSxBQUFBLFFBQVEsRUFQekUsZ0JBQWdCLEdBQUcsUUFBUSxBQU8xQyxpQkFBaUIsQ0FBQyxNQUFNLEFBQUEsUUFBUSxFQVBqQixnQkFBZ0IsR0FBRyxRQUFRLEFBT1AsZ0JBQWdCLENBQUEsQUFBQSxXQUFDLEVBQWEsT0FBTyxBQUFwQixFQUFzQixNQUFNLEFBQUEsUUFBUSxFQVA1QyxvQkFBb0IsR0FBRyxrQkFBa0IsQUFPckYsaUJBQWlCLENBQUMsTUFBTSxBQUFBLFFBQVEsRUFQWSxvQkFBb0IsR0FBRyxrQkFBa0IsQUFPbEQsZ0JBQWdCLENBQUEsQUFBQSxXQUFDLEVBQWEsT0FBTyxBQUFwQixFQUFzQixNQUFNLEFBQUEsUUFBUSxDQUFDO0VBQUUsa0JBQWtCLEV4QzVwQmxHLE9BQU8sR3dDNHBCNEc7O0FBUGpJLEFBUUUsZ0JBUmMsQUFRYixrQkFBa0IsQ0FBQyxNQUFNLEFBQUEsUUFBUSxFQVJwQyxnQkFBZ0IsQUFRdUIsZ0JBQWdCLENBQUEsQUFBQSxXQUFDLEVBQWEsUUFBUSxBQUFyQixFQUF1QixNQUFNLEFBQUEsUUFBUSxFQVIzRSxnQkFBZ0IsR0FBRyxRQUFRLEFBUTFDLGtCQUFrQixDQUFDLE1BQU0sQUFBQSxRQUFRLEVBUmxCLGdCQUFnQixHQUFHLFFBQVEsQUFRTixnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxRQUFRLEFBQXJCLEVBQXVCLE1BQU0sQUFBQSxRQUFRLEVBUjlDLG9CQUFvQixHQUFHLGtCQUFrQixBQVFyRixrQkFBa0IsQ0FBQyxNQUFNLEFBQUEsUUFBUSxFQVJXLG9CQUFvQixHQUFHLGtCQUFrQixBQVFqRCxnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxRQUFRLEFBQXJCLEVBQXVCLE1BQU0sQUFBQSxRQUFRLENBQUM7RUFBRSxtQkFBbUIsRXhDN3BCckcsT0FBTyxHd0M2cEIrRzs7QUFScEksQUFTRSxnQkFUYyxBQVNiLGdCQUFnQixDQUFDLE1BQU0sQUFBQSxRQUFRLEVBVGxDLGdCQUFnQixBQVNxQixnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxNQUFNLEFBQW5CLEVBQXFCLE1BQU0sQUFBQSxRQUFRLEVBVHZFLGdCQUFnQixHQUFHLFFBQVEsQUFTMUMsZ0JBQWdCLENBQUMsTUFBTSxBQUFBLFFBQVEsRUFUaEIsZ0JBQWdCLEdBQUcsUUFBUSxBQVNSLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE1BQU0sQUFBbkIsRUFBcUIsTUFBTSxBQUFBLFFBQVEsRUFUMUMsb0JBQW9CLEdBQUcsa0JBQWtCLEFBU3JGLGdCQUFnQixDQUFDLE1BQU0sQUFBQSxRQUFRLEVBVGEsb0JBQW9CLEdBQUcsa0JBQWtCLEFBU25ELGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE1BQU0sQUFBbkIsRUFBcUIsTUFBTSxBQUFBLFFBQVEsQ0FBQztFQUFFLGlCQUFpQixFeEM5cEIvRixPQUFPLEd3QzhwQnlHOztBQVU5SCxBQUFBLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBN0U7RUFDVCxZQUFZLEVBQUUsV0FBVztFQUN6QixVQUFVLEV4QzFxQkUsT0FBTyxHd0M2ckJwQjtFQXJCRCxBQUlFLGdCQUpjLENBSWQsZUFBZSxFQUpDLGdCQUFnQixHQUFHLFFBQVEsQ0FJM0MsZUFBZSxFQUo4QixvQkFBb0IsR0FBRyxrQkFBa0IsQ0FJdEYsZUFBZSxDQUFDO0lBQ2QsWUFBWSxFckM5Z0JOLHdCQUFJO0lxQytnQlYsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFckNoaEJDLElBQUksR3FDaWhCWDtFQVJILEFBVUUsZ0JBVmMsQ0FVZCxhQUFhLEVBVkcsZ0JBQWdCLEdBQUcsUUFBUSxDQVUzQyxhQUFhLEVBVmdDLG9CQUFvQixHQUFHLGtCQUFrQixDQVV0RixhQUFhLENBQUM7SUFDWixVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEVyQ3JoQkMsSUFBSSxHcUNzaEJYO0VBYkgsQUFlRSxnQkFmYyxHQWVaLE1BQU0sQUFBQSxRQUFRLEVBZkEsZ0JBQWdCLEdBQUcsUUFBUSxHQWV6QyxNQUFNLEFBQUEsUUFBUSxFQWY2QixvQkFBb0IsR0FBRyxrQkFBa0IsR0FlcEYsTUFBTSxBQUFBLFFBQVEsQ0FBQztJQUFFLFlBQVksRUFBRSxXQUFXLEdBQUk7RUFmbEQsQUFpQkUsZ0JBakJjLEFBaUJiLGVBQWUsR0FBRyxNQUFNLEFBQUEsT0FBTyxFQWpCbEMsZ0JBQWdCLEFBaUJxQixnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxLQUFLLEFBQWxCLElBQXNCLE1BQU0sQUFBQSxPQUFPLEVBakJ2RSxnQkFBZ0IsR0FBRyxRQUFRLEFBaUIxQyxlQUFlLEdBQUcsTUFBTSxBQUFBLE9BQU8sRUFqQmhCLGdCQUFnQixHQUFHLFFBQVEsQUFpQlIsZ0JBQWdCLENBQUEsQUFBQSxXQUFDLEVBQWEsS0FBSyxBQUFsQixJQUFzQixNQUFNLEFBQUEsT0FBTyxFQWpCMUMsb0JBQW9CLEdBQUcsa0JBQWtCLEFBaUJyRixlQUFlLEdBQUcsTUFBTSxBQUFBLE9BQU8sRUFqQmEsb0JBQW9CLEdBQUcsa0JBQWtCLEFBaUJuRCxnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxLQUFLLEFBQWxCLElBQXNCLE1BQU0sQUFBQSxPQUFPLENBQUM7SUFBRSxnQkFBZ0IsRXhDenJCOUYsT0FBTyxHd0N5ckJ3RztFQWpCN0gsQUFrQkUsZ0JBbEJjLEFBa0JiLGlCQUFpQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBbEJwQyxnQkFBZ0IsQUFrQnVCLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE9BQU8sQUFBcEIsSUFBd0IsTUFBTSxBQUFBLE9BQU8sRUFsQjNFLGdCQUFnQixHQUFHLFFBQVEsQUFrQjFDLGlCQUFpQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBbEJsQixnQkFBZ0IsR0FBRyxRQUFRLEFBa0JOLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE9BQU8sQUFBcEIsSUFBd0IsTUFBTSxBQUFBLE9BQU8sRUFsQjlDLG9CQUFvQixHQUFHLGtCQUFrQixBQWtCckYsaUJBQWlCLEdBQUcsTUFBTSxBQUFBLE9BQU8sRUFsQlcsb0JBQW9CLEdBQUcsa0JBQWtCLEFBa0JqRCxnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxPQUFPLEFBQXBCLElBQXdCLE1BQU0sQUFBQSxPQUFPLENBQUM7SUFBRSxrQkFBa0IsRXhDMXJCcEcsT0FBTyxHd0MwckI4RztFQWxCbkksQUFtQkUsZ0JBbkJjLEFBbUJiLGtCQUFrQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBbkJyQyxnQkFBZ0IsQUFtQndCLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLFFBQVEsQUFBckIsSUFBeUIsTUFBTSxBQUFBLE9BQU8sRUFuQjdFLGdCQUFnQixHQUFHLFFBQVEsQUFtQjFDLGtCQUFrQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBbkJuQixnQkFBZ0IsR0FBRyxRQUFRLEFBbUJMLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLFFBQVEsQUFBckIsSUFBeUIsTUFBTSxBQUFBLE9BQU8sRUFuQmhELG9CQUFvQixHQUFHLGtCQUFrQixBQW1CckYsa0JBQWtCLEdBQUcsTUFBTSxBQUFBLE9BQU8sRUFuQlUsb0JBQW9CLEdBQUcsa0JBQWtCLEFBbUJoRCxnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxRQUFRLEFBQXJCLElBQXlCLE1BQU0sQUFBQSxPQUFPLENBQUM7SUFBRSxtQkFBbUIsRXhDM3JCdkcsT0FBTyxHd0MyckJpSDtFQW5CdEksQUFvQkUsZ0JBcEJjLEFBb0JiLGdCQUFnQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBcEJuQyxnQkFBZ0IsQUFvQnNCLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE1BQU0sQUFBbkIsSUFBdUIsTUFBTSxBQUFBLE9BQU8sRUFwQnpFLGdCQUFnQixHQUFHLFFBQVEsQUFvQjFDLGdCQUFnQixHQUFHLE1BQU0sQUFBQSxPQUFPLEVBcEJqQixnQkFBZ0IsR0FBRyxRQUFRLEFBb0JQLGdCQUFnQixDQUFBLEFBQUEsV0FBQyxFQUFhLE1BQU0sQUFBbkIsSUFBdUIsTUFBTSxBQUFBLE9BQU8sRUFwQjVDLG9CQUFvQixHQUFHLGtCQUFrQixBQW9CckYsZ0JBQWdCLEdBQUcsTUFBTSxBQUFBLE9BQU8sRUFwQlksb0JBQW9CLEdBQUcsa0JBQWtCLEFBb0JsRCxnQkFBZ0IsQ0FBQSxBQUFBLFdBQUMsRUFBYSxNQUFNLEFBQW5CLElBQXVCLE1BQU0sQUFBQSxPQUFPLENBQUM7SUFBRSxpQkFBaUIsRXhDNXJCakcsT0FBTyxHd0M0ckIyRzs7QUFnc0JoSSxBQUFBLE1BQU0sQ0FBQyxjQUFjO0FBQ3JCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRTtBQUMxQixNQUFNLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBSDtFQUNyQixZQUFZLEVBQUUsb0JBQWdCLENBQUMsVUFBVTtFQUN6QyxnQkFBZ0IsRXJDN3ZDUixPQUFtQztFcUM4dkMzQyxLQUFLLEVyQzl2Q0csT0FBbUMsR3FDK3ZDNUM7O0FBRUQsQUFBQSxZQUFZLENBQUMsY0FBYyxBQUFBLE1BQU07QUFDakMsWUFBWSxDQUFDLGNBQWMsQUFBQSxNQUFNLEdBQUcsRUFBRTtBQUN0QyxZQUFZLENBQUMsY0FBYyxBQUFBLE1BQU0sR0FBRyxFQUFFLENBQUg7RUFDakMsZ0JBQWdCLEVyQ3B3Q1IsT0FBbUMsR3FDcXdDNUM7O0FBeHVDRCxBQUFBLFlBQVksQ0FBRDtFQUNULFlBQVksRXJDa0RDLFdBQVc7RXFDakR4QixVQUFVLEV4Q2xLRSxPQUFPO0V3Q21LbkIsS0FBSyxFckNKRyxJQUFJLEdxQ3lCYjtFQXhCRCxBN0J6SkEsWTZCeUpZLEE3QnpKWCxNQUFNLENBQUM7STZCZ0tKLFlBQVksRXJDNENELFdBQVc7SXFDM0N0QixVQUFVLEVyQ3JDSixPQUFtQztJcUNzQ3pDLEtBQUssRXJDVkMsSUFBSSxHUXhKUTtFNkJ5SnRCLEFBWUUsWUFaVSxBQVlULE1BQU0sRUFaVCxZQUFZLEFBYVQsTUFBTSxDQUFDO0lBQ04sVUFBVSxFckNzQ21HLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDRXJGdEYsR0FBRyxDTC9IckIsdUJBQU8sR3dDK0tsQjtFQWZILEFBaUJFLFlBakJVLEFBaUJULFNBQVMsRUFqQlosWUFBWSxBQWtCVCxTQUFTLENBQUM7SUFDVCxZQUFZLEVyQ2dDRCxXQUFXLENxQ2hDcUIsVUFBVTtJQUNyRCxVQUFVLEV4Q3BMQSxPQUFPLEN3Q29MTyxVQUFVO0lBQ2xDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLEtBQUssRXJDdkJDLElBQUksQ3FDdUJJLFVBQVUsR0FDekI7O0FBR0gsQUFBQSxZQUFZLENBQUMsTUFBTSxDQUFEO0VBQ2hCLFVBQVUsRXJDNUJGLElBQUk7RXFDNkJaLEtBQUssRXhDNUxPLE9BQU8sR3dDNkxwQjs7QUFFRCxBQUFBLFlBQVksQUFBQSxPQUFPO0FBQ25CLFlBQVksQUFBQSxPQUFPO0FBQ25CLEtBQUssR0FBRyxZQUFZLEFBQUEsZ0JBQWdCLENBQUQ7RUFDakMsWUFBWSxFckNpQkMsV0FBVztFcUNoQnhCLFVBQVUsRXJDaEVGLE9BQW1DO0VxQ3FFekMsVUFBVSxFQUFFLElBQUksR0FFbkI7O0FBR0QsQUFBQSxVQUFVLENBQUMsWUFBWTtBQUN2QixvQkFBb0IsQ0FBQyxZQUFZO0FBQ2pDLG1CQUFtQixDQUFDLFlBQVksQ0FBRDtFQUM3QixZQUFZLEVuQzFGa0IsR0FBRyxDbUMwRkssS0FBSyxDckM3RW5DLE9BQW1DO0VxQzhFM0MsV0FBVyxFbkMzRm1CLEdBQUcsQ21DMkZJLEtBQUssQ3JDOUVsQyxPQUFtQyxHcUMrRTVDOztBQXNGRCxBQUFBLG9CQUFvQixDQUFUO0VBQ1QsWUFBWSxFeEN6U0EsT0FBTztFd0MwU25CLFVBQVUsRUFBRSxXQUFXO0VBQ3ZCLEtBQUssRXhDM1NPLE9BQU8sR3dDOFRwQjtFQXRCRCxBN0JqU0Esb0I2QmlTb0IsQTdCalNuQixNQUFNLENBQUM7STZCdVNKLFlBQVksRXJDM0ZELFdBQVc7SXFDNEZ0QixVQUFVLEV4Qy9TQSxPQUFPO0l3Q2dUakIsS0FBSyxFckNqSkMsSUFBSSxHUXhKUTtFNkJpU3RCLEFBV0Usb0JBWGtCLEFBV2pCLE1BQU0sRUFYVCxvQkFBb0IsQUFZakIsTUFBTSxDQUFDO0lBQ04sVUFBVSxFckNqR21HLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDRXJGdEYsR0FBRyxDTC9IckIsdUJBQU8sR3dDc1RsQjtFQWRILEFBZ0JFLG9CQWhCa0IsQUFnQmpCLFNBQVMsRUFoQlosb0JBQW9CLEFBaUJqQixTQUFTLENBQUM7SUFDVCxZQUFZLEV4QzFURixPQUFPLEN3QzBUSSxVQUFVO0lBQy9CLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsS0FBSyxFeEM1VEssT0FBTyxDd0M0VEgsVUFBVSxHQUN6Qjs7QUFHSCxBQUFBLG9CQUFvQixBQUFBLE9BQU87QUFDM0Isb0JBQW9CLEFBQUEsT0FBTztBQUMzQixLQUFLLEdBQUcsb0JBQW9CLEFBQUEsZ0JBQWdCLENBQVQ7RUFDakMsWUFBWSxFckNoSEMsV0FBVztFcUNpSHhCLFVBQVUsRXJDak1GLE9BQW1DO0VxQ2tNM0MsS0FBSyxFckN0S0csSUFBSTtFcUMyS1YsVUFBVSxFQUFFLElBQUksR0FFbkI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBQyxNQUFNLENBQVQ7RUFDaEIsVUFBVSxFeEMvVUUsT0FBTztFd0NnVm5CLFlBQVksRXhDaFZBLE9BQU87RXdDaVZuQixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVELEFBQUEsb0JBQW9CLEFBQUEsTUFBTSxDQUFDLE1BQU07QUFDakMsb0JBQW9CLEFBQUEsTUFBTSxDQUFDLE1BQU07QUFDakMsb0JBQW9CLEFBQUEsT0FBTyxDQUFDLE1BQU07QUFDbEMsb0JBQW9CLEFBQUEsT0FBTyxDQUFDLE1BQU07QUFDbEMsS0FBSyxHQUFHLG9CQUFvQixBQUFBLGdCQUFnQixDQUFDLE1BQU0sQ0FBVDtFQUN4QyxVQUFVLEVyQzFMRixJQUFJO0VxQzJMWixZQUFZLEVyQzNMSixJQUFJO0VxQzRMWixLQUFLLEV4QzNWTyxPQUFPLEd3QzRWcEI7O0FBMEdBLEFBQUQsY0FBZSxBQUFBLElBQUssQ0FBQSxTQUFTLENBQUMsT0FBTztBQUNwQyxjQUFjLEFBQUEsSUFBSyxDQUFBLFNBQVMsQ0FBQyxPQUFPLENBQVc7RUFDOUMsZ0JBQWdCLEV4Q3hjSixPQUFPO0V3Q3ljbkIsS0FBSyxFckMxU0csSUFBSSxHcUMyU2I7O0FBRUQsQUFBQSxjQUFjLEdBQUcsRUFBRSxBQUFBLElBQUssQ0FBQSxTQUFTLElBQUksQ0FBQyxBQUFBLElBQUssQ0FBQSxjQUFjLENBQUMsT0FBTztBQUNqRSxjQUFjLEdBQUcsRUFBRSxBQUFBLE9BQU8sQUFBQSxJQUFLLENBQUEsU0FBUyxJQUFJLENBQUMsQUFBQSxJQUFLLENBQUEsY0FBYyxFQUFZO0VBQzFFLGdCQUFnQixFeEM5Y0osT0FBTztFd0MrY25CLEtBQUssRXJDaFRHLElBQUksR3FDaVRiOztBQXNDRCxBN0JwZUEsVTZCb2VVLENBQUMsU0FBUyxBQUFBLE9BQU8sRUFBM0IsVUFBVSxDQUFDLFNBQVMsQUFBQSxPQUFPLEE3Qm5lMUIsTUFBTSxFNkJtZVAsVUFBVSxDQUFDLFNBQVMsQUFBQSxPQUFPLEE3QmxlMUIsTUFBTSxDQUFDO0U2Qm9lSixnQkFBZ0IsRXhDeGZOLE9BQU87RXdDeWZqQixLQUFLLEVyQzFWQyxJQUFJLEdRekliOztBNkJ1ZUQsQTdCM2VBLFM2QjJlUyxBQUFBLFNBQVMsQ0FBQyxTQUFTLEFBQUEsT0FBTyxFQUFuQyxTQUFTLEFBQUEsU0FBUyxDQUFDLFNBQVMsQUFBQSxPQUFPLEE3QjFlbEMsTUFBTSxFNkIwZVAsU0FBUyxBQUFBLFNBQVMsQ0FBQyxTQUFTLEFBQUEsT0FBTyxBN0J6ZWxDLE1BQU07QTZCMGVQLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxBQUFBLE9BQU87QUFBdEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLEFBQUEsT0FBTyxBN0IzZXJDLE1BQU07QTZCMmVQLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxBQUFBLE9BQU8sQTdCMWVyQyxNQUFNLENBQUM7RTZCNGVKLFVBQVUsRUFBRSxDQUFDLENBQUUsSUFBRyxDQUFDLENBQUMsQ3hDaGdCVixPQUFPLEN3Q2dnQmdCLEtBQUssRzdCMWV6Qzs7QTZCc3NCRCxBQVNJLGVBVFcsQ0FRYixxQkFBcUIsQUFDbEIsTUFBTSxHQUFHLHFCQUFxQixBQUFBLFFBQVE7QUFUM0MsZUFBZSxDQVFiLHFCQUFxQixBQUVsQixPQUFPLEdBQUcscUJBQXFCLEFBQUEsUUFBUSxDQUFDO0VBQ3ZDLFlBQVksRXhDdnVCSixPQUFPLEd3Q3d1QmhCOztBQVpMLEFBY0ksZUFkVyxDQVFiLHFCQUFxQixBQU1sQixNQUFNLEdBQUcscUJBQXFCLEFBQUEsUUFBUSxDQUFDO0VBQ3RDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ25DNW1CUyxHQUFHLENML0hyQix1QkFBTyxHd0M0dUJoQjs7QUFoQkwsQUFtQkUsZUFuQmEsQUFtQlosZ0JBQWdCLENBQUMscUJBQXFCLEFBQUEsY0FBYyxHQUFHLHFCQUFxQixBQUFBLFFBQVE7QUFuQnZGLGVBQWUsQUFvQlosZ0JBQWdCLENBQUMscUJBQXFCLEFBQUEsUUFBUSxHQUFHLHFCQUFxQixBQUFBLFFBQVE7QUFwQmpGLGVBQWUsQUFxQlosYUFBYSxDQUFDLHFCQUFxQixBQUFBLFFBQVEsR0FBRyxxQkFBcUIsQUFBQSxRQUFRLENBQUM7RUFDM0UsWUFBWSxFeENsdkJGLE9BQU87RXdDbXZCakIsZ0JBQWdCLEV4Q252Qk4sT0FBTyxHd0NvdkJsQjs7QUF4QkgsQUEwQkUsZUExQmEsQUEwQlosZ0JBQWdCLENBQUMscUJBQXFCLEFBQUEsY0FBYyxHQUFHLHFCQUFxQixBQUFBLFFBQVEsQ0FBQztFQUNwRixnQkFBZ0IsRUFBRSxxSkFBK0YsR0FDbEg7O0FBNUJILEFBOEJFLGVBOUJhLEFBOEJaLGdCQUFnQixDQUFDLHFCQUFxQixBQUFBLFFBQVEsR0FBRyxxQkFBcUIsQUFBQSxRQUFRLENBQUM7RUFDOUUsZ0JBQWdCLEVBQUUsdVFBQTJGLEdBQzlHOztBQWhDSCxBQWtDRSxlQWxDYSxBQWtDWixhQUFhLENBQUMscUJBQXFCLEFBQUEsUUFBUSxHQUFHLHFCQUFxQixBQUFBLFFBQVEsQ0FBQztFQUMzRSxnQkFBZ0IsRUFBRSxrSkFBd0YsR0FDM0c7O0FBeVhILEFBQUEsa0JBQWtCLEFBQUEsTUFBTSxHQUFHLGtCQUFrQixDQUFDO0VBQzVDLFlBQVksRXhDMW5DQSxPQUFPLEd3QytuQ3BCO0VBTkQsQUFHRSxrQkFIZ0IsQUFBQSxNQUFNLEdBQUcsa0JBQWtCLEFBRzFDLE9BQU8sQ0FBQztJQUNQLFlBQVksRUFBRSxPQUFPLEdBQ3RCOztBQStCSCxBQUFBLGFBQWEsQUFBQSxNQUFNO0FBQ25CLGNBQWMsQUFBQSxNQUFNLENBQUM7RUFDbkIsWUFBWSxFeEMvcENBLE9BQU8sR3dDZ3FDcEI7O0FBc0hBLEFBQUQsZUFBZ0IsQUFBQSxRQUFRLEdBQUcsbUJBQW1CLENBQWE7RUFDekQsVUFBVSxFeEN2eENFLE9BQU87RXdDd3hDbkIsS0FBSyxFckN6bkNHLElBQUksR3FDMG5DYjs7QUFFQSxBQUFELGVBQWdCLEFBQUEsTUFBTSxHQUFHLG1CQUFtQixDQUFhO0VBQ3ZELFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ25DN3BDYSxHQUFHLENML0hyQix1QkFBTyxHd0M2eENwQjs7QUFFQSxBQUFELGVBQWdCLEFBQUEsT0FBTyxHQUFHLG1CQUFtQixDQUFhO0VBQ3hELFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQWdIRCxBQUFBLE9BQU8sQUFBQSxXQUFXLENBQVA7RUFDVCxnQkFBZ0IsRXhDbDVDSixPQUFPLEN3Q2s1Q29CLFVBQVU7RUFDakQsS0FBSyxFckNoeENHLE9BQW1DLEdxQ3UwQzVDO0VBekRELEFBSUUsT0FKSyxBQUFBLFdBQVcsQ0FJaEIsYUFBYSxDQUFDO0lBQ1osS0FBSyxFckN2dkNDLElBQUksR3FDNHZDWDtJQVZILEE3QnQ0Q0EsTzZCczRDTyxBQUFBLFdBQVcsQ0FJaEIsYUFBYSxBN0IxNENkLE1BQU0sRTZCczRDUCxPQUFPLEFBQUEsV0FBVyxDQUloQixhQUFhLEE3Qno0Q2QsTUFBTSxDQUFDO002QjY0Q0YsS0FBSyxFckMxdkNELElBQUksR1FqSmI7RTZCbTRDRCxBQWFJLE9BYkcsQUFBQSxXQUFXLENBWWhCLFdBQVcsQ0FDVCxTQUFTLENBQUM7SUFDUixLQUFLLEVyQzV4Q0QsT0FBbUMsR3FDcXlDeEM7SUF2QkwsQTdCdDRDQSxPNkJzNENPLEFBQUEsV0FBVyxDQVloQixXQUFXLENBQ1QsU0FBUyxBN0JuNUNaLE1BQU0sRTZCczRDUCxPQUFPLEFBQUEsV0FBVyxDQVloQixXQUFXLENBQ1QsU0FBUyxBN0JsNUNaLE1BQU0sQ0FBQztNNkJzNUNBLEtBQUssRXJDbndDSCxJQUFJLEdRakpiO0k2Qm00Q0QsQUFvQk0sT0FwQkMsQUFBQSxXQUFXLENBWWhCLFdBQVcsQ0FDVCxTQUFTLEFBT04sU0FBUyxDQUFDO01BQ1QsS0FBSyxFckNueUNILE9BQW1DLENxQ215Q0csVUFBVSxHQUNuRDtFQXRCUCxBQXlCSSxPQXpCRyxBQUFBLFdBQVcsQ0FZaEIsV0FBVyxDQWFULEtBQUssR0FBRyxTQUFTO0VBekJyQixPQUFPLEFBQUEsV0FBVyxDQVloQixXQUFXLENBY1QsT0FBTyxHQUFHLFNBQVM7RUExQnZCLE9BQU8sQUFBQSxXQUFXLENBWWhCLFdBQVcsQ0FlVCxTQUFTLEFBQUEsS0FBSztFQTNCbEIsT0FBTyxBQUFBLFdBQVcsQ0FZaEIsV0FBVyxDQWdCVCxTQUFTLEFBQUEsT0FBTyxDQUFDO0lBQ2YsS0FBSyxFckMvd0NELElBQUksR3FDZ3hDVDtFQTlCTCxBQWlDRSxPQWpDSyxBQUFBLFdBQVcsQ0FpQ2hCLGVBQWUsQ0FBQztJQUNkLEtBQUssRXJDaHpDQyxPQUFtQztJcUNpekN6QyxZQUFZLEVyQ3J4Q04seUJBQUksR3FDc3hDWDtFQXBDSCxBQXNDRSxPQXRDSyxBQUFBLFdBQVcsQ0FzQ2hCLG9CQUFvQixDQUFDO0lBQ25CLGdCQUFnQixFbENudUIwQiw0T0FBeU8sR2tDb3VCcFI7RUF4Q0gsQUEwQ0UsT0ExQ0ssQUFBQSxXQUFXLENBMENoQixZQUFZLENBQUM7SUFDWCxLQUFLLEVyQ3p6Q0MsT0FBbUMsR3FDazBDMUM7SUFwREgsQUE2Q0ksT0E3Q0csQUFBQSxXQUFXLENBMENoQixZQUFZLENBR1YsQ0FBQyxDQUFDO01BQ0EsS0FBSyxFckNoeUNELElBQUksR3FDcXlDVDtNQW5ETCxBN0J0NENBLE82QnM0Q08sQUFBQSxXQUFXLENBMENoQixZQUFZLENBR1YsQ0FBQyxBN0JuN0NKLE1BQU0sRTZCczRDUCxPQUFPLEFBQUEsV0FBVyxDQTBDaEIsWUFBWSxDQUdWLENBQUMsQTdCbDdDSixNQUFNLENBQUM7UTZCczdDQSxLQUFLLEVyQ255Q0gsSUFBSSxHUWpKYjtFNkJtNENELEFBc0RFLE9BdERLLEFBQUEsV0FBVyxDQXNEaEIsRUFBRSxDQUFDO0lBQ0QsWUFBWSxFckN6eUNOLHlCQUFJLEdxQzB5Q1g7O0FBaUJILEFBQUEsUUFBUSxBQUFBLFdBQVcsQ0FBUjtFQUNULGdCQUFnQixFeEMzOUNKLE9BQU8sQ3dDMjlDb0IsVUFBVTtFQUNqRCxLQUFLLEVyQ3oxQ0csT0FBbUMsR3FDMjZDNUM7RUFwRkQsQUFJRSxRQUpNLEFBQUEsV0FBVyxDQUlqQixhQUFhO0VBSmYsUUFBUSxBQUFBLFdBQVcsQ0FLakIsd0JBQXdCO0VBTDFCLFFBQVEsQUFBQSxXQUFXLENBTWpCLHdCQUF3QixDQUFDO0lBQ3ZCLEtBQUssRXJDOTFDQyxPQUFtQyxHcUN1MkMxQztJQWhCSCxBN0IvOENBLFE2Qis4Q1EsQUFBQSxXQUFXLENBSWpCLGFBQWEsQTdCbjlDZCxNQUFNLEU2Qis4Q1AsUUFBUSxBQUFBLFdBQVcsQ0FJakIsYUFBYSxBN0JsOUNkLE1BQU07STZCODhDUCxRQUFRLEFBQUEsV0FBVyxDQUtqQix3QkFBd0IsQTdCcDlDekIsTUFBTTtJNkIrOENQLFFBQVEsQUFBQSxXQUFXLENBS2pCLHdCQUF3QixBN0JuOUN6QixNQUFNO0k2Qjg4Q1AsUUFBUSxBQUFBLFdBQVcsQ0FNakIsd0JBQXdCLEE3QnI5Q3pCLE1BQU07STZCKzhDUCxRQUFRLEFBQUEsV0FBVyxDQU1qQix3QkFBd0IsQTdCcDlDekIsTUFBTSxDQUFDO002Qnc5Q0YsS0FBSyxFckNyMENELElBQUksR1FqSmI7STZCNDhDRCxBQWFJLFFBYkksQUFBQSxXQUFXLENBSWpCLGFBQWEsQUFTVixPQUFPO0lBYlosUUFBUSxBQUFBLFdBQVcsQ0FLakIsd0JBQXdCLEFBUXJCLE9BQU87SUFiWixRQUFRLEFBQUEsV0FBVyxDQU1qQix3QkFBd0IsQUFPckIsT0FBTyxDQUFDO01BQ1AsS0FBSyxFckN6MENELElBQUksR3FDMDBDVDtFQWZMLEFBa0JFLFFBbEJNLEFBQUEsV0FBVyxDQWtCakIsYUFBYSxBQUFBLFNBQVMsQ0FBQyxhQUFhO0VBbEJ0QyxRQUFRLEFBQUEsV0FBVyxDQW1CakIsd0JBQXdCLEFBQUEsU0FBUztFQW5CbkMsUUFBUSxBQUFBLFdBQVcsQ0FvQmpCLHdCQUF3QixBQUFBLFNBQVMsQ0FBQztJQUNoQyxLQUFLLEVyQzUyQ0MsT0FBbUMsQ3FDNDJDRCxVQUFVLEdBQ25EO0VBdEJILEFBd0JFLFFBeEJNLEFBQUEsV0FBVyxDQXdCakIsYUFBYSxBQUFBLEtBQUssQUFBQSxJQUFLLENBQUEscUJBQXFCLElBQUksZUFBZTtFQXhCakUsUUFBUSxBQUFBLFdBQVcsQ0F5QmpCLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxDQUFDO0lBQ25DLEtBQUssRXJDcjFDQyxJQUFJLEdxQ3MxQ1g7RUEzQkgsQUE2QkUsUUE3Qk0sQUFBQSxXQUFXLENBNkJqQixhQUFhLEFBQUEsT0FBTyxHQUFHLGFBQWEsQUFBQSxJQUFLLENBQUEsZUFBZSxFQUFFO0lBQ3hELGdCQUFnQixFckNyM0NWLE9BQW1DLEdxQ3MzQzFDO0VBL0JILEFBaUNFLFFBakNNLEFBQUEsV0FBVyxBQWlDaEIsbUJBQW1CLENBQUMsYUFBYSxHQUFHLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxBQUFBLElBQUssQ0FBQSxlQUFlLEVBQUU7SUFDN0YsZ0JBQWdCLEVyQ3ozQ1YsT0FBbUMsR3FDMDNDMUM7RUFuQ0gsQUFxQ0UsUUFyQ00sQUFBQSxXQUFXLEFBcUNoQixtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsYUFBYSxBQUFBLElBQUssQ0FBQSxxQkFBcUIsSUFBSSxhQUFhO0VBckNoRyxRQUFRLEFBQUEsV0FBVyxBQXNDaEIsbUJBQW1CLENBQUMsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQ3pFLFVBQVUsRXJDOTNDSixPQUFtQyxHcUMrM0MxQztFQXhDSCxBQTBDRSxRQTFDTSxBQUFBLFdBQVcsQ0EwQ2pCLGNBQWMsR0FBRyxhQUFhLEFBQUEscUJBQXFCLENBQUMsYUFBYSxBQUFBLEtBQUssQ0FBQyxhQUFhO0VBMUN0RixRQUFRLEFBQUEsV0FBVyxDQTJDakIsY0FBYyxHQUFHLGFBQWEsQUFBQSxxQkFBcUIsQ0FBQyxhQUFhLEFBQUEsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNyRixVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEVyQ3A0Q0MsT0FBbUMsR3FDcTRDMUM7RUE5Q0gsQUFnREUsUUFoRE0sQUFBQSxXQUFXLENBZ0RqQixhQUFhLENBQUM7SUFDWixLQUFLLEVyQzUyQ0MsSUFBSSxHcUM2MkNYO0VBbERILEFBb0RFLFFBcERNLEFBQUEsV0FBVyxDQW9EakIsZUFBZSxDQUFDO0lBQ2QsS0FBSyxFckM1NENDLE9BQW1DLEdxQzY0QzFDO0VBdERILEFBd0RFLFFBeERNLEFBQUEsV0FBVyxDQXdEakIsRUFBRTtFQXhESixRQUFRLEFBQUEsV0FBVyxDQXlEakIsZ0JBQWdCO0VBekRsQixRQUFRLEFBQUEsV0FBVyxDQTBEakIsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLEdBQUcsYUFBYSxBQUFBLFFBQVEsQ0FBQztJQUMxRCxZQUFZLEVyQ3QzQ04seUJBQUksQ3FDczNDNkIsVUFBVSxHQUNsRDtFQTVESCxBQThERSxRQTlETSxBQUFBLFdBQVcsQ0E4RGpCLGNBQWMsR0FBRyxlQUFlLEFBQUEsUUFBUTtFQTlEMUMsUUFBUSxBQUFBLFdBQVcsQ0ErRGpCLGNBQWMsQUFBQSxRQUFRLENBQUM7SUFDckIsZ0JBQWdCLEVyQzMzQ1YseUJBQUksR3FDNDNDWDtFQWpFSCxBQW1FRSxRQW5FTSxBQUFBLFdBQVcsQ0FtRWpCLGNBQWMsR0FBRyxhQUFhLEFBQUEsS0FBSyxDQUFDLGFBQWEsQUFBQSxLQUFLLEdBQUcsZUFBZSxBQUFBLFFBQVEsQ0FBQztJQUMvRSxnQkFBZ0IsRXJDMzVDVixPQUFtQyxHcUM0NUMxQztFQXJFSCxBQXVFRSxRQXZFTSxBQUFBLFdBQVcsQ0F1RWpCLGNBQWMsR0FBRyxhQUFhLEFBQUEsS0FBSyxDQUFDLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxBQUFBLFFBQVEsQ0FBQztJQUMvRSxnQkFBZ0IsRXJDbjRDVixJQUFJLEdxQ280Q1g7RUF6RUgsQUEyRUUsUUEzRU0sQUFBQSxXQUFXLENBMkVqQixjQUFjLEdBQUcsYUFBYSxBQUFBLEtBQUssQ0FBQyxhQUFhLEFBQUEsS0FBSyxHQUFHLGVBQWUsQUFBQSxRQUFRO0VBM0VsRixRQUFRLEFBQUEsV0FBVyxDQTRFakIsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLENBQUMsYUFBYSxBQUFBLE9BQU8sR0FBRyxhQUFhLEFBQUEsUUFBUSxDQUFDO0lBQy9FLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENyQ3A2Q2YsT0FBbUMsR3FDcTZDMUM7RUE5RUgsQUFnRkUsUUFoRk0sQUFBQSxXQUFXLENBZ0ZqQixZQUFZO0VBaEZkLFFBQVEsQUFBQSxXQUFXLENBaUZqQixXQUFXLEFBQUEsYUFBYSxHQUFHLFlBQVksQ0FBQztJQUN0QyxVQUFVLEVyQzc0Q0osNkJBQUksQ3FDNjRDK0gsVUFBVSxHQUNwSjs7QUFVSCxBQUFBLE9BQU8sQUFBQSxXQUFXLENBQVA7RUFDVCxnQkFBZ0IsRXhDeGpESixPQUFPLEN3Q3dqRG9CLFVBQVU7RUFDakQsS0FBSyxFckN0N0NHLE9BQW1DLEdxQ2s5QzVDO0VBOUJELEFBSUUsT0FKSyxBQUFBLFdBQVcsQ0FJaEIsWUFBWSxDQUFDO0lBQ1gsS0FBSyxFckN6N0NDLE9BQW1DLEdxQ2s4QzFDO0lBZEgsQTdCNWlEQSxPNkI0aURPLEFBQUEsV0FBVyxDQUloQixZQUFZLEE3QmhqRGIsTUFBTSxFNkI0aURQLE9BQU8sQUFBQSxXQUFXLENBSWhCLFlBQVksQTdCL2lEYixNQUFNLENBQUM7TTZCbWpERixLQUFLLEVyQ2g2Q0QsSUFBSSxHUWpKYjtJNkJ5aURELEFBV0ksT0FYRyxBQUFBLFdBQVcsQ0FJaEIsWUFBWSxBQU9ULFNBQVMsQ0FBQztNQUNULEtBQUssRXJDaDhDRCxPQUFtQyxDcUNnOENDLFVBQVUsR0FDbkQ7RUFiTCxBQWdCRSxPQWhCSyxBQUFBLFdBQVcsQ0FnQmhCLFlBQVksQ0FBQztJQUNYLEtBQUssRXJDejZDQyxJQUFJLEdxQzA2Q1g7RUFsQkgsQUFvQkUsT0FwQkssQUFBQSxXQUFXLENBb0JoQixLQUFLLEdBQUcsWUFBWTtFQXBCdEIsT0FBTyxBQUFBLFdBQVcsQ0FxQmhCLE9BQU8sR0FBRyxZQUFZO0VBckJ4QixPQUFPLEFBQUEsV0FBVyxDQXNCaEIsWUFBWSxBQUFBLEtBQUs7RUF0Qm5CLE9BQU8sQUFBQSxXQUFXLENBdUJoQixZQUFZLEFBQUEsT0FBTyxDQUFDO0lBQ2xCLEtBQUssRXJDaDdDQyxJQUFJLEdxQ2k3Q1g7RUF6QkgsQUEyQkUsT0EzQkssQUFBQSxXQUFXLENBMkJoQixFQUFFLENBQUM7SUFDRCxZQUFZLEVyQ3A3Q04seUJBQUksR3FDcTdDWDs7QUFPSCxBQUFBLFdBQVcsQUFBQSxVQUFVLENBQUE7RUFDbkIsS0FBSyxFckM3N0NHLElBQUk7RXFDODdDWixnQkFBZ0IsRXhDN2xESix1QkFBTyxDd0M2bERxQixVQUFVLEdBTW5EO0VBUkQsQUFJRSxXQUpTLEFBQUEsVUFBVSxDQUluQixhQUFhLENBQUM7SUFDWixLQUFLLEVyQ2o4Q0MsSUFBSTtJcUNrOENWLGdCQUFnQixFckNsOENWLHdCQUFJLEdxQ204Q1g7O0FDMWtESCxBQUFBLGFBQWEsQ0FBQztFQUFFLElBQUksRXpDeEJOLE9BQU8sR3lDd0JlOztBRVBwQyxBQXJCQSxlQXFCZSxDQXJCZixpQkFBaUI7QUFxQmpCLGVBQWUsQ0FwQmYsZ0JBQWdCLENBQUMsa0JBQWtCO0FBb0JuQyxlQUFlLEFBbkJkLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO0VBQ25DLFVBQVUsRTNDQ0UsT0FBTyxHMkNBcEI7O0FDSUQsQUFDRSxhQURXLENBQUMsVUFBVSxDQUN0QixhQUFhLENBQUM7RUFBRSxVQUFVLEU1Q0xkLE9BQU8sQzRDS3FCLFVBQVUsR0FBSTs7QUNXeEQsQUFDRSxjQURZLENBQUMsMkJBQTJCLENBQ3hDLHFDQUFxQyxDQUFBLEFBQUEsYUFBQyxBQUFBLEVBQWU7RUFDbkQsZ0JBQWdCLEU3Q2xCTixPQUFPLEM2Q2tCYSxVQUFVO0VBQ3hDLEtBQUssRTFDNElDLElBQUksQzBDNUlJLFVBQVUsR0FDekI7O0FBSkgsQUFNRSxjQU5ZLENBQUMsMkJBQTJCLEFBTXZDLHlCQUF5QixDQUFDLGtCQUFrQjtBQU4vQyxjQUFjLENBQUMsMkJBQTJCLEFBT3ZDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDO0VBQzNDLFlBQVksRTdDeEJGLE9BQU8sQzZDd0JTLFVBQVUsR0FDckM7O0FBR0gsQUE1QkEsY0E0QmMsQ0FBQyxnQkFBZ0IsQ0E1Qi9CLDJCQUEyQixDQUFDLDRCQUE0QixDQUFDLDBCQUEwQixDQUFDO0VBQ2xGLFVBQVUsRTdDREUsT0FBTztFNkNFbkIsS0FBSyxFMUM2SkcsSUFBSSxHMEM1SmI7O0FDUEQsQUFBQSxvQkFBb0IsQUFBQSxNQUFNLENBQUM7RUFDekIsWUFBWSxFOUNHQSxPQUFPLEM4Q0hHLFVBQVUsR0FDakM7O0FDRUQsQUFBQSxpQkFBaUIsQ0FBQyxjQUFjLEFBQUEsTUFBTSxDQUFDLENBQUMsQ0FBQSxBQUFBLGFBQUMsQ0FBRCxJQUFDLEFBQUEsRUFBb0I7RUFDM0QsVUFBVSxFL0NERSxPQUFPLEMrQ0NLLFVBQVU7RUFDbEMsS0FBSyxFNUM2SkcsSUFBSSxDNEM3SkUsVUFBVSxHQUN6Qjs7QUNERCxBQUNFLFdBRFMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQUFDcEIsT0FBTyxFQURWLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQUFFcEIsT0FBTyxBQUFBLFlBQVksRUFGdEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUdwQixPQUFPLEFBQUEsTUFBTTtBQUhoQixXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBSXJCLElBQUksQUFBQSxPQUFPO0FBSmIsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUtyQixJQUFJLEFBQUEsT0FBTyxBQUFBLFNBQVMsRUFMdEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQU1wQixZQUFZLEVBTmYsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQU9wQixVQUFVLENBQUM7RUFDVixVQUFVLEVoRFZBLE9BQU8sQ2dEVU8sVUFBVTtFQUNsQyxLQUFLLEU3Q29KQyxJQUFJLEM2Q3BKSSxVQUFVLEdBQ3pCOztBQVZILEFBWUUsV0FaUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQVlwQixNQUFNLEVBWlQsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQWFwQixNQUFNLEFBQUEsWUFBWSxFQWJyQixXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBY3BCLE1BQU0sQUFBQSxNQUFNLENBQUM7RUFDWixVQUFVLEU3Q2tISixPQUFtQyxDNkNsSG5CLFVBQVU7RUFDaEMsS0FBSyxFN0NpSEMsT0FBbUMsQzZDakhyQixVQUFVLEdBVS9CO0VBMUJILEFBa0JJLFdBbEJPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBWXBCLE1BQU0sQUFNSixRQUFRLEVBbEJiLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQUFhcEIsTUFBTSxBQUFBLFlBQVksQUFLaEIsUUFBUSxFQWxCYixXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBY3BCLE1BQU0sQUFBQSxNQUFNLEFBSVYsUUFBUSxDQUFDO0lBQ1IsVUFBVSxFQUFFLE9BQXFCLENBQUMsVUFBVSxHQUM3QztFQXBCTCxBQXNCSSxXQXRCTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQVlwQixNQUFNLEFBVUosU0FBUyxFQXRCZCxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBYXBCLE1BQU0sQUFBQSxZQUFZLEFBU2hCLFNBQVMsRUF0QmQsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxBQWNwQixNQUFNLEFBQUEsTUFBTSxBQVFWLFNBQVMsQ0FBQztJQUNULFVBQVUsRUFBRSx3QkFBNkIsQ0FBQyxVQUFVO0lBQ3BELEtBQUssRUFBRSxzQkFBZ0MsQ0FBQyxVQUFVLEdBQ25EOztBQ3pCTCxBQUNFLG1CQURpQixDQUFDLGdCQUFnQixDQUFDLElBQUksQUFDdEMsUUFBUSxBQUFBLE1BQU0sQ0FBQztFQUNkLG1CQUFtQixFOUMySmIsSUFBSSxHOEMxSlg7O0FBSEgsQUFLRSxtQkFMaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEFBS3RDLFVBQVUsQUFBQSxNQUFNLENBQUM7RUFDaEIsZ0JBQWdCLEU5Q3VKVixJQUFJLEc4Q3RKWDs7QUFHSCxBQUFBLGdCQUFnQjtBQUNoQixJQUFJLEFBQUEsa0JBQWtCLENBQUM7RUFDckIsVUFBVSxFakRkRSxPQUFPO0VpRGVuQixLQUFLLEU5Q2dKRyxJQUFJO0U4Qy9JWixJQUFJLEU5QytJSSxJQUFJLEc4QzlJYjs7QUFFRCxBQUFBLG1CQUFtQixDQUFDO0VBQ2xCLFVBQVUsRWpEcEJFLE9BQU8sR2lEcUJwQjs7QUFFRCxBQUNFLGNBRFksQUFDWCxNQUFNLENBQUM7RUFDTixZQUFZLEVqRHpCRixPQUFPLEdpRDBCbEI7O0FBSEgsQUFLRSxjQUxZLEFBS1gsUUFBUSxFQUxYLGNBQWMsQUFNWCxhQUFhLEFBQUEsUUFBUSxFQU54QixjQUFjLEFBT1gsYUFBYSxBQUFBLFFBQVEsRUFQeEIsY0FBYyxBQVFYLE1BQU0sQUFBQSxRQUFRLEVBUmpCLGNBQWMsQUFTWCxhQUFhLEFBQUEsTUFBTSxBQUFBLFFBQVEsRUFUOUIsY0FBYyxBQVVYLGFBQWEsQUFBQSxNQUFNLEFBQUEsUUFBUSxDQUFDO0VBQzNCLFlBQVksRTlDaUdOLE9BQW1DLEM4Q2pHZCxVQUFVO0VBQ3JDLFVBQVUsRTlDZ0dKLE9BQW1DLEM4Q2hHaEIsVUFBVTtFQUNuQyxLQUFLLEU5QytGQyxPQUFtQyxDOEMvRmxCLFVBQVUsR0FDbEM7O0FBZEgsQUFnQkUsY0FoQlksQUFnQlgsU0FBUyxFQWhCWixjQUFjLEFBaUJYLFdBQVcsRUFqQmQsY0FBYyxBQWtCWCxTQUFTLEVBbEJaLGNBQWMsQUFtQlgsU0FBUyxBQUFBLFFBQVEsRUFuQnBCLGNBQWMsQUFvQlgsV0FBVyxBQUFBLFFBQVEsRUFwQnRCLGNBQWMsQUFxQlgsU0FBUyxBQUFBLFFBQVEsRUFyQnBCLGNBQWMsQUFzQlgsU0FBUyxBQUFBLE1BQU0sRUF0QmxCLGNBQWMsQUF1QlgsV0FBVyxBQUFBLE1BQU0sRUF2QnBCLGNBQWMsQUF3QlgsU0FBUyxBQUFBLE1BQU0sRUF4QmxCLGNBQWMsQUF5QlgsU0FBUyxBQUFBLE1BQU0sRUF6QmxCLGNBQWMsQUEwQlgsV0FBVyxBQUFBLE1BQU0sRUExQnBCLGNBQWMsQUEyQlgsU0FBUyxBQUFBLE1BQU0sRUEzQmxCLGNBQWMsQUE0QlgsU0FBUyxBQUFBLGFBQWEsRUE1QnpCLGNBQWMsQUE2QlgsV0FBVyxBQUFBLGFBQWEsRUE3QjNCLGNBQWMsQUE4QlgsU0FBUyxBQUFBLGFBQWEsRUE5QnpCLGNBQWMsQUErQlgsU0FBUyxBQUFBLGFBQWEsRUEvQnpCLGNBQWMsQUFnQ1gsV0FBVyxBQUFBLGFBQWEsRUFoQzNCLGNBQWMsQUFpQ1gsU0FBUyxBQUFBLGFBQWEsRUFqQ3pCLGNBQWMsQUFrQ1gsS0FBSyxBQUFBLFNBQVMsQ0FBQztFQUNkLFlBQVksRWpEMURGLE9BQU8sQ2lEMERTLFVBQVU7RUFDcEMsVUFBVSxFakQzREEsT0FBTyxDaUQyRE8sVUFBVTtFQUNsQyxLQUFLLEU5Q21HQyxJQUFJLEM4Q25HSSxVQUFVLEdBQ3pCOztBQzNESCxBQUFBLGdCQUFnQixDQUFDLEVBQUUsQUFBQSxPQUFPLENBQUM7RUFDekIsZ0JBQWdCLEVsREhKLE9BQU8sQ2tER1csVUFBVTtFQUN4QyxLQUFLLEUvQzJKRyxJQUFJLEMrQzNKRSxVQUFVLEdBQ3pCOztBQUVELEFBQUEsZ0JBQWdCLENBQUMsRUFBRSxBQUFBLFNBQVMsQUFBQSxJQUFLLENBQUEsV0FBVyxDQUFDLElBQUssQ0FBQSxTQUFTLENBQUMsSUFBSyxDQUFBLElBQUksRUFBRTtFQUNyRSxnQkFBZ0IsRS9DMkhSLE9BQW1DLEMrQzNIVixVQUFVO0VBQzNDLEtBQUssRS9DMEhHLE9BQW1DLEMrQzFIbEIsVUFBVSxHQUNwQzs7QUFFRCxBQUFBLGdCQUFnQixDQUFDLFdBQVcsQUFBQSxPQUFPLENBQUM7RUFDbEMsWUFBWSxFbERiQSxPQUFPLENrRGFPLFVBQVUsR0FDckM7O0FBRUQsQUFBQSxPQUFPLENBQUMsRUFBRSxBQUFBLE9BQU8sQ0FBQztFQUNoQixnQkFBZ0IsRWxEakJKLE9BQU8sQ2tEaUJXLFVBQVU7RUFDeEMsS0FBSyxFL0M2SUcsSUFBSSxDK0M3SUUsVUFBVSxHQUN6Qjs7QUNuQkQsQUFBQSxTQUFTO0FBQ1QsU0FBUyxDQUFDO0VBQ1IsVUFBVSxFbkRGRSxPQUFPO0VtREduQixLQUFLLEVoRDRKRyxJQUFJLEdnRDNKYjs7QUFFRCxBQUFBLFVBQVUsR0FBRyxDQUFDLENBQUM7RUFBRSxLQUFLLEVoRHlKWixJQUFJLEdnRHpKb0I7O0FBRWxDLEFBQUEsTUFBTSxBQUFBLFdBQVcsQ0FBQztFQUNoQixVQUFVLEVoRDBIRixPQUFtQztFZ0R6SDNDLEtBQUssRWhEcUpHLElBQUksR2dEcEpiOztBQUVELEFBQUEsS0FBSyxBQUFBLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxBQUFBLFNBQVMsQ0FBQztFQUN6QyxVQUFVLEVuRGRFLE9BQU87RW1EZW5CLEtBQUssRWhEZ0pHLElBQUksQ2dEaEpFLFVBQVUsR0FDekI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBQyxDQUFDLEFBQUEsU0FBUyxDQUFDO0VBQzlCLFVBQVUsRW5EbkJFLE9BQU8sQ21EbUJLLFVBQVU7RUFDbEMsS0FBSyxFaEQySUcsSUFBSSxDZ0QzSUUsVUFBVSxHQUN6Qjs7QUFFRCxBQUNFLElBREUsQ0FBQyxpQkFBaUIsQUFDbkIsTUFBTSxDQUFDO0VBQUUsS0FBSyxFbkR4QkgsT0FBTyxHbUR3QmE7O0FBRGxDLEFBRUUsSUFGRSxDQUFDLGlCQUFpQixBQUVuQixPQUFPLENBQUM7RUFBRSxLQUFLLEVuRHpCSixPQUFPLEdtRHlCYzs7QUFHbkMsQUFBQSxJQUFJLENBQUMsVUFBVSxFQUFDLEFBQUEsTUFBQyxDQUFPLFNBQVMsQUFBaEIsRUFBa0I7RUFBRSxNQUFNLEVuRDVCN0IsT0FBTyxDbUQ0Qm9DLFVBQVUsR0FBSTs7QUFDdkUsQUFBQSxJQUFJLENBQUMsVUFBVSxFQUFDLEFBQUEsSUFBQyxDQUFLLFNBQVMsQUFBZCxFQUFnQjtFQUFFLElBQUksRW5EN0J6QixPQUFPLENtRDZCZ0MsVUFBVSxHQUFJOztBQUNuRSxBQUFBLElBQUksQ0FBQyxVQUFVLEVBQUMsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLEVBQWE7RUFBRSxJQUFJLEVoRGlJMUIsSUFBSSxDZ0RqSStCLFVBQVUsR0FBSTs7QUM5QjNELEFBQUEsRUFBRSxBQUFBLHVCQUF1QjtBQUN6QixtQkFBbUIsQ0FBQyx1QkFBdUIsQUFBQSxNQUFNLENBQUM7RUFDaEQsVUFBVSxFcERGRSxPQUFPLENvREVLLFVBQVU7RUFDbEMsS0FBSyxFakQ0SkcsSUFBSSxDaUQ1SkUsVUFBVSxHQUN6Qjs7QUNKRCxBQUFBLGNBQWMsQ0FBQztFQUNiLFVBQVUsRXJEREUsT0FBTyxDcURDSyxVQUFVO0VBQ2xDLEtBQUssRWxENkpHLElBQUksQ2tEN0pFLFVBQVUsR0FDekI7O0FDUEQsQUFBQSxVQUFVLEFBQUEsT0FBTyxDQUFDO0VBQ2hCLFlBQVksRXRER0EsT0FBTyxDc0RIRyxVQUFVLEdBQ2pDOztBQ2lFRCxBQUVFLFFBRk0sQUFBQSxXQUFXLENBRWpCLE1BQU0sQUFBQSxNQUFNO0FBRmQsUUFBUSxBQUFBLFdBQVcsQ0FHakIsTUFBTSxBQUFBLE1BQU07QUFIZCxRQUFRLEFBQUEsV0FBVyxDQUlqQixNQUFNLEFBQUEsVUFBVTtBQUpsQixRQUFRLEFBQUEsV0FBVyxDQUtqQixnQkFBZ0IsQUFBQSxNQUFNO0FBTHhCLFFBQVEsQUFBQSxXQUFXLENBTWpCLGdCQUFnQixBQUFBLFVBQVU7QUFONUIsUUFBUSxBQUFBLFdBQVcsQ0FPakIsZUFBZSxBQUFBLE1BQU07QUFQdkIsUUFBUSxBQUFBLFdBQVcsQ0FRakIsZUFBZSxBQUFBLFlBQVk7QUFQN0IsUUFBUSxDQUFDLFdBQVcsQ0FDbEIsTUFBTSxBQUFBLE1BQU07QUFEZCxRQUFRLENBQUMsV0FBVyxDQUVsQixNQUFNLEFBQUEsTUFBTTtBQUZkLFFBQVEsQ0FBQyxXQUFXLENBR2xCLE1BQU0sQUFBQSxVQUFVO0FBSGxCLFFBQVEsQ0FBQyxXQUFXLENBSWxCLGdCQUFnQixBQUFBLE1BQU07QUFKeEIsUUFBUSxDQUFDLFdBQVcsQ0FLbEIsZ0JBQWdCLEFBQUEsVUFBVTtBQUw1QixRQUFRLENBQUMsV0FBVyxDQU1sQixlQUFlLEFBQUEsTUFBTTtBQU52QixRQUFRLENBQUMsV0FBVyxDQU9sQixlQUFlLEFBQUEsWUFBWSxDQUFDO0VBQzFCLEtBQUssRXZEeEVLLE9BQU8sQ3VEd0VILFVBQVUsR0FDekI7O0FBVkgsQUFZRSxRQVpNLEFBQUEsV0FBVyxDQVlqQixNQUFNLEFBQUEsTUFBTSxDQUFDLFFBQVE7QUFadkIsUUFBUSxBQUFBLFdBQVcsQ0FhakIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxRQUFRO0FBYnZCLFFBQVEsQUFBQSxXQUFXLENBY2pCLE1BQU0sQUFBQSxVQUFVLENBQUMsUUFBUTtBQWQzQixRQUFRLEFBQUEsV0FBVyxDQWVqQixnQkFBZ0IsQUFBQSxNQUFNLENBQUMsUUFBUTtBQWZqQyxRQUFRLEFBQUEsV0FBVyxDQWdCakIsZ0JBQWdCLEFBQUEsVUFBVSxDQUFDLFFBQVE7QUFoQnJDLFFBQVEsQUFBQSxXQUFXLENBaUJqQixlQUFlLEFBQUEsTUFBTSxDQUFDLFFBQVE7QUFqQmhDLFFBQVEsQUFBQSxXQUFXLENBa0JqQixlQUFlLEFBQUEsWUFBWSxDQUFDLFFBQVE7QUFsQnRDLFFBQVEsQUFBQSxXQUFXLENBbUJqQixNQUFNLEFBQUEsTUFBTSxDQUFDLFVBQVUsQUFBQSxRQUFRO0FBbkJqQyxRQUFRLEFBQUEsV0FBVyxDQW9CakIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxVQUFVLEFBQUEsUUFBUTtBQXBCakMsUUFBUSxBQUFBLFdBQVcsQ0FxQmpCLE1BQU0sQUFBQSxVQUFVLENBQUMsVUFBVSxBQUFBLFFBQVE7QUFyQnJDLFFBQVEsQUFBQSxXQUFXLENBc0JqQixnQkFBZ0IsQUFBQSxNQUFNLENBQUMsVUFBVSxBQUFBLFFBQVE7QUF0QjNDLFFBQVEsQUFBQSxXQUFXLENBdUJqQixnQkFBZ0IsQUFBQSxVQUFVLENBQUMsVUFBVSxBQUFBLFFBQVE7QUF2Qi9DLFFBQVEsQUFBQSxXQUFXLENBd0JqQixlQUFlLEFBQUEsTUFBTSxDQUFDLFVBQVUsQUFBQSxRQUFRO0FBeEIxQyxRQUFRLEFBQUEsV0FBVyxDQXlCakIsZUFBZSxBQUFBLFlBQVksQ0FBQyxVQUFVLEFBQUEsUUFBUTtBQXhCaEQsUUFBUSxDQUFDLFdBQVcsQ0FXbEIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxRQUFRO0FBWHZCLFFBQVEsQ0FBQyxXQUFXLENBWWxCLE1BQU0sQUFBQSxNQUFNLENBQUMsUUFBUTtBQVp2QixRQUFRLENBQUMsV0FBVyxDQWFsQixNQUFNLEFBQUEsVUFBVSxDQUFDLFFBQVE7QUFiM0IsUUFBUSxDQUFDLFdBQVcsQ0FjbEIsZ0JBQWdCLEFBQUEsTUFBTSxDQUFDLFFBQVE7QUFkakMsUUFBUSxDQUFDLFdBQVcsQ0FlbEIsZ0JBQWdCLEFBQUEsVUFBVSxDQUFDLFFBQVE7QUFmckMsUUFBUSxDQUFDLFdBQVcsQ0FnQmxCLGVBQWUsQUFBQSxNQUFNLENBQUMsUUFBUTtBQWhCaEMsUUFBUSxDQUFDLFdBQVcsQ0FpQmxCLGVBQWUsQUFBQSxZQUFZLENBQUMsUUFBUTtBQWpCdEMsUUFBUSxDQUFDLFdBQVcsQ0FrQmxCLE1BQU0sQUFBQSxNQUFNLENBQUMsVUFBVSxBQUFBLFFBQVE7QUFsQmpDLFFBQVEsQ0FBQyxXQUFXLENBbUJsQixNQUFNLEFBQUEsTUFBTSxDQUFDLFVBQVUsQUFBQSxRQUFRO0FBbkJqQyxRQUFRLENBQUMsV0FBVyxDQW9CbEIsTUFBTSxBQUFBLFVBQVUsQ0FBQyxVQUFVLEFBQUEsUUFBUTtBQXBCckMsUUFBUSxDQUFDLFdBQVcsQ0FxQmxCLGdCQUFnQixBQUFBLE1BQU0sQ0FBQyxVQUFVLEFBQUEsUUFBUTtBQXJCM0MsUUFBUSxDQUFDLFdBQVcsQ0FzQmxCLGdCQUFnQixBQUFBLFVBQVUsQ0FBQyxVQUFVLEFBQUEsUUFBUTtBQXRCL0MsUUFBUSxDQUFDLFdBQVcsQ0F1QmxCLGVBQWUsQUFBQSxNQUFNLENBQUMsVUFBVSxBQUFBLFFBQVE7QUF2QjFDLFFBQVEsQ0FBQyxXQUFXLENBd0JsQixlQUFlLEFBQUEsWUFBWSxDQUFDLFVBQVUsQUFBQSxRQUFRLENBQUM7RUFDN0MsSUFBSSxFdkR6Rk0sT0FBTyxDdUR5RkosVUFBVSxHQUN4Qjs7QUEzQkgsQUE2QkUsUUE3Qk0sQUFBQSxXQUFXLENBNkJqQixNQUFNLEFBQUEsTUFBTSxDQUFDLFVBQVU7QUE3QnpCLFFBQVEsQUFBQSxXQUFXLENBOEJqQixNQUFNLEFBQUEsTUFBTSxDQUFDLFVBQVU7QUE5QnpCLFFBQVEsQUFBQSxXQUFXLENBK0JqQixNQUFNLEFBQUEsVUFBVSxDQUFDLFVBQVU7QUEvQjdCLFFBQVEsQUFBQSxXQUFXLENBZ0NqQixnQkFBZ0IsQUFBQSxNQUFNLENBQUMsVUFBVTtBQWhDbkMsUUFBUSxBQUFBLFdBQVcsQ0FpQ2pCLGdCQUFnQixBQUFBLFVBQVUsQ0FBQyxVQUFVO0FBakN2QyxRQUFRLEFBQUEsV0FBVyxDQWtDakIsZUFBZSxBQUFBLE1BQU0sQ0FBQyxVQUFVO0FBbENsQyxRQUFRLEFBQUEsV0FBVyxDQW1DakIsZUFBZSxBQUFBLFlBQVksQ0FBQyxVQUFVO0FBbkN4QyxRQUFRLEFBQUEsV0FBVyxDQW9DakIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxnQkFBZ0I7QUFwQy9CLFFBQVEsQUFBQSxXQUFXLENBcUNqQixNQUFNLEFBQUEsTUFBTSxDQUFDLGdCQUFnQjtBQXJDL0IsUUFBUSxBQUFBLFdBQVcsQ0FzQ2pCLE1BQU0sQUFBQSxVQUFVLENBQUMsZ0JBQWdCO0FBdENuQyxRQUFRLEFBQUEsV0FBVyxDQXVDakIsZ0JBQWdCLEFBQUEsTUFBTSxDQUFDLGdCQUFnQjtBQXZDekMsUUFBUSxBQUFBLFdBQVcsQ0F3Q2pCLGdCQUFnQixBQUFBLFVBQVUsQ0FBQyxnQkFBZ0I7QUF4QzdDLFFBQVEsQUFBQSxXQUFXLENBeUNqQixlQUFlLEFBQUEsTUFBTSxDQUFDLGdCQUFnQjtBQXpDeEMsUUFBUSxBQUFBLFdBQVcsQ0EwQ2pCLGVBQWUsQUFBQSxZQUFZLENBQUMsZ0JBQWdCO0FBekM5QyxRQUFRLENBQUMsV0FBVyxDQTRCbEIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxVQUFVO0FBNUJ6QixRQUFRLENBQUMsV0FBVyxDQTZCbEIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxVQUFVO0FBN0J6QixRQUFRLENBQUMsV0FBVyxDQThCbEIsTUFBTSxBQUFBLFVBQVUsQ0FBQyxVQUFVO0FBOUI3QixRQUFRLENBQUMsV0FBVyxDQStCbEIsZ0JBQWdCLEFBQUEsTUFBTSxDQUFDLFVBQVU7QUEvQm5DLFFBQVEsQ0FBQyxXQUFXLENBZ0NsQixnQkFBZ0IsQUFBQSxVQUFVLENBQUMsVUFBVTtBQWhDdkMsUUFBUSxDQUFDLFdBQVcsQ0FpQ2xCLGVBQWUsQUFBQSxNQUFNLENBQUMsVUFBVTtBQWpDbEMsUUFBUSxDQUFDLFdBQVcsQ0FrQ2xCLGVBQWUsQUFBQSxZQUFZLENBQUMsVUFBVTtBQWxDeEMsUUFBUSxDQUFDLFdBQVcsQ0FtQ2xCLE1BQU0sQUFBQSxNQUFNLENBQUMsZ0JBQWdCO0FBbkMvQixRQUFRLENBQUMsV0FBVyxDQW9DbEIsTUFBTSxBQUFBLE1BQU0sQ0FBQyxnQkFBZ0I7QUFwQy9CLFFBQVEsQ0FBQyxXQUFXLENBcUNsQixNQUFNLEFBQUEsVUFBVSxDQUFDLGdCQUFnQjtBQXJDbkMsUUFBUSxDQUFDLFdBQVcsQ0FzQ2xCLGdCQUFnQixBQUFBLE1BQU0sQ0FBQyxnQkFBZ0I7QUF0Q3pDLFFBQVEsQ0FBQyxXQUFXLENBdUNsQixnQkFBZ0IsQUFBQSxVQUFVLENBQUMsZ0JBQWdCO0FBdkM3QyxRQUFRLENBQUMsV0FBVyxDQXdDbEIsZUFBZSxBQUFBLE1BQU0sQ0FBQyxnQkFBZ0I7QUF4Q3hDLFFBQVEsQ0FBQyxXQUFXLENBeUNsQixlQUFlLEFBQUEsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0VBQzNDLE1BQU0sRXZEMUdJLE9BQU8sQ3VEMEdGLFVBQVUsR0FDMUI7O0FDM0dILEFBQUEsY0FBYyxBQUFBLE9BQU87QUFDckIsVUFBVSxDQUFDO0VBQ1QsVUFBVSxFeERGRSxPQUFPLEN3REVLLFVBQVU7RUFDbEMsS0FBSyxFckQ0SkcsSUFBSSxDcUQ1SkUsVUFBVSxHQUN6Qjs7QUNSRCxBQUFBLFNBQVMsQUFBQSxjQUFjLENBQUM7RUFDdEIsWUFBWSxFekRHQSxPQUFPLEN5REhHLFVBQVUsR0FDakM7O0FDRkQsQUFBQSx5QkFBeUIsQUFBQSxnQ0FBZ0M7QUFDekQsa0JBQWtCLEFBQUEsOEJBQThCLENBQUMsbUNBQW1DLENBQUM7RUFDbkYsVUFBVSxFMURFRSxPQUFPLEMwREZLLFVBQVUsR0FDbkM7O0FDSEQsQUFBQSxXQUFXLEFBQUEsa0JBQWtCO0FBQzdCLFdBQVcsQUFBQSxpQkFBaUIsQ0FBQyxTQUFTO0FBQ3RDLFdBQVcsQUFBQSxRQUFRLENBQUMsUUFBUTtBQUM1QixXQUFXLEFBQUEsbUJBQW1CLENBQUMsUUFBUTtBQUN2QyxXQUFXLEFBQUEsaUJBQWlCO0FBQzVCLFdBQVcsQUFBQSxnQkFBZ0IsQ0FBQyxTQUFTO0FBQ3JDLFdBQVcsQUFBQSxnQkFBZ0IsQ0FBQyxTQUFTO0FBQ3JDLFdBQVcsQUFBQSxVQUFVLENBQUMsU0FBUyxBQUFBLE9BQU87QUFDdEMsV0FBVyxBQUFBLGFBQWEsQ0FBQyxRQUFRO0FBQ2pDLFdBQVcsQUFBQSxpQkFBaUIsQ0FBQyxVQUFVLEFBQUEsT0FBTztBQUM5QyxXQUFXLEFBQUEsZ0JBQWdCLENBQUMsUUFBUSxBQUFBLE9BQU8sQ0FBQztFQUMxQyxnQkFBZ0IsRTNEUEosT0FBTyxHMkRRcEI7O0FDWkQsQUFBQSxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsRUFBRSxBQUFBLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUTtBQUN2RCxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsRUFBRSxBQUFBLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO0VBQ3hELEtBQUssRTVERU8sT0FBTztFNEREbkIsWUFBWSxFNURDQSxPQUFPLEc0REFwQjs7QUNBRCxBQUFBLEtBQUssQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLENBQWEsZ0JBQWdCLENBQUM7RUFDeEMsVUFBVSxFN0RERSxPQUFPLEM2RENLLFVBQVUsR0FDbkM7O0FBRUQsQUFDRSxLQURHLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQUFhLE9BQU8sQUFDN0Isc0JBQXNCLENBQUM7RUFDdEIsVUFBVSxFN0ROQSxPQUFPLEM2RE1PLFVBQVUsR0FDbkM7O0FBSEgsQUFJRSxLQUpHLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQUFhLE9BQU8sQUFJN0Isa0JBQWtCLENBQUM7RUFDbEIsVUFBVSxFN0RUQSxPQUFPLEM2RFNPLFVBQVUsR0FDbkM7O0FBTkgsQUFPRSxLQVBHLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQUFhLE9BQU8sQUFPN0IsV0FBVyxDQUFDO0VBQ1gsVUFBVSxFN0RaQSxPQUFPLEM2RFlPLFVBQVUsR0FDbkM7O0FBR0gsQUFBQSxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQUFBQSxVQUFVLEFBQUEsTUFBTTtBQUNuRCxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQUFBQSxNQUFNLENBQUM7RUFDeEMsVUFBVSxFN0RsQkUsT0FBTyxDNkRrQkssVUFBVTtFQUNsQyxLQUFLLEUxRDRJRyxJQUFJLEMwRDVJRSxVQUFVLEdBQ3pCOztBQUVELEFBQUEsWUFBWSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEFBQUEsVUFBVSxBQUFBLE1BQU07QUFDbkQsWUFBWSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEFBQUEsTUFBTSxDQUFDO0VBQ3hDLFVBQVUsRTdEeEJFLE9BQU8sQzZEd0JLLFVBQVU7RUFDbEMsS0FBSyxFMURzSUcsSUFBSSxDMER0SUUsVUFBVSxHQUN6Qjs7QUFFRCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLFVBQVUsRTdEN0JFLE9BQU8sQzZENkJLLFVBQVU7RUFDbEMsS0FBSyxFMURpSUcsSUFBSSxDMERqSUUsVUFBVSxHQUN6Qjs7QUFFRCxBQUFBLHVCQUF1QjtBQUN2QixzQkFBc0IsQ0FBQztFQUNyQixLQUFLLEU3RG5DTyxPQUFPLEM2RG1DQSxVQUFVLEdBQzlCOztBQzFCRCxBQUFBLFNBQVMsQ0FBQztFQUNSLFVBQVUsRTlEWEUsd0JBQU8sQzhEVzRCLFVBQVUsR0FDMUQ7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDWixVQUFVLEU5RGZFLHVCQUFPLEM4RGVnQyxVQUFVLEdBQzlEOztBQUVELEFBQUEsYUFBYTtBQUNiLFdBQVcsQUFBQSxJQUFLLENBQUEsZUFBZSxFQUFFO0VBQy9CLFVBQVUsRTlEcEJFLE9BQU8sQzhEb0JLLFVBQVUsR0FDbkM7O0FDckJELEFBQUEscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTyxvQkFBb0IsQUFBQSwyQkFBMkI7QUFDNUUscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTyx5QkFBeUI7QUFDdEQscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTywyQkFBMkI7QUFDeEQscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTyxvQkFBb0IsQ0FBQztFQUNoRCxVQUFVLEUvREpFLE9BQU87RStES25CLEtBQUssRTVEMEpHLElBQUksRzREekpiOztBQUVELEFBQUEscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTyxvQkFBb0IsQUFBQSwyQkFBMkIsR0FBRyxvQkFBb0I7QUFDbkcscUJBQXFCLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTyxvQkFBb0IsQUFBQSwyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQztFQUN2RyxVQUFVLEU1RHlIRixPQUFtQyxHNER4SDVDOztBQ2ZELEFBQUEsaUJBQWlCLEFBQUEsT0FBTyxDQUFDO0VBQ3ZCLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ2hFR3pCLE9BQU8sQ2dFSCtCLFVBQVUsR0FDN0Q7O0F4Qm01Q0QsQUFBQSxnQkFBZ0IsQ0FBTDtFQUNULGdCQUFnQixFeENqNENnQyxJQUFJLEN3Q2k0Q2IsVUFBVTtFQUNqRCxLQUFLLEVyQ2h4Q0csT0FBbUMsR3FDdTBDNUM7RUF6REQsQUFJRSxnQkFKYyxDQUlkLGFBQWEsQ0FBQztJQUNaLEtBQUssRW5DNzJDUSxPQUFPLEdtQ2szQ3JCO0lBVkgsQTdCdDRDQSxnQjZCczRDZ0IsQ0FJZCxhQUFhLEE3QjE0Q2QsTUFBTSxFNkJzNENQLGdCQUFnQixDQUlkLGFBQWEsQTdCejRDZCxNQUFNLENBQUM7TTZCNjRDRixLQUFLLEVuQ2gzQ00sT0FBTyxHTTNCdkI7RTZCbTRDRCxBQWFJLGdCQWJZLENBWWQsV0FBVyxDQUNULFNBQVMsQ0FBQztJQUNSLEtBQUssRXJDNXhDRCxPQUFtQyxHcUNxeUN4QztJQXZCTCxBN0J0NENBLGdCNkJzNENnQixDQVlkLFdBQVcsQ0FDVCxTQUFTLEE3Qm41Q1osTUFBTSxFNkJzNENQLGdCQUFnQixDQVlkLFdBQVcsQ0FDVCxTQUFTLEE3Qmw1Q1osTUFBTSxDQUFDO002QnM1Q0EsS0FBSyxFbkN6M0NJLE9BQU8sR00zQnZCO0k2Qm00Q0QsQUFvQk0sZ0JBcEJVLENBWWQsV0FBVyxDQUNULFNBQVMsQUFPTixTQUFTLENBQUM7TUFDVCxLQUFLLEVyQ255Q0gsT0FBbUMsQ3FDbXlDRyxVQUFVLEdBQ25EO0VBdEJQLEFBeUJJLGdCQXpCWSxDQVlkLFdBQVcsQ0FhVCxLQUFLLEdBQUcsU0FBUztFQXpCckIsZ0JBQWdCLENBWWQsV0FBVyxDQWNULE9BQU8sR0FBRyxTQUFTO0VBMUJ2QixnQkFBZ0IsQ0FZZCxXQUFXLENBZVQsU0FBUyxBQUFBLEtBQUs7RUEzQmxCLGdCQUFnQixDQVlkLFdBQVcsQ0FnQlQsU0FBUyxBQUFBLE9BQU8sQ0FBQztJQUNmLEtBQUssRW5DcjRDTSxPQUFPLEdtQ3M0Q25CO0VBOUJMLEFBaUNFLGdCQWpDYyxDQWlDZCxlQUFlLENBQUM7SUFDZCxLQUFLLEVyQ2h6Q0MsT0FBbUM7SXFDaXpDekMsWUFBWSxFbkMzNENDLHVCQUFPLEdtQzQ0Q3JCO0VBcENILEFBc0NFLGdCQXRDYyxDQXNDZCxvQkFBb0IsQ0FBQztJQUNuQixnQkFBZ0IsRWxDNXRCMEIseU9BQTBPLEdrQzZ0QnJSO0VBeENILEFBMENFLGdCQTFDYyxDQTBDZCxZQUFZLENBQUM7SUFDWCxLQUFLLEVyQ3p6Q0MsT0FBbUMsR3FDazBDMUM7SUFwREgsQUE2Q0ksZ0JBN0NZLENBMENkLFlBQVksQ0FHVixDQUFDLENBQUM7TUFDQSxLQUFLLEVuQ3Q1Q00sT0FBTyxHbUMyNUNuQjtNQW5ETCxBN0J0NENBLGdCNkJzNENnQixDQTBDZCxZQUFZLENBR1YsQ0FBQyxBN0JuN0NKLE1BQU0sRTZCczRDUCxnQkFBZ0IsQ0EwQ2QsWUFBWSxDQUdWLENBQUMsQTdCbDdDSixNQUFNLENBQUM7UTZCczdDQSxLQUFLLEVuQ3o1Q0ksT0FBTyxHTTNCdkI7RTZCbTRDRCxBQXNERSxnQkF0RGMsQ0FzRGQsRUFBRSxDQUFDO0lBQ0QsWUFBWSxFbkMvNUNDLHVCQUFPLEdtQ2c2Q3JCOztBeEN0N0NMLEFBQUEsY0FBYyxDQUFDO0VBQ2IsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDS2xCTixzQkFBTyxHTG1CckI7O0F3Q3E4Q0MsQUFBQSxpQkFBaUIsQ0FBTjtFQUNULGdCQUFnQixFeENsOENrQyxPQUFPLEN3Q2s4Q2xCLFVBQVU7RUFDakQsS0FBSyxFeENuOEM4RCxPQUFPLEd3Q3FoRDNFO0VBcEZELEFBSUUsaUJBSmUsQ0FJZixhQUFhO0VBSmYsaUJBQWlCLENBS2Ysd0JBQXdCO0VBTDFCLGlCQUFpQixDQU1mLHdCQUF3QixDQUFDO0lBQ3ZCLEtBQUssRXhDeDhDNEQsT0FBTyxHd0NpOUN6RTtJQWhCSCxBN0IvOENBLGlCNkIrOENpQixDQUlmLGFBQWEsQTdCbjlDZCxNQUFNLEU2Qis4Q1AsaUJBQWlCLENBSWYsYUFBYSxBN0JsOUNkLE1BQU07STZCODhDUCxpQkFBaUIsQ0FLZix3QkFBd0IsQTdCcDlDekIsTUFBTTtJNkIrOENQLGlCQUFpQixDQUtmLHdCQUF3QixBN0JuOUN6QixNQUFNO0k2Qjg4Q1AsaUJBQWlCLENBTWYsd0JBQXdCLEE3QnI5Q3pCLE1BQU07STZCKzhDUCxpQkFBaUIsQ0FNZix3QkFBd0IsQTdCcDlDekIsTUFBTSxDQUFDO002Qnc5Q0YsS0FBSyxFckNyMENELElBQUksR1FqSmI7STZCNDhDRCxBQWFJLGlCQWJhLENBSWYsYUFBYSxBQVNWLE9BQU87SUFiWixpQkFBaUIsQ0FLZix3QkFBd0IsQUFRckIsT0FBTztJQWJaLGlCQUFpQixDQU1mLHdCQUF3QixBQU9yQixPQUFPLENBQUM7TUFDUCxLQUFLLEVyQ3owQ0QsSUFBSSxHcUMwMENUO0VBZkwsQUFrQkUsaUJBbEJlLENBa0JmLGFBQWEsQUFBQSxTQUFTLENBQUMsYUFBYTtFQWxCdEMsaUJBQWlCLENBbUJmLHdCQUF3QixBQUFBLFNBQVM7RUFuQm5DLGlCQUFpQixDQW9CZix3QkFBd0IsQUFBQSxTQUFTLENBQUM7SUFDaEMsS0FBSyxFckM1MkNDLE9BQW1DLENxQzQyQ0QsVUFBVSxHQUNuRDtFQXRCSCxBQXdCRSxpQkF4QmUsQ0F3QmYsYUFBYSxBQUFBLEtBQUssQUFBQSxJQUFLLENBQUEscUJBQXFCLElBQUksZUFBZTtFQXhCakUsaUJBQWlCLENBeUJmLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxDQUFDO0lBQ25DLEtBQUssRXJDcjFDQyxJQUFJLEdxQ3MxQ1g7RUEzQkgsQUE2QkUsaUJBN0JlLENBNkJmLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxBQUFBLElBQUssQ0FBQSxlQUFlLEVBQUU7SUFDeEQsZ0JBQWdCLEVyQ3IzQ1YsT0FBbUMsR3FDczNDMUM7RUEvQkgsQUFpQ0UsaUJBakNlLEFBaUNkLG1CQUFtQixDQUFDLGFBQWEsR0FBRyxhQUFhLEFBQUEsT0FBTyxHQUFHLGFBQWEsQUFBQSxJQUFLLENBQUEsZUFBZSxFQUFFO0lBQzdGLGdCQUFnQixFckN6M0NWLE9BQW1DLEdxQzAzQzFDO0VBbkNILEFBcUNFLGlCQXJDZSxBQXFDZCxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsYUFBYSxBQUFBLElBQUssQ0FBQSxxQkFBcUIsSUFBSSxhQUFhO0VBckNoRyxpQkFBaUIsQUFzQ2QsbUJBQW1CLENBQUMsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQ3pFLFVBQVUsRXJDOTNDSixPQUFtQyxHcUMrM0MxQztFQXhDSCxBQTBDRSxpQkExQ2UsQ0EwQ2YsY0FBYyxHQUFHLGFBQWEsQUFBQSxxQkFBcUIsQ0FBQyxhQUFhLEFBQUEsS0FBSyxDQUFDLGFBQWE7RUExQ3RGLGlCQUFpQixDQTJDZixjQUFjLEdBQUcsYUFBYSxBQUFBLHFCQUFxQixDQUFDLGFBQWEsQUFBQSxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3JGLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEtBQUssRXhDOStDNEQsT0FBTyxHd0MrK0N6RTtFQTlDSCxBQWdERSxpQkFoRGUsQ0FnRGYsYUFBYSxDQUFDO0lBQ1osS0FBSyxFckM1MkNDLElBQUksR3FDNjJDWDtFQWxESCxBQW9ERSxpQkFwRGUsQ0FvRGYsZUFBZSxDQUFDO0lBQ2QsS0FBSyxFckM1NENDLE9BQW1DLEdxQzY0QzFDO0VBdERILEFBd0RFLGlCQXhEZSxDQXdEZixFQUFFO0VBeERKLGlCQUFpQixDQXlEZixnQkFBZ0I7RUF6RGxCLGlCQUFpQixDQTBEZixjQUFjLEdBQUcsYUFBYSxBQUFBLEtBQUssR0FBRyxhQUFhLEFBQUEsUUFBUSxDQUFDO0lBQzFELFlBQVksRXJDdDNDTix5QkFBSSxDcUNzM0M2QixVQUFVLEdBQ2xEO0VBNURILEFBOERFLGlCQTlEZSxDQThEZixjQUFjLEdBQUcsZUFBZSxBQUFBLFFBQVE7RUE5RDFDLGlCQUFpQixDQStEZixjQUFjLEFBQUEsUUFBUSxDQUFDO0lBQ3JCLGdCQUFnQixFckMzM0NWLHlCQUFJLEdxQzQzQ1g7RUFqRUgsQUFtRUUsaUJBbkVlLENBbUVmLGNBQWMsR0FBRyxhQUFhLEFBQUEsS0FBSyxDQUFDLGFBQWEsQUFBQSxLQUFLLEdBQUcsZUFBZSxBQUFBLFFBQVEsQ0FBQztJQUMvRSxnQkFBZ0IsRXJDMzVDVixPQUFtQyxHcUM0NUMxQztFQXJFSCxBQXVFRSxpQkF2RWUsQ0F1RWYsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLENBQUMsYUFBYSxBQUFBLE9BQU8sR0FBRyxhQUFhLEFBQUEsUUFBUSxDQUFDO0lBQy9FLGdCQUFnQixFckNuNENWLElBQUksR3FDbzRDWDtFQXpFSCxBQTJFRSxpQkEzRWUsQ0EyRWYsY0FBYyxHQUFHLGFBQWEsQUFBQSxLQUFLLENBQUMsYUFBYSxBQUFBLEtBQUssR0FBRyxlQUFlLEFBQUEsUUFBUTtFQTNFbEYsaUJBQWlCLENBNEVmLGNBQWMsR0FBRyxhQUFhLEFBQUEsS0FBSyxDQUFDLGFBQWEsQUFBQSxPQUFPLEdBQUcsYUFBYSxBQUFBLFFBQVEsQ0FBQztJQUMvRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDckNwNkNmLE9BQW1DLEdxQ3E2QzFDO0VBOUVILEFBZ0ZFLGlCQWhGZSxDQWdGZixZQUFZO0VBaEZkLGlCQUFpQixDQWlGZixXQUFXLEFBQUEsYUFBYSxHQUFHLFlBQVksQ0FBQztJQUN0QyxVQUFVLEVyQzc0Q0osNkJBQUksQ3FDNjRDK0gsVUFBVSxHQUNwSjs7QUFVSCxBQUFBLGdCQUFnQixDQUFMO0VBQ1QsZ0JBQWdCLEV4QzNoRGdDLElBQUksQ3dDMmhEYixVQUFVO0VBQ2pELEtBQUssRXJDdDdDRyxPQUFtQyxHcUNrOUM1QztFQTlCRCxBQUlFLGdCQUpjLENBSWQsWUFBWSxDQUFDO0lBQ1gsS0FBSyxFckN6N0NDLE9BQW1DLEdxQ2s4QzFDO0lBZEgsQTdCNWlEQSxnQjZCNGlEZ0IsQ0FJZCxZQUFZLEE3QmhqRGIsTUFBTSxFNkI0aURQLGdCQUFnQixDQUlkLFlBQVksQTdCL2lEYixNQUFNLENBQUM7TTZCbWpERixLQUFLLEVuQ3RoRE0sT0FBTyxHTTNCdkI7STZCeWlERCxBQVdJLGdCQVhZLENBSWQsWUFBWSxBQU9ULFNBQVMsQ0FBQztNQUNULEtBQUssRXJDaDhDRCxPQUFtQyxDcUNnOENDLFVBQVUsR0FDbkQ7RUFiTCxBQWdCRSxnQkFoQmMsQ0FnQmQsWUFBWSxDQUFDO0lBQ1gsS0FBSyxFbkMvaERRLE9BQU8sR21DZ2lEckI7RUFsQkgsQUFvQkUsZ0JBcEJjLENBb0JkLEtBQUssR0FBRyxZQUFZO0VBcEJ0QixnQkFBZ0IsQ0FxQmQsT0FBTyxHQUFHLFlBQVk7RUFyQnhCLGdCQUFnQixDQXNCZCxZQUFZLEFBQUEsS0FBSztFQXRCbkIsZ0JBQWdCLENBdUJkLFlBQVksQUFBQSxPQUFPLENBQUM7SUFDbEIsS0FBSyxFbkN0aURRLE9BQU8sR21DdWlEckI7RUF6QkgsQUEyQkUsZ0JBM0JjLENBMkJkLEVBQUUsQ0FBQztJQUNELFlBQVksRW5DMWlEQyx1QkFBTyxHbUMyaURyQiJ9 */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvci9jc3MvdGhlbWUtY29ycG9yYXRlLmNzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtZW1waGFzaXMuc2NzcyIsInZlbmRvci9jc3MvX2FwcHdvcmsvX21peGlucy5zY3NzIiwidmVuZG9yL2Nzcy90aGVtZS1jb3Jwb3JhdGUuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1zbGlkZXIvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvc2VsZWN0Mi9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9ib290c3RyYXAtc2VsZWN0L19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1kYXRlcGlja2VyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3F1aWxsL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3N3aXBlci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvbGlicy9zcGlua2l0L19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3NtYXJ0d2l6YXJkL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3BseXIvX21peGlucy5zY3NzIiwidmVuZG9yL2xpYnMvZnVsbGNhbGVuZGFyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL3N3ZWV0YWxlcnQyL19taXhpbnMuc2NzcyIsInZlbmRvci9jc3MvX2FwcHdvcmsvX2Z1bmN0aW9ucy5zY3NzIiwidmVuZG9yL2Nzcy9fdGhlbWUvX3Vpa2l0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwidmVuZG9yL2xpYnMvZmxhdHBpY2tyL19taXhpbnMuc2NzcyIsInZlbmRvci9saWJzL2Jvb3RzdHJhcC1tYXRlcmlhbC1kYXRldGltZXBpY2tlci9fbWl4aW5zLnNjc3MiLCJ2ZW5kb3IvY3NzL190aGVtZS9fY29tbW9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUE7RUNDSyxtQkFKUSxFQUFBOztBQzJJWDtFQUFhLDhCQUF5QixFQUFBOztBRjNJdEM7RUNBQSx5QkFBVyxFQUFBOztBQzZJYztFRnZJbkIseUJBQTBFLEVBQUE7O0FBcUloRjtFRThpQjRGLG9DQUFpQyxFQUFBOztBQTVpQnBHO0VDN0lYLG9DRDByQnFILEVBQUE7O0FGL2lCbkk7RUU4aUI0RixvQ0FBaUMsRUFBQTs7QUE1aUJwRztFQzdJWCxvQ0QwckJxSCxFQUFBOztBRi9pQm5JO0VFOGlCNEYsb0NBQWlDLEVBQUE7O0FBNWlCcEc7RUM3SVgsb0NEMHJCcUgsRUFBQTs7QUQxckJuSTtFQUFXLGdDQUFBLEVBQUE7O0FHaUJYO0VBQUEseUJKakJxQjtFSURuQixXRmlLUyxFQUFBOztBQW5CYztFRzdIekIseUJIOHBCMkI7RUc1cEJ2QixXSDhJTztFRzdJUCxxQkFDRCxFQUFBOztBQUlDO0VMK1lGLDhCQUEwQjtFS3ZhNUIsZ0NBQUE7RUFDRSxzQkZEbUIsRUFBQTs7QUg4YXJCO0VNOWFBLDZCQUFnQztFQUM5QixtQ0FBa0M7RUFDbEMsY05GbUIsRUFBQTs7QUU2SUk7RUtuSXJCLGNQVmlCO0VPV2pCLHFCQUNELEVBQUE7O0FBTUM7RUFoQkosd0NBQUE7RUFtQk0sOENBQ0Q7RUFwQkwseUJBQXVCLEVBQUE7O0FQZ0J2Qjs7OztFUThDQSxxQlJoRXFCO0VRZ0VyQix5QlJoRXFCO0VRZ0VyQixXTmdHVyxFQUFBOztBTWpHWDtFQUFBLHlCUi9EcUI7RVErRHJCLFdOaUdXLEVBQUE7O0FNaEdYO0VBQUEsaUNBcUJFO0VBckJGLHlCTjhtQjJCO0VNOW1CM0IsY044bUIyQixFQUFBOztBRnJHM0I7O0VRMWdCQSxjTittQjJCLEVBQUE7RUFqaUJGOzs7SU05RXpCLHlCTittQjJCO0lNL21CM0IsY04rbUIyQixFQUFBO0VGckczQjs7SVExZ0JBLHFCUi9EcUI7SVErRHJCLHlCUi9EcUI7SVErRHJCLGNOK21CMkIsRUFBQTs7QUY1cEIzQjtFUThDQSxxQlJoRXFCO0VRZ0VyQix5QlJoRXFCO0VRZ0VyQixXTmdHVyxFQUFBOztBT3BLWDtFQUNBLHFCUGlyQjJCO0VPaHJCekIseUJQZ3JCeUI7RUYzRHpCLGNFMkR5QixFQUFBO0VPbHJCM0I7SUNFQSx5QlJnckIyQixFQUFBO0VPbHJCM0I7SUNNQSxjUjRxQjJCLEVBQUE7O0FTanJCM0I7RUFDRSx5QlhFbUI7RVdEbkIsV1RpS1MsRUFBQTtFU25LWDtJQ0lFLDBDVitKUyxFQUFBO0VTbktYOztJQ09NLFdWNEpLLEVBQUE7O0FVN0lUO0VBR0YsbUJadEJxQjtFWXVCckIsV1Z5SVcsRUFBQTs7QVU3SVQ7RVp3b0J3Rix5QkEzcEJyRSxFQUFBOztBWW1CbkI7RUFTZ0IsMkJaNUJHLEVBQUE7O0FZbUJuQjtFQVVrQyw0Qlo3QmYsRUFBQTs7QVltQm5CO0VBWUQsMEJaL0JvQixFQUFBOztBYWVuQjtFYjBwQkEseUJBQXlCO0VhdnBCM0IsbUJibEJxQixFQUFBO0VhZW5CO0liOHBCRSxzQ0U3Z0JPO0lZaEtYLHVCQUE2QjtJQUM3QixXWitKVyxFQUFBO0VXakpUO0lDVkEsdUJBQ0Q7SWQ4cUJHLFdFcGhCTyxFQUFBO0VXakpUO0lFb0gyQyx5QkR4SDVDLEVBQUE7RURJQztJR25CdUIseUJoQklKLEVBQUE7RWFlbkI7SUdqQkQsMkJoQkVvQixFQUFBO0VhZW5CO0liNHFCZ0csNEJBM3JCN0UsRUFBQTtFYWVuQjtJWGs0Q1MsMEJGajVDVSxFQUFBOztBQTQzQ3JCOzs7RUFHRSw2Q0FBeUM7RUFDekMseUJFbHRCeUI7RUZtdEJ6QixjRW50QnlCLEVBQUE7O0FGc3RCM0I7OztFQUdFLHlCRXp0QnlCLEVBQUE7O0FBN2dCekI7RUFDQSx5QmEvQjJDO0ViZ0MzQyxtQkZuS21CO0VpQk9yQixXZnlKVyxFQUFBO0VBckJYO0lBcUJBLHlCYTdCNkM7SWIyQ3pDLG1CQWdnQnVCO0lBOWdCM0IsV0FBVyxFQUFBO0VBQ1Q7SUZhRSw2Q0E5S2lCLEVBQUE7RUVpS25CO0lBOEJGLG9DQUFtQjtJQUNuQiw4QkFBbUI7SUFDZCwyQkFBZTtJQUNsQixzQmFpQndCLEVBQUE7O0FiTjFCO0VBQ0EsZ0JBOUNXO0VBK0NY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cEJ5OUNuRTs7O0lBT0ksY29CaCtDK0QsRUFBQTtJbEI0STFDOzs7OztNRnUxQ25CLFdFcDBDSyxFQUFBO0lGMHpDWDs7O01BY00sV0V4MENLLEVBQUE7RUYwekNYOzs7SUFxQkkseUJBQWtELEVBQUE7RUFyQnREOztJQTBCSSxXRXAxQ08sRUFBQTtFRjB6Q1g7SUE4QkkseUJFMTBCdUIsRUFBQTtFRjR5QjNCO0lBa0NJLHlCRTkwQnVCLEVBQUE7RUY0eUIzQjs7SUF1Q0ksbUJFbjFCdUIsRUFBQTtFRjR5QjNCOztJQTRDSSx1QkFBdUI7SUFDdkIsY29CdGdEK0QsRUFBQTtFcEJ5OUNuRTtJQWlESSxXRTMyQ08sRUFBQTtFRjB6Q1g7SUFxREksY0VqMkJ1QixFQUFBO0VGNHlCM0I7OztJQTJESSxrREFBaUQsRUFBQTtFQTNEckQ7O0lBZ0VJLDJDRTEzQ08sRUFBQTtFRjB6Q1g7SUFvRUkseUJFaDNCdUIsRUFBQTtFRjR5QjNCO0lBd0VJLHNCRWw0Q08sRUFBQTtFRjB6Q1g7O0lBNkVJLDZCRXozQnVCLEVBQUE7RUY0eUIzQjs7SUFrRkksb0RBQW1KLEVBQUE7O0FBV3ZKO0VBQ0UsaUNBQWlEO0VBQ2pELGNFMzRCeUIsRUFBQTtFRnk0QjNCO0lBS0ksY0U5NEJ1QixFQUFBO0lBamlCRjtNRms3Q25CLGNBdGhEa0IsRUFBQTtJQThnRHhCO01BWU0seUJBQWtELEVBQUE7RUFaeEQ7SUFpQkksY0EvaERvQixFQUFBO0VBOGdEeEI7Ozs7SUF3QkksY0F0aURvQixFQUFBO0VBOGdEeEI7SUE0QkkscUNBMWlEb0IsRUFBQTs7QUFrd0IxQix5bDFUQUF5bDFUIiwiZmlsZSI6InZlbmRvci9jc3MvdGhlbWUtY29ycG9yYXRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuL19hcHB3b3JrL2luY2x1ZGVcIjtcbkBpbXBvcnQgXCIuL190aGVtZS9jb21tb25cIjtcbkBpbXBvcnQgXCIuL190aGVtZS9saWJzXCI7XG5AaW1wb3J0IFwiLi9fdGhlbWUvdWlraXRcIjtcblxuJHByaW1hcnktY29sb3I6ICMyNkI0RkY7XG4kYm9keS1iZzogI2Y1ZjVmNTtcblxuYm9keSB7XG4gIGJhY2tncm91bmQ6ICRib2R5LWJnO1xufVxuXG4uYmctYm9keSB7XG4gIGJhY2tncm91bmQ6ICRib2R5LWJnICFpbXBvcnRhbnQ7XG59XG5cbkBpbmNsdWRlIGFwcHdvcmstY29tbW9uLXRoZW1lKCRwcmltYXJ5LWNvbG9yKTtcbkBpbmNsdWRlIGFwcHdvcmstbGlicy10aGVtZSgkcHJpbWFyeS1jb2xvcik7XG5AaW5jbHVkZSBhcHB3b3JrLXVpa2l0LXRoZW1lKCRwcmltYXJ5LWNvbG9yKTtcblxuLy8gTmF2YmFyXG5cbkBpbmNsdWRlIGFwcHdvcmstbmF2YmFyLXZhcmlhbnQoJy5iZy1uYXZiYXItdGhlbWUnLCAjZmZmLCAkY29sb3I6ICR0ZXh0LW11dGVkLCAkYWN0aXZlLWNvbG9yOiAkYm9keS1jb2xvcik7XG5cbi5sYXlvdXQtbmF2YmFyIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMCAkYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBTaWRlbmF2XG5cbkBpbmNsdWRlIGFwcHdvcmstc2lkZW5hdi12YXJpYW50KCcuYmctc2lkZW5hdi10aGVtZScsICMyZTMyM2EsICRjb2xvcjogIzgzODc5MCk7XG5cbi8vIEZvb3RlclxuXG5AaW5jbHVkZSBhcHB3b3JrLWZvb3Rlci12YXJpYW50KCcuYmctZm9vdGVyLXRoZW1lJywgI2ZmZiwgJGNvbG9yOiAkdGV4dC1tdXRlZCwgJGFjdGl2ZS1jb2xvcjogJGJvZHktY29sb3IpO1xuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIFR5cG9ncmFwaHlcblxuQG1peGluIHRleHQtZW1waGFzaXMtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkZW1waGFzaXplZC1saW5rLWhvdmVyLWRhcmtlbi1wZXJjZW50YWdlICE9IDAge1xuICAgIGEjeyRwYXJlbnR9IHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkY29sb3IsICRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2UpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBNaXhpbnNcbi8vXG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogUlRML0xUUlxuXG5AbWl4aW4gbHRyLW9ubHkoKSB7XG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIGh0bWw6bm90KFtkaXI9cnRsXSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcnRsLW9ubHkoKSB7XG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIFtkaXI9cnRsXSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGx0ci1zdHlsZSgpIHtcbiAgQGlmICRydGwtc3VwcG9ydCB7XG4gICAgaHRtbDpub3QoW2Rpcj1ydGxdKSAmIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHJ0bC1zdHlsZSgpIHtcbiAgQGlmICRydGwtc3VwcG9ydCB7XG4gICAgW2Rpcj1ydGxdICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogS2V5ZnJhbWVzXG5cbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQ2FyZXRzXG5cbkBtaXhpbiBjYXJldC1kb3duIHtcbiAgbWFyZ2luLXRvcDogLTEgKiAoJGNhcmV0LXdpZHRoIC8gMS41KTtcbiAgd2lkdGg6ICRjYXJldC13aWR0aDtcbiAgaGVpZ2h0OiAkY2FyZXQtd2lkdGg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG5AbWl4aW4gY2FyZXQtdXAge1xuICBtYXJnaW4tdG9wOiAtMDtcbiAgd2lkdGg6ICRjYXJldC13aWR0aDtcbiAgaGVpZ2h0OiAkY2FyZXQtd2lkdGg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuQG1peGluIGNhcmV0LXJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogLTEgKiAoJGNhcmV0LXdpZHRoIC8gMik7XG4gIHdpZHRoOiAkY2FyZXQtd2lkdGg7XG4gIGhlaWdodDogJGNhcmV0LXdpZHRoO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbkBtaXhpbiBjYXJldC1sZWZ0IHtcbiAgbWFyZ2luLXRvcDogLTEgKiAoJGNhcmV0LXdpZHRoIC8gMik7XG4gIHdpZHRoOiAkY2FyZXQtd2lkdGg7XG4gIGhlaWdodDogJGNhcmV0LXdpZHRoO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogUmVzcG9uc2l6ZSBsb29wc1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1sb29wLWJlZm9yZSgkcGFyZW50LCAkc3RhcnQtYnJlYWtwb2ludDogc20pIHtcbiAgJGN1ci1icmVha3BvaW50OiAkc3RhcnQtYnJlYWtwb2ludDtcblxuICBAd2hpbGUgJGN1ci1icmVha3BvaW50IHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGN1ci1icmVha3BvaW50KTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAoYnJlYWtwb2ludC1taW4oJGN1ci1icmVha3BvaW50KSAtIDEpKSB7XG4gICAgICAjeyRwYXJlbnR9I3skaW5maXh9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGN1ci1icmVha3BvaW50OiBicmVha3BvaW50LW5leHQoJGN1ci1icmVha3BvaW50KTtcbiAgfVxufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1sb29wLWFmdGVyKCRwYXJlbnQsICRzdGFydC1icmVha3BvaW50OiBzbSkge1xuICAkY3VyLWJyZWFrcG9pbnQ6ICRzdGFydC1icmVha3BvaW50O1xuXG4gIEB3aGlsZSAkY3VyLWJyZWFrcG9pbnQge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkY3VyLWJyZWFrcG9pbnQpO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IGJyZWFrcG9pbnQtbWluKCRjdXItYnJlYWtwb2ludCkpIHtcbiAgICAgICN7JHBhcmVudH0jeyRpbmZpeH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkY3VyLWJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQtbmV4dCgkY3VyLWJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQ29sb3JzXG5cbi8vIENvbnRyYXN0XG5AbWl4aW4gY29sb3IteWlxKCRjb2xvcikge1xuICBjb2xvcjogeWlxKCRjb2xvcik7XG59XG5cbkBtaXhpbiBiZy1jb2xvci12YXJpYW50KCRwYXJlbnQsICRjb2xvciwgJHJ0aC1jb2xvcjogIzAwMCkge1xuICAjeyRwYXJlbnR9IHsgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgYSN7JHBhcmVudH0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYS10by1oZXgocmdiYSgkY29sb3IsIC45NSksICRiYWNrZ3JvdW5kOiAkcnRoLWNvbG9yKSAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuQG1peGluIGJnLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkcnRoLWNvbG9yOiAjMDAwKSB7XG4gIEBpbmNsdWRlIGJnLWNvbG9yLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYmctY29sb3ItdmFyaWFudChcIiN7JHBhcmVudH0tZGFya1wiLCByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjkpLCAkYmFja2dyb3VuZDogJHJ0aC1jb2xvcikpO1xuICBAaW5jbHVkZSBiZy1jb2xvci12YXJpYW50KFwiI3skcGFyZW50fS1kYXJrZXJcIiwgcmdiYS10by1oZXgocmdiYSgkY29sb3IsIC44NSksICRiYWNrZ3JvdW5kOiAkcnRoLWNvbG9yKSk7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQnV0dG9uc1xuXG5AbWl4aW4gYnV0dG9uLXZhcmlhbnQoJGJhY2tncm91bmQ6IG51bGwsICRib3JkZXI6IG51bGwsICRhY3RpdmUtYmFja2dyb3VuZDogbnVsbCwgJGFjdGl2ZS1ib3JkZXI6IG51bGwpIHt9XG5cbkBtaXhpbiBhcHB3b3JrLWJ1dHRvbi12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwpIHtcbiAgJGJ0bi1jb2xvcnM6IGdldC1idG4tY29sb3JzKCRiYWNrZ3JvdW5kLCBpZigkYm9yZGVyLCAkYm9yZGVyLCAkYmFja2dyb3VuZCkpO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJvcmRlcik7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1ib3gtc2hhZG93KTtcbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJvcmRlcik7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1ob3Zlcik7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiBtYXAtZ2V0KCRidG4tY29sb3JzLCBzaGFkb3cpO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQsXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJvcmRlcikgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50fSAuYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBjb2xvcjogcmdiYS10by1oZXgoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgI3skcGFyZW50fTphY3RpdmUsXG4gICN7JHBhcmVudH0uYWN0aXZlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0uZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJvcmRlcik7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkYnRuLWNvbG9ycywgYmctYWN0aXZlKTtcblxuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gQnV0dG9uIGdyb3Vwc1xuICAuYnRuLWdyb3VwICN7JHBhcmVudH0sXG4gIC5pbnB1dC1ncm91cC1wcmVwZW5kICN7JHBhcmVudH0sXG4gIC5pbnB1dC1ncm91cC1hcHBlbmQgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkaW5wdXQtYnRuLWJvcmRlci13aWR0aCBzb2xpZCBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1hY3RpdmUpO1xuICAgIGJvcmRlci1sZWZ0OiAkaW5wdXQtYnRuLWJvcmRlci13aWR0aCBzb2xpZCBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1hY3RpdmUpO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWJ1dHRvbi12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwsICRtZC1jb2xvcjogJGJhY2tncm91bmQpIHtcbiAgJGJ0bi1jb2xvcnM6IGdldC1tYXRlcmlhbC1idG4tY29sb3JzKCRiYWNrZ3JvdW5kKTtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm94LXNoYWRvdzogJGJ0bi1ib3gtc2hhZG93O1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1ob3Zlcik7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidG4tZm9jdXMtYm94LXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAjeyRwYXJlbnR9IC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiByZ2JhLXRvLWhleCgkYmFja2dyb3VuZCk7XG4gIH1cblxuICAjeyRwYXJlbnR9IC53YXZlcy1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IGlmKCRjb2xvciA9PSAjZmZmLCByZ2JhKCRjb2xvciwgLjMpLCByZ2JhKCRjb2xvciwgLjIpKTtcbiAgfVxuXG4gICN7JHBhcmVudH06YWN0aXZlLFxuICAjeyRwYXJlbnR9LmFjdGl2ZSxcbiAgLnNob3cgPiAjeyRwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkYnRuLWNvbG9ycywgYmctYWN0aXZlKTtcbiAgICBib3gtc2hhZG93OiAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRmxhdCBidXR0b25zXG4gICN7JHBhcmVudH0ubWQtYnRuLWZsYXQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJG1kLWNvbG9yO1xuXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJG1kLWNvbG9yLCAuMSk7XG4gICAgfVxuXG4gICAgLndhdmVzLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtZC1jb2xvciwgLjMpO1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH0ubWQtYnRuLWZsYXQ6YWN0aXZlLFxuICAjeyRwYXJlbnR9Lm1kLWJ0bi1mbGF0LmFjdGl2ZSxcbiAgLnNob3cgPiAjeyRwYXJlbnR9Lm1kLWJ0bi1mbGF0LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkbWQtY29sb3IsIC4xNSk7XG4gIH1cblxuICAvLyBEaXNhYmxlZFxuXG4gICN7JHBhcmVudH0uZGlzYWJsZWQsXG4gICN7JHBhcmVudH06ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogJG1hdGVyaWFsLWNvbXBvbmVudC1zaGFkb3cgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjeyRwYXJlbnR9Lm1kLWJ0bi1mbGF0LmRpc2FibGVkLFxuICAjeyRwYXJlbnR9Lm1kLWJ0bi1mbGF0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogT3V0bGluZSBidXR0b25zXG5cbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KCRjb2xvcjogbnVsbCwgJGNvbG9yLWhvdmVyOiBudWxsLCAkaG92ZXItY29sb3I6IG51bGwpIHt9XG5cbkBtaXhpbiBhcHB3b3JrLWJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkaG92ZXItY29sb3I6IG51bGwpIHtcbiAgJGJ0bi1jb2xvcnM6IGdldC1idG4tY29sb3JzKCRjb2xvciwgJGNvbG9yKTtcbiAgJGNvbG9yLWhvdmVyOiBpZigkaG92ZXItY29sb3IsICRob3Zlci1jb2xvciwgeWlxKCRjb2xvcikpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGJ0bi1jb2xvcnMsIGJvcmRlcik7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiBtYXAtZ2V0KCRidG4tY29sb3JzLCBzaGFkb3cpO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQsXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAjeyRwYXJlbnR9OmFjdGl2ZSxcbiAgI3skcGFyZW50fS5hY3RpdmUsXG4gIC5zaG93ID4gI3skcGFyZW50fS5kcm9wZG93bi10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnRuLWNvbG9ycywgYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRidG4tY29sb3JzLCBiZy1ob3Zlcik7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcblxuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50fSAuYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICN7JHBhcmVudH06aG92ZXIgLmJhZGdlLFxuICAjeyRwYXJlbnR9OmZvY3VzIC5iYWRnZSxcbiAgI3skcGFyZW50fTphY3RpdmUgLmJhZGdlLFxuICAjeyRwYXJlbnR9LmFjdGl2ZSAuYmFkZ2UsXG4gIC5zaG93ID4gI3skcGFyZW50fS5kcm9wZG93bi10b2dnbGUgLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6IGlmKGFscGhhKCRjb2xvcik9PTEsICRjb2xvciwgeWlxKCRjb2xvci1ob3ZlcikpO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkaG92ZXItY29sb3I6IG51bGwpIHtcbiAgJGJ0bi1jb2xvcnM6IGdldC1tYXRlcmlhbC1idG4tY29sb3JzKCRjb2xvcik7XG4gICRjb2xvci1ob3ZlcjogaWYoJGhvdmVyLWNvbG9yLCAkaG92ZXItY29sb3IsIHlpcSgkY29sb3IpKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yIGluc2V0O1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICBib3gtc2hhZG93OiAkYnRuLWZvY3VzLWJveC1zaGFkb3c7XG4gICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQsXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRjb2xvciBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH06YWN0aXZlLFxuICAjeyRwYXJlbnR9LmFjdGl2ZSxcbiAgLnNob3cgPiAjeyRwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkYnRuLWNvbG9ycywgYmctaG92ZXIpO1xuICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3c7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxuXG4gICN7JHBhcmVudH0gLndhdmVzLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogaWYoJGNvbG9yLWhvdmVyPT0jZmZmLCByZ2JhKCRjb2xvci1ob3ZlciwgLjMpLCByZ2JhKCRjb2xvci1ob3ZlciwgLjIpKTtcbiAgfVxuXG4gICN7JHBhcmVudH0gLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAjeyRwYXJlbnR9OmhvdmVyIC5iYWRnZSxcbiAgI3skcGFyZW50fTpmb2N1cyAuYmFkZ2UsXG4gICN7JHBhcmVudH06YWN0aXZlIC5iYWRnZSxcbiAgI3skcGFyZW50fS5hY3RpdmUgLmJhZGdlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0uZHJvcGRvd24tdG9nZ2xlIC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiBpZihhbHBoYSgkY29sb3IpPT0xLCAkY29sb3IsIHlpcSgkY29sb3ItaG92ZXIpKTtcbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEJhZGdlc1xuXG5AbWl4aW4gYmFkZ2UtdmFyaWFudCgkYmcpIHt9XG5cbkBtaXhpbiBhcHB3b3JrLWJhZGdlLXZhcmlhbnQoJHBhcmVudCwgJGJnLCAkY29sb3I6IG51bGwpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiZykpO1xuICB9XG5cbiAgI3skcGFyZW50fVtocmVmXSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoYWxwaGEoJGJnKSA9PSAxLCByZ2JhLXRvLWhleChyZ2JhKCRiZywgLjk1KSwgIzAwMCksIHJnYmEoJGJnLCBhbHBoYSgkYmcpICsgLjAzKSk7XG4gICAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmcpKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuYnRuICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQ6ICRiZyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogJGJnICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJnKSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1iYWRnZS1vdXRsaW5lLXZhcmlhbnQoJHBhcmVudCwgJGJnLCAkY29sb3I6ICRiZykge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGJnIGluc2V0O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAjeyRwYXJlbnR9W2hyZWZdIHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5idG4gI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGJnIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogRHJvcGRvd25zXG5cbkBtaXhpbiBhcHB3b3JrLWRyb3Bkb3duLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgI3skcGFyZW50fSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gIH1cblxuICAjeyRwYXJlbnR9LmRyb3Bkb3duLW1lbnUgPiBsaTpub3QoLmRpc2FibGVkKSA+IGE6bm90KC5kcm9wZG93bi1pdGVtKTphY3RpdmUsXG4gICN7JHBhcmVudH0uZHJvcGRvd24tbWVudSA+IGxpLmFjdGl2ZTpub3QoLmRpc2FibGVkKSA+IGE6bm90KC5kcm9wZG93bi1pdGVtKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1kcm9wZG93bi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstZHJvcGRvd24tdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWRyb3Bkb3duLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgfVxuXG4gICN7JHBhcmVudH0uZHJvcGRvd24tbWVudSA+IGxpLmFjdGl2ZTpub3QoLmRpc2FibGVkKSA+IGE6bm90KC5kcm9wZG93bi1pdGVtKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1tYXRlcmlhbC1kcm9wZG93bi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtZHJvcGRvd24tdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTmF2c1xuXG5AbWl4aW4gYXBwd29yay1uYXYtc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQpIHtcbiAgID4gLm5hdiAubmF2LWxpbmssXG4gICYubmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW5hdi12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJHBpbGxzLXNlbGVjdG9yOiBpZigkcGFyZW50ID09ICcnLCAnLm5hdi1waWxscycsICcjeyRwYXJlbnR9Lm5hdi1waWxscywgI3skcGFyZW50fSA+IC5uYXYtcGlsbHMnKTtcblxuICAjeyRwaWxscy1zZWxlY3Rvcn0gLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgcGxhaW4taG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH0udGFicy1hbHQubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSxcbiAgI3skcGFyZW50fS50YWJzLWFsdCA+IC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiAwIC0ycHggMCAkYmFja2dyb3VuZCBpbnNldDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbmF2LXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgYXBwd29yay1uYXYtdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLW5hdi12YXJpYW50KCRwYXJlbnQsICRjb2xvciwgJGxpbmstY29sb3I6IG51bGwpIHtcbiAgJHRhYnMtc2VsZWN0b3I6IGlmKCRwYXJlbnQgPT0gJycsICcubmF2LXRhYnMnLCAnI3skcGFyZW50fS5uYXYtdGFicycpO1xuICAkcGlsbHMtc2VsZWN0b3I6IGlmKCRwYXJlbnQgPT0gJycsICcubmF2LXBpbGxzJywgJyN7JHBhcmVudH0ubmF2LXBpbGxzLCAjeyRwYXJlbnR9ID4gLm5hdi1waWxscycpO1xuXG4gICN7JHRhYnMtc2VsZWN0b3J9IC5uYXYtbGluayB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRjb2xvciwgJGNvbG9yKTtcbiAgfVxuXG4gICN7JHBpbGxzLXNlbGVjdG9yfSAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBjb2xvcjogaWYoJGxpbmstY29sb3IsICRsaW5rLWNvbG9yLCB5aXEoJGNvbG9yKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLW5hdi10aGVtZSgkY29sb3IsICRsaW5rLWNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtbmF2LXZhcmlhbnQoJycsICRjb2xvciwgJGxpbmstY29sb3IpO1xufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFBhZ2luYXRpb25cblxuQG1peGluIGFwcHdvcmstcGFnaW5hdGlvbi12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgI3skcGFyZW50fSAucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rLFxuICAjeyRwYXJlbnR9LnBhZ2luYXRpb24gbGkuYWN0aXZlID4gYTpub3QoLnBhZ2UtbGluaykge1xuICAgIEBpbmNsdWRlIHBsYWluLWhvdmVyLWZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLXBhZ2luYXRpb24tdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBhcHB3b3JrLXBhZ2luYXRpb24tdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogUHJvZ3Jlc3MgYmFyc1xuXG5AbWl4aW4gYXBwd29yay1wcm9ncmVzcy1iYXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAucHJvZ3Jlc3MtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTGlzdCBncm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZTogbnVsbCwgJGJhY2tncm91bmQ6IG51bGwsICRjb2xvcjogbnVsbCkge31cblxuQG1peGluIGFwcHdvcmstbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC4xKSwgI2ZmZik7XG4gICRjb2xvcjogeWlxKCRiZyk7XG4gICRob3Zlci1iZzogcmdiYS10by1oZXgocmdiYSgkYmcsIC45OSksICMwMDApO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMDcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgYSN7JHBhcmVudH0sXG4gIGJ1dHRvbiN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmc7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWxpc3QtZ3JvdXAtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBhcHB3b3JrLWxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCcubGlzdC1ncm91cC1pdGVtLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICAgIEBpbmNsdWRlIHBsYWluLWhvdmVyLWZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICAgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogQWxlcnRzXG5cbkBtaXhpbiBhbGVydC12YXJpYW50KCRiYWNrZ3JvdW5kOiBudWxsLCAkYm9yZGVyOiBudWxsLCAkY29sb3I6IG51bGwpIHt9XG5cbkBtaXhpbiBhcHB3b3JrLWFsZXJ0LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC4xNSksICNmZmYpO1xuICAkYm9yZGVyOiByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuOTQpLCAjMDAwKTtcbiAgJGNvbG9yOiB5aXEoJGJhY2tncm91bmQpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgaHIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJvcmRlcjtcbiAgICB9XG5cbiAgICAuYWxlcnQtbGluayB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1hbGVydC1kYXJrLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgaHIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSh5aXEoJGJhY2tncm91bmQpLC4yKTtcbiAgICB9XG5cbiAgICAuY2xvc2UsXG4gICAgLmFsZXJ0LWxpbmsge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBUb29sdGlwc1xuXG5AbWl4aW4gYXBwd29yay10b29sdGlwLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IHtcbiAgICAudG9vbHRpcC1pbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICAgfVxuXG4gICAgJi5icy10b29sdGlwLXRvcCAuYXJyb3c6OmJlZm9yZSwgJi5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIC5hcnJvdzo6YmVmb3JlIHsgYm9yZGVyLXRvcC1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgICAmLmJzLXRvb2x0aXAtcmlnaHQgLmFycm93OjpiZWZvcmUsICYuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YmVmb3JlIHsgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICAgICYuYnMtdG9vbHRpcC1ib3R0b20gLmFycm93OjpiZWZvcmUsICYuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSAuYXJyb3c6OmJlZm9yZSB7IGJvcmRlci1ib3R0b20tY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gICAgJi5icy10b29sdGlwLWxlZnQgLmFycm93OjpiZWZvcmUsICYuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cImxlZnRcIl0gLmFycm93OjpiZWZvcmUgeyBib3JkZXItbGVmdC1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFBvcG92ZXJzXG5cbkBtaXhpbiBhcHB3b3JrLXBvcG92ZXItdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgICAucG9wb3Zlci1oZWFkZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHlpcSgkYmFja2dyb3VuZCksLjIpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIC5wb3BvdmVyLWJvZHkge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgID4gLmFycm93OjpiZWZvcmUgeyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbiAgICAmLmJzLXBvcG92ZXItdG9wID4gLmFycm93OjphZnRlciwgJi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdID4gLmFycm93OjphZnRlciB7IGJvcmRlci10b3AtY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gICAgJi5icy1wb3BvdmVyLXJpZ2h0ID4gLmFycm93OjphZnRlciwgJi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gPiAuYXJyb3c6OmFmdGVyIHsgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkYmFja2dyb3VuZDsgfVxuICAgICYuYnMtcG9wb3Zlci1ib3R0b20gPiAuYXJyb3c6OmFmdGVyLCAmLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJib3R0b21cIl0gPiAuYXJyb3c6OmFmdGVyIHsgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgICAmLmJzLXBvcG92ZXItbGVmdCA+IC5hcnJvdzo6YWZ0ZXIsICYuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImxlZnRcIl0gPiAuYXJyb3c6OmFmdGVyIHsgYm9yZGVyLWxlZnQtY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBGb3JtIGNvbnRyb2xzXG5cbkBtaXhpbiBhcHB3b3JrLWN1c3RvbS1zZWxlY3Qtc2l6ZSgkc2l6ZSwgJHBhZGRpbmcteCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1zaXplKSB7XG4gIC5jdXN0b20tc2VsZWN0LSN7JHNpemV9LFxuICAuaW5wdXQtZ3JvdXAtI3skc2l6ZX0gLmN1c3RvbS1zZWxlY3Qge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAkcGFkZGluZy14IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICYsXG4gICAgICAmW3NpemU9XCIwXCJdOm5vdChbbXVsdGlwbGVdKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRwYWRkaW5nLXggY2VudGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbc2l6ZT1cIjBcIl06bm90KFttdWx0aXBsZV0pIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstY3VzdG9tLWNvbnRyb2wtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsLCAkZGVmYXVsdC1iYWNrZ3JvdW5kOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIEBpZiAkZGVmYXVsdC1iYWNrZ3JvdW5kIHtcbiAgICAgIC5jdXN0b20tY29udHJvbC1pbnB1dCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICAgLmN1c3RvbS1jb250cm9sLWlucHV0OmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQge1xuICAgICAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICAgJjphY3RpdmUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoIHJnYmEoJGJhY2tncm91bmQsIC40KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICYuY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsXG4gICAgJi5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRldGVybWluYXRlLWJnLCAnX0NPTE9SXycsICRjb2xvciksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuXG4gICAgJi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYmcsICdfQ09MT1JfJywgJGNvbG9yKSwgXCIjXCIsIFwiJTIzXCIpKTtcbiAgICB9XG5cbiAgICAmLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLXJhZGlvLWluZGljYXRvci1iZywgJ19DT0xPUl8nLCAkY29sb3IpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1jdXN0b20tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstY3VzdG9tLWNvbnRyb2wtdmFyaWFudCgnLmN1c3RvbS1jb250cm9sJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWN1c3RvbS1jb250cm9sLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCwgJGRlZmF1bHQtYmFja2dyb3VuZDogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBAaWYgJGRlZmF1bHQtYmFja2dyb3VuZCB7XG4gICAgICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbiAgICAgIC5jdXN0b20tY29udHJvbC1pbnB1dDphY3RpdmUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICYuY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHN0ci1yZXBsYWNlKHN0ci1yZXBsYWNlKCRjdXN0b20tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1iZywgJ19DT0xPUl8nLCAkY29sb3IpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cblxuICAgICYuY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYmcsICdfQ09MT1JfJywgJGNvbG9yKSwgXCIjXCIsIFwiJTIzXCIpKTtcbiAgICB9XG5cbiAgICAmLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYmcsICdfQ09MT1JfJywgJGJhY2tncm91bmQpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cblxuICAgIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRiYWNrZ3JvdW5kLCAuMTUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1tYXRlcmlhbC1jdXN0b20tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWNvbnRyb2wtdmFyaWFudCgnLmN1c3RvbS1jb250cm9sJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlOiBudWxsLCAkY29sb3I6IG51bGwsICRpY29uOiBudWxsKSB7fVxuXG5AbWl4aW4gZm9ybS1jb250cm9sLXZhbGlkYXRlZCgkcGFyZW50LCAkc3RhdGUpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWZvcm0tdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRjb2xvciwgJGljb24sICRpY29uLXJ0bCkge1xuICAuI3skc3RhdGV9LWZlZWRiYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tZmVlZGJhY2stZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLXRleHQtbWFyZ2luLXRvcDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBmb250LXNpemU6ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuZm9ybS1jb250cm9sLCAuY3VzdG9tLXNlbGVjdCwgLmZvcm0tY29udHJvbC1maWxlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbCwgLmN1c3RvbS1zZWxlY3QnLCAkc3RhdGUpIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tY29udHJvbFtjbGFzc10gLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICY6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbiAgICAmOmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICY6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRjb2xvciwgLjQpO1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHN0ci1yZXBsYWNlKHN0ci1yZXBsYWNlKCRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWJnLCAnX0NPTE9SXycsIHlpcSgkY29sb3IpKSwgXCIjXCIsIFwiJTIzXCIpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dCcsICRzdGF0ZSkge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLXJhZGlvLWluZGljYXRvci1iZywgJ19DT0xPUl8nLCB5aXEoJGNvbG9yKSksIFwiI1wiLCBcIiUyM1wiKSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1maWxlLWlucHV0JywgJHN0YXRlKSB7XG4gICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gaWNvbnNcbiAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgLy8gSW5wdXRzXG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbCcsICRzdGF0ZSkge1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMykgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMyk7XG5cbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5wdXQtaGVpZ2h0LWlubmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMyk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uLXJ0bDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5wdXQtaGVpZ2h0LWlubmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbC1zbScsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lci1zbTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLXNtfSAvIDQpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5wdXQtaGVpZ2h0LWlubmVyLXNtO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbC1sZycsICRzdGF0ZSkge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lci1sZztcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbnB1dC1oZWlnaHQtaW5uZXItbGc7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0IGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGV4dGFyZWFzXG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgndGV4dGFyZWEuZm9ybS1jb250cm9sJywgJHN0YXRlKSB7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMykgcmlnaHQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMyk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMykgbGVmdCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgndGV4dGFyZWEuZm9ybS1jb250cm9sLXNtJywgJHN0YXRlKSB7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItc219IC8gNCkgcmlnaHQgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItc219IC8gNCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItc219IC8gNCkgbGVmdCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgndGV4dGFyZWEuZm9ybS1jb250cm9sLWxnJywgJHN0YXRlKSB7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXItbGd9IC8gMi41KSByaWdodCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1sZ30gLyAyLjUpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSkgbGVmdCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1sZ30gLyAyLjUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEN1c3RvbSBzZWxlY3RzXG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmN1c3RvbS1zZWxlY3Rbc2l6ZT1cIjFcIl0sIC5jdXN0b20tc2VsZWN0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKScsICRzdGF0ZSkge1xuICAgICAgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQ6ICgoJGlucHV0LWhlaWdodC1pbm5lciAtICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCkgLyAzKSArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nO1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3IsICRpY29uO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggY2VudGVyLCByaWdodCAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldCBjZW50ZXI7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXJ0bCwgJGljb24tcnRsO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCBjZW50ZXIsIGxlZnQgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQgY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLXNlbGVjdC1zbVtzaXplPVwiMVwiXSwgLmN1c3RvbS1zZWxlY3Qtc206bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pJywgJHN0YXRlKSB7XG4gICAgICAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldDogKCgkaW5wdXQtaGVpZ2h0LWlubmVyLXNtIC0gJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14KSAvIDQpICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctc207XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbSBjZW50ZXIsIHJpZ2h0ICRmb3JtLWZlZWRiYWNrLWljb24tb2Zmc2V0IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLXNtO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbSBjZW50ZXIsIGxlZnQgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQgY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLXNlbGVjdC1sZ1tzaXplPVwiMVwiXSwgLmN1c3RvbS1zZWxlY3QtbGc6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pJywgJHN0YXRlKSB7XG4gICAgICAkZm9ybS1mZWVkYmFjay1pY29uLW9mZnNldDogKCgkaW5wdXQtaGVpZ2h0LWlubmVyLWxnIC0gJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14KSAvIDIpICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG4gICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctbGc7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZyBjZW50ZXIsIHJpZ2h0ICRmb3JtLWZlZWRiYWNrLWljb24tb2Zmc2V0IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLWxnO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZyBjZW50ZXIsIGxlZnQgJGZvcm0tZmVlZGJhY2staWNvbi1vZmZzZXQgY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1tYXRlcmlhbC1mb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IsICRpY29uLCAkaWNvbi1ydGwpIHtcbiAgLiN7JHN0YXRlfS1mZWVkYmFjayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6ICRmb3JtLWZlZWRiYWNrLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS10ZXh0LW1hcmdpbi10b3A7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBDb250YWluIHRvIHBhcmVudCB3aGVuIHBvc3NpYmxlXG4gICAgcGFkZGluZzogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXkgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg7XG4gICAgbWFyZ2luLXRvcDogLjFyZW07XG4gICAgZm9udC1zaXplOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogY29sb3IteWlxKCRjb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtb3BhY2l0eSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkZm9ybS1mZWVkYmFjay10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbCwgLmN1c3RvbS1zZWxlY3QsIC5mb3JtLWNvbnRyb2wtZmlsZSwgLmN1c3RvbS1jb250cm9sLWlucHV0JywgJHN0YXRlKSB7XG4gICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5mb3JtLWNvbnRyb2wsIC5jdXN0b20tc2VsZWN0JywgJHN0YXRlKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLWNvbnRyb2xbY2xhc3NdIC5jdXN0b20tY29udHJvbC1pbnB1dCcsICRzdGF0ZSkge1xuICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICY6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbiAgICAmOmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLFxuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgLjE1KTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCcuY3VzdG9tLWNoZWNrYm94W2NsYXNzXSAuY3VzdG9tLWNvbnRyb2wtaW5wdXQnLCAkc3RhdGUpIHtcbiAgICAmOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYmcsICdfQ09MT1JfJywgeWlxKCRjb2xvcikpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tcmFkaW9bY2xhc3NdIC5jdXN0b20tY29udHJvbC1pbnB1dCcsICRzdGF0ZSkge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChzdHItcmVwbGFjZShzdHItcmVwbGFjZSgkY3VzdG9tLXJhZGlvLWluZGljYXRvci1iZywgJ19DT0xPUl8nLCAkY29sb3IpLCBcIiNcIiwgXCIlMjNcIikpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tZmlsZS1pbnB1dCcsICRzdGF0ZSkge1xuICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gaWNvbnNcbiAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgLy8gSW5wdXRzXG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRlZCgnLmZvcm0tY29udHJvbCcsICRzdGF0ZSkge1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMykgY2FsYygjeyRpbnB1dC1oZWlnaHQtaW5uZXJ9IC8gMyk7XG5cbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uLXJ0bDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZXh0YXJlYXNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wnLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSByaWdodDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lcn0gLyAzKSBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wtc20nLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KSByaWdodDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1zbX0gLyA0KSBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGVkKCd0ZXh0YXJlYS5mb3JtLWNvbnRyb2wtbGcnLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKCN7JGlucHV0LWhlaWdodC1pbm5lci1sZ30gLyAyLjUpIHJpZ2h0O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNhbGMoI3skaW5wdXQtaGVpZ2h0LWlubmVyLWxnfSAvIDIuNSkgbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDdXN0b20gc2VsZWN0c1xuICAgIEBpbmNsdWRlIGZvcm0tY29udHJvbC12YWxpZGF0ZWQoJy5jdXN0b20tc2VsZWN0W3NpemU9XCIxXCJdLCAuY3VzdG9tLXNlbGVjdDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSknLCAkc3RhdGUpIHtcbiAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLCAkaWNvbjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyLCByaWdodCAxcmVtIGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcnRsLCAkaWNvbi1ydGw7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyLCBsZWZ0IDFyZW0gY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1jdXN0b20tZmlsZS1pbnB1dC10aGVtZSgkY29sb3IpIHtcbiAgLmN1c3RvbS1maWxlLWlucHV0OmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWZpbGUtaW5wdXQtdGhlbWUoJGNvbG9yKSB7XG4gIC5jdXN0b20tZmlsZS1pbnB1dDpmb2N1cyB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgLTFweCAwIDAgJGNvbG9yIGluc2V0O1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWZvcm0tY29udHJvbC1zaXplKCRzaXplLCAkcGFkZGluZy15KSB7XG4gIEBpZiAkc2l6ZSA9PSAnJyB7XG4gICAgLmZvcm0tY29udHJvbCxcbiAgICAuY3VzdG9tLXNlbGVjdCxcbiAgICAuY3VzdG9tLWZpbGUtbGFiZWwsXG4gICAgLmlucHV0LWdyb3VwLXRleHQge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoI3skcGFkZGluZy15fSAtIDFweCk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAuZm9ybS1jb250cm9sLSN7JHNpemV9LFxuICAgIC5jdXN0b20tc2VsZWN0LSN7JHNpemV9LFxuICAgIC5pbnB1dC1ncm91cC0jeyRzaXplfSA+IC5mb3JtLWNvbnRyb2wsXG4gICAgLmlucHV0LWdyb3VwLSN7JHNpemV9ID4gLmN1c3RvbS1zZWxlY3QsXG4gICAgLmlucHV0LWdyb3VwLSN7JHNpemV9IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoI3skcGFkZGluZy15fSAtIDFweCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLWZvcm0tY29udHJvbC10aGVtZSgkY29sb3IpIHtcbiAgLmZvcm0tY29udHJvbDpmb2N1cyxcbiAgLmN1c3RvbS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLWZvcm0tY29udHJvbC10aGVtZSgkY29sb3IpIHtcbiAgLmZvcm0tY29udHJvbDpmb2N1cyxcbiAgLmN1c3RvbS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIC0xcHggMCAwICRjb2xvciBpbnNldDtcbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFN3aXRjaGVyc1xuXG5AbWl4aW4gYXBwd29yay1zd2l0Y2hlci1zaXplLWJhc2UoJHdpZHRoLCAkaGVpZ2h0LCAkZm9udC1zaXplLCAkZGVzY3JpcHRpb24tZm9udC1zaXplLCAkZGVzY3JpcHRpb24tbGluZS1oZWlnaHQsICRpbm5lci1zcGFjZXI6ICRzd2l0Y2hlci1pbm5lci1zcGFjZXIpIHtcbiAgcGFkZGluZy1sZWZ0OiAkd2lkdGg7XG4gIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGRlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRkZXNjcmlwdGlvbi1saW5lLWhlaWdodDtcblxuICAkbGluZS1oZWlnaHQtY29tcHV0ZWQ6ICRkZXNjcmlwdGlvbi1mb250LXNpemUgKiAkZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ7XG4gICRkZWx0YTogaWYoJG1hdGVyaWFsLXN0eWxlLCBweC10by1yZW0oY2VpbChyZW0tdG8tcHgoJGhlaWdodCAqIC4xMjUpKSksIDApO1xuXG4gIC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0IC0gKCRkZWx0YSAqIDIpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGhlaWdodDtcblxuICAgIEBpZiAkbGluZS1oZWlnaHQtY29tcHV0ZWQgPiAkaGVpZ2h0IHtcbiAgICAgIHRvcDogKCgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLSAkaGVpZ2h0KSAvIDIpICsgJGRlbHRhO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiAwICsgJGRlbHRhO1xuICAgIH1cbiAgfVxuXG4gIC5zd2l0Y2hlci1sYWJlbCB7XG4gICAgQGlmICRsaW5lLWhlaWdodC1jb21wdXRlZCA8ICRoZWlnaHQge1xuICAgICAgdG9wOiAoJGhlaWdodCAtICRsaW5lLWhlaWdodC1jb21wdXRlZCkgLyAyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zd2l0Y2hlci1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgIGxlZnQ6ICR3aWR0aCAtICRoZWlnaHQ7XG4gIH1cblxuICAuc3dpdGNoZXItaW5kaWNhdG9yOjphZnRlciB7XG4gICAgdG9wOiAkZGVsdGEgKiAtMTtcbiAgICBtYXJnaW46ICRpbm5lci1zcGFjZXIgMCAwICRpbm5lci1zcGFjZXI7XG4gICAgd2lkdGg6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyICogMjtcbiAgICBoZWlnaHQ6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyICogMjtcbiAgfVxuXG4gIC5zd2l0Y2hlci1ubyB7XG4gICAgcGFkZGluZy1yaWdodDogJGlubmVyLXNwYWNlcjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyO1xuICB9XG5cbiAgLnN3aXRjaGVyLXllcyB7XG4gICAgcGFkZGluZy1yaWdodDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gICAgcGFkZGluZy1sZWZ0OiAkaW5uZXItc3BhY2VyO1xuICB9XG5cbiAgQGlmICRtYXRlcmlhbC1zdHlsZSB7XG4gICAgLnN3aXRjaGVyLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICAgIHRvcDogJGRlbHRhICogLTE7XG4gICAgICB3aWR0aDogJGhlaWdodDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG5cbiAgICAuc3dpdGNoZXItaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2hlci1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAkd2lkdGggLSAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIFtkaXI9cnRsXSAmIC5zd2l0Y2hlci1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgICAgcmlnaHQ6ICR3aWR0aCAtICRoZWlnaHQ7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIFtkaXI9cnRsXSAmIC5zd2l0Y2hlci1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJGlubmVyLXNwYWNlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIFtkaXI9cnRsXSAmIC5zd2l0Y2hlci1ubyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaGVpZ2h0IC0gJGlubmVyLXNwYWNlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogJGlubmVyLXNwYWNlcjtcbiAgICB9XG5cbiAgICBbZGlyPXJ0bF0gJiAuc3dpdGNoZXIteWVzIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbm5lci1zcGFjZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyO1xuICAgIH1cblxuICAgIEBpZiAkbWF0ZXJpYWwtc3R5bGUge1xuICAgICAgW2Rpcj1ydGxdICYgLnN3aXRjaGVyLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoZXItaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgICAgICByaWdodDogJHdpZHRoIC0gJGhlaWdodDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstc3dpdGNoZXItc2l6ZSgkc2l6ZSwgJHdpZHRoLCAkaGVpZ2h0LCAkZm9udC1zaXplLCAkZGVzY3JpcHRpb24tZm9udC1zaXplLCAkZGVzY3JpcHRpb24tbGluZS1oZWlnaHQsICRpbm5lci1zcGFjZXI6ICRzd2l0Y2hlci1pbm5lci1zcGFjZXIpIHtcbiAgLnN3aXRjaGVyLSN7JHNpemV9LFxuICAuZm9ybS1ncm91cC0jeyRzaXplfSAuc3dpdGNoZXIge1xuICAgIEBpbmNsdWRlIGFwcHdvcmstc3dpdGNoZXItc2l6ZS1iYXNlKCR3aWR0aCwgJGhlaWdodCwgJGZvbnQtc2l6ZSwgJGRlc2NyaXB0aW9uLWZvbnQtc2l6ZSwgJGRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0LCAkaW5uZXItc3BhY2VyKTtcbiAgfVxufVxuXG5AbWl4aW4gYXBwd29yay1zd2l0Y2hlci12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJHNlbGVjdG9yOiBpZigkcGFyZW50ID09ICcnLCAnJywgJyN7JHBhcmVudH0uc3dpdGNoZXInKTtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG5cbiAgI3skc2VsZWN0b3J9IC5zd2l0Y2hlci1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSAuc3dpdGNoZXItaW5wdXQ6Zm9jdXMgfiAuc3dpdGNoZXItaW5kaWNhdG9yIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRiYWNrZ3JvdW5kLCAuNCk7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0gLnN3aXRjaGVyLWlucHV0OmFjdGl2ZSB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstc3dpdGNoZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBhcHB3b3JrLXN3aXRjaGVyLXZhcmlhbnQoJycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gYXBwd29yay1tYXRlcmlhbC1zd2l0Y2hlci12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kKSB7XG4gICRzZWxlY3RvcjogaWYoJHBhcmVudCA9PSAnJywgJycsICcjeyRwYXJlbnR9LnN3aXRjaGVyJyk7XG5cbiAgI3skc2VsZWN0b3J9IC5zd2l0Y2hlci1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaGVyLWluZGljYXRvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkYmFja2dyb3VuZCwgLjUpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIC4xNSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLXN3aXRjaGVyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtc3dpdGNoZXItdmFyaWFudCgnJywgJGJhY2tncm91bmQpO1xufVxuXG5AbWl4aW4gYXBwd29yay1zd2l0Y2hlci12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGNvbG9yKSB7XG4gIC5zd2l0Y2hlci1pbnB1dFtjbGFzc10ge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgICY6Y2hlY2tlZCB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiB5aXEoJGNvbG9yKTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRjb2xvciwgLjQpO1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICB+IC5zd2l0Y2hlci1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcHB3b3JrLW1hdGVyaWFsLXN3aXRjaGVyLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IpIHtcbiAgLnN3aXRjaGVyLWlucHV0W2NsYXNzXSB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuc3dpdGNoZXItaW5kaWNhdG9yW2NsYXNzXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAuNSk7XG4gICAgICB9XG5cbiAgICAgICY6Y2hlY2tlZCB+IC5zd2l0Y2hlci1pbmRpY2F0b3Ige1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgLjE1KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB+IC5zd2l0Y2hlci1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogVGFibGVzXG5cbkBtaXhpbiB0YWJsZS1yb3ctdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kLCAkYm9yZGVyOiBudWxsKSB7fVxuXG5AbWl4aW4gYXBwd29yay10YWJsZS1yb3ctdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCkge1xuICAkYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC4xKSwgI2ZmZik7XG4gICRjb2xvcjogeWlxKCRiZyk7XG4gICRob3Zlci1iZzogcmdiYS10by1oZXgocmdiYSgkYmcsIC45OSksICMwMDApO1xuXG4gIC50YWJsZSAjeyRwYXJlbnR9LFxuICAudGFibGUgI3skcGFyZW50fSA+IHRoLFxuICAudGFibGUgI3skcGFyZW50fSA+IHRkIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjAzNSkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC50YWJsZS1ob3ZlciAjeyRwYXJlbnR9OmhvdmVyLFxuICAudGFibGUtaG92ZXIgI3skcGFyZW50fTpob3ZlciA+IHRkLFxuICAudGFibGUtaG92ZXIgI3skcGFyZW50fTpob3ZlciA+IHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmc7XG4gIH1cbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBOYXZiYXJcblxuQG1peGluIGFwcHdvcmstbmF2YmFyLXZhcmlhbnQoJHBhcmVudCwgJGJnLCAkY29sb3I6IG51bGwsICRhY3RpdmUtY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwpIHtcbiAgJGNvbG9yczogZ2V0LW5hdi1jb2xvcnMoJGJnLCAkYWN0aXZlLWNvbG9yLCAkY29sb3IsICRib3JkZXIpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgLm5hdmJhci1icmFuZCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhci1uYXYge1xuICAgICAgLm5hdi1saW5rIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgZGlzYWJsZWQtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnNob3cgPiAubmF2LWxpbmssXG4gICAgICAuYWN0aXZlID4gLm5hdi1saW5rLFxuICAgICAgLm5hdi1saW5rLnNob3csXG4gICAgICAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2YmFyLXRvZ2dsZXIge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlcik7XG4gICAgfVxuXG4gICAgLm5hdmJhci10b2dnbGVyLWljb24ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWYobWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpID09ICNmZmYsICRuYXZiYXItZGFyay10b2dnbGVyLWljb24tYmcsICRuYXZiYXItbGlnaHQtdG9nZ2xlci1pY29uLWJnKTtcbiAgICB9XG5cbiAgICAubmF2YmFyLXRleHQge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcblxuICAgICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGhyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgIH1cbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFNpZGVuYXZcblxuQG1peGluIGFwcHdvcmstc2lkZW5hdi12YXJpYW50KCRwYXJlbnQsICRiZywgJGNvbG9yOiBudWxsLCAkYWN0aXZlLWNvbG9yOiBudWxsLCAkYm9yZGVyOiBudWxsLCAkbWVudS1iZzogbnVsbCkge1xuICAkY29sb3JzOiBnZXQtbmF2LWNvbG9ycygkYmcsICRhY3RpdmUtY29sb3IsICRjb2xvciwgJGJvcmRlcik7XG4gICR5aXEtcGVyY2VudDogbWFwLWdldCgkY29sb3JzLCB5aXEtcGVyY2VudCk7XG5cbiAgQGlmIG5vdCAkbWVudS1iZyB7XG4gICAgJG1lbnUtYmc6IHJnYmEtdG8taGV4KHJnYmEobWFwLWdldCgkY29sb3JzLCBiZyksIDEgLSBpZigkeWlxLXBlcmNlbnQgPiAuNzUsIC4wMjUsIC4wNSkpLCBpZigkeWlxLXBlcmNlbnQgPCAuMjUsICNmZmYsICMwMDApKTtcbiAgfVxuXG4gICRtZW51LWFjdGl2ZS1iZzogcmdiYS10by1oZXgocmdiYSgkbWVudS1iZywgMSAtIGlmKCR5aXEtcGVyY2VudCA+IC43NSwgLjAyNSwgLjA1KSksIGlmKCR5aXEtcGVyY2VudCA8IC4yNSwgI2ZmZiwgIzAwMCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgLnNpZGVuYXYtbGluayxcbiAgICAuc2lkZW5hdi1ob3Jpem9udGFsLXByZXYsXG4gICAgLnNpZGVuYXYtaG9yaXpvbnRhbC1uZXh0IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcblxuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaXRlbS5kaXNhYmxlZCAuc2lkZW5hdi1saW5rLFxuICAgIC5zaWRlbmF2LWhvcml6b250YWwtcHJldi5kaXNhYmxlZCxcbiAgICAuc2lkZW5hdi1ob3Jpem9udGFsLW5leHQuZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgZGlzYWJsZWQtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaXRlbS5vcGVuOm5vdCguc2lkZW5hdi1pdGVtLWNsb3NpbmcpID4gLnNpZGVuYXYtdG9nZ2xlLFxuICAgIC5zaWRlbmF2LWl0ZW0uYWN0aXZlID4gLnNpZGVuYXYtbGluayB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIC5zaWRlbmF2LWl0ZW0uYWN0aXZlID4gLnNpZGVuYXYtbGluazpub3QoLnNpZGVuYXYtdG9nZ2xlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1iZztcbiAgICB9XG5cbiAgICAmLnNpZGVuYXYtaG9yaXpvbnRhbCAuc2lkZW5hdi1tZW51ID4gLnNpZGVuYXYtaXRlbS5hY3RpdmUgPiAuc2lkZW5hdi1saW5rOm5vdCguc2lkZW5hdi10b2dnbGUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LWFjdGl2ZS1iZztcbiAgICB9XG5cbiAgICAmLnNpZGVuYXYtaG9yaXpvbnRhbCAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW06bm90KC5zaWRlbmF2LWl0ZW0tY2xvc2luZykgPiAuc2lkZW5hdi1tZW51LFxuICAgICYuc2lkZW5hdi1ob3Jpem9udGFsIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5vcGVuID4gLnNpZGVuYXYtdG9nZ2xlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWJnO1xuICAgIH1cblxuICAgIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5zaWRlbmF2LWl0ZW0tY2xvc2luZyAuc2lkZW5hdi1pdGVtLm9wZW4gLnNpZGVuYXYtbWVudSxcbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW0uc2lkZW5hdi1pdGVtLWNsb3NpbmcgLnNpZGVuYXYtaXRlbS5vcGVuIC5zaWRlbmF2LXRvZ2dsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi10ZXh0IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIG11dGVkLWNvbG9yKTtcbiAgICB9XG5cbiAgICBocixcbiAgICAuc2lkZW5hdi1kaXZpZGVyLFxuICAgIC5zaWRlbmF2LWlubmVyID4gLnNpZGVuYXYtaXRlbS5vcGVuID4gLnNpZGVuYXYtbWVudTo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1oZWFkZXI6OmJlZm9yZSxcbiAgICAuc2lkZW5hdi1ibG9jazo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW0ub3BlbiAuc2lkZW5hdi1pdGVtLm9wZW4gPiAuc2lkZW5hdi10b2dnbGU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhLXRvLWhleChtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlciksICRtZW51LWJnKTtcbiAgICB9XG5cbiAgICAuc2lkZW5hdi1pbm5lciA+IC5zaWRlbmF2LWl0ZW0ub3BlbiAuc2lkZW5hdi1pdGVtLmFjdGl2ZSA+IC5zaWRlbmF2LWxpbms6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1pdGVtLm9wZW4gLnNpZGVuYXYtaXRlbS5vcGVuID4gLnNpZGVuYXYtdG9nZ2xlOjpiZWZvcmUsXG4gICAgLnNpZGVuYXYtaW5uZXIgPiAuc2lkZW5hdi1pdGVtLm9wZW4gLnNpZGVuYXYtaXRlbS5hY3RpdmUgPiAuc2lkZW5hdi1saW5rOjpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRtZW51LWJnO1xuICAgIH1cblxuICAgIC5wc19fdGh1bWIteSxcbiAgICAucHNfX3JhaWwteS5wcy0tY2xpY2tpbmcgPiAucHNfX3RodW1iLXkge1xuICAgICAgYmFja2dyb3VuZDogcmdiYShtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvciksIGlmKCR5aXEtcGVyY2VudCA+IC43NSwgbWFwLWdldCgkY29sb3JzLCBvcGFjaXR5KSAtIC40LCBtYXAtZ2V0KCRjb2xvcnMsIG9wYWNpdHkpIC0gLjIpKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIEZvb3RlclxuXG5AbWl4aW4gYXBwd29yay1mb290ZXItdmFyaWFudCgkcGFyZW50LCAkYmcsICRjb2xvcjogbnVsbCwgJGFjdGl2ZS1jb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkY29sb3JzOiBnZXQtbmF2LWNvbG9ycygkYmcsICRhY3RpdmUtY29sb3IsICRjb2xvciwgJGJvcmRlcik7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBiZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG5cbiAgICAuZm9vdGVyLWxpbmsge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkaXNhYmxlZC1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyLXRleHQge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuc2hvdyA+IC5mb290ZXItbGluayxcbiAgICAuYWN0aXZlID4gLmZvb3Rlci1saW5rLFxuICAgIC5mb290ZXItbGluay5zaG93LFxuICAgIC5mb290ZXItbGluay5hY3RpdmUge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICBociB7XG4gICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstdG9hc3QtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0uYnM0LXRvYXN0IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJhY2tncm91bmQsIC45KSAhaW1wb3J0YW50O1xuXG4gICAgLnRvYXN0LWhlYWRlciB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIC4xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFwcHdvcmstdG9hc3QtdGhlbWUoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSBhcHB3b3JrLXRvYXN0LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG4iLCJAaW1wb3J0IFwiLi9fYXBwd29yay9pbmNsdWRlXCI7XG5AaW1wb3J0IFwiLi9fdGhlbWUvY29tbW9uXCI7XG5AaW1wb3J0IFwiLi9fdGhlbWUvbGlic1wiO1xuQGltcG9ydCBcIi4vX3RoZW1lL3Vpa2l0XCI7XG5cbiRwcmltYXJ5LWNvbG9yOiAjMjZCNEZGO1xuJGJvZHktYmc6ICNmNWY1ZjU7XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbn1cblxuLmJnLWJvZHkge1xuICBiYWNrZ3JvdW5kOiAkYm9keS1iZyAhaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSBhcHB3b3JrLWNvbW1vbi10aGVtZSgkcHJpbWFyeS1jb2xvcik7XG5AaW5jbHVkZSBhcHB3b3JrLWxpYnMtdGhlbWUoJHByaW1hcnktY29sb3IpO1xuQGluY2x1ZGUgYXBwd29yay11aWtpdC10aGVtZSgkcHJpbWFyeS1jb2xvcik7XG5cbi8vIE5hdmJhclxuXG5AaW5jbHVkZSBhcHB3b3JrLW5hdmJhci12YXJpYW50KCcuYmctbmF2YmFyLXRoZW1lJywgI2ZmZiwgJGNvbG9yOiAkdGV4dC1tdXRlZCwgJGFjdGl2ZS1jb2xvcjogJGJvZHktY29sb3IpO1xuXG4ubGF5b3V0LW5hdmJhciB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgJGJvcmRlci1jb2xvcjtcbn1cblxuLy8gU2lkZW5hdlxuXG5AaW5jbHVkZSBhcHB3b3JrLXNpZGVuYXYtdmFyaWFudCgnLmJnLXNpZGVuYXYtdGhlbWUnLCAjMmUzMjNhLCAkY29sb3I6ICM4Mzg3OTApO1xuXG4vLyBGb290ZXJcblxuQGluY2x1ZGUgYXBwd29yay1mb290ZXItdmFyaWFudCgnLmJnLWZvb3Rlci10aGVtZScsICNmZmYsICRjb2xvcjogJHRleHQtbXV0ZWQsICRhY3RpdmUtY29sb3I6ICRib2R5LWNvbG9yKTtcbiIsIkBtaXhpbiBicy1zbGlkZXItdmFyaWFudCgkYmFja2dyb3VuZCkge1xuICAuc2xpZGVyLXNlbGVjdGlvbixcbiAgLnNsaWRlci1yZXZlcnNlZCAuc2xpZGVyLXRyYWNrLWhpZ2gsXG4gICYuc2xpZGVyLXJldmVyc2VkIC5zbGlkZXItdHJhY2staGlnaCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIG1hdGVyaWFsLWJzLXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKSB7XG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSxcbiAgLnNsaWRlci1zZWxlY3Rpb24sXG4gIC5zbGlkZXItcmV2ZXJzZWQgLnNsaWRlci10cmFjay1oaWdoLFxuICAmLnNsaWRlci1yZXZlcnNlZCAuc2xpZGVyLXRyYWNrLWhpZ2gge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiBicy1zbGlkZXItdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgLnNsaWRlci1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBicy1zbGlkZXItdmFyaWFudCgkYmFja2dyb3VuZCk7XG4gIH1cbn1cblxuQG1peGluIG1hdGVyaWFsLWJzLXNsaWRlci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuc2xpZGVyLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWJzLXNsaWRlci12YXJpYW50KCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIHNlbGVjdDItdmFyaWFudCgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBzZWxlY3QyLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkYm9yZGVyKSB7XG4gIC5pcy0jeyRzdGF0ZX0gLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbixcbiAgLmlzLSN7JHN0YXRlfS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24gIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIHNlbGVjdDItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAuZGVmYXVsdC1zdHlsZSAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQge1xuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdDItY29udGFpbmVyLS1mb2N1cyAuc2VsZWN0Mi1zZWxlY3Rpb24sXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5kZWZhdWx0LXN0eWxlIC5zZWxlY3QyLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIHNlbGVjdDItdmFyaWFudCgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0ZXJpYWwtc2VsZWN0Mi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5tYXRlcmlhbC1zdHlsZSAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQge1xuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdDItY29udGFpbmVyLS1mb2N1czpub3QoLnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCkgLnNlbGVjdDItc2VsZWN0aW9uLFxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW46bm90KC5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQpIC5zZWxlY3QyLXNlbGVjdGlvbiB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiAwIC0xcHggMCAwICRiYWNrZ3JvdW5kIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdGVyaWFsLXN0eWxlIC5zZWxlY3QyLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIHNlbGVjdDItdmFyaWFudCgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIGJzLXNlbGVjdC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51LmlubmVyIGFbYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jc3MvX2FwcHdvcmsvZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBicy1kYXRlcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICRyYW5nZS1iZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjE1KSwgI2ZmZik7XG4gICRyYW5nZS1jb2xvcjogeWlxKCRyYW5nZS1iZyk7XG5cbiAgLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQge1xuICAgICYuYWN0aXZlLFxuICAgICYuYWN0aXZlLmhpZ2hsaWdodGVkLFxuICAgICYuYWN0aXZlLnRvZGF5LFxuICAgIHNwYW4uYWN0aXZlLFxuICAgIHNwYW4uYWN0aXZlLmRpc2FibGVkLFxuICAgICYucmFuZ2Utc3RhcnQsXG4gICAgJi5yYW5nZS1lbmQge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnJhbmdlLFxuICAgICYucmFuZ2UuaGlnaGxpZ2h0ZWQsXG4gICAgJi5yYW5nZS50b2RheSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtYmcgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkcmFuZ2UtY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgJi5mb2N1c2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRyYW5nZS1iZywgNiUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkcmFuZ2UtYmcsIC41KSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJHJhbmdlLWNvbG9yLCAuNSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBxdWlsbC1nZW5lcmF0ZS1saXN0cygkaW5kZW50KSB7XG4gICRxdWlsbC1saXN0LXR5cGVzOiAoXG4gICAgMTogbG93ZXItYWxwaGEsXG4gICAgMjogbG93ZXItcm9tYW4sXG4gICAgMzogZGVjaW1hbCxcbiAgICA0OiBsb3dlci1hbHBoYSxcbiAgICA1OiBsb3dlci1yb21hbixcbiAgICA2OiBkZWNpbWFsLFxuICAgIDc6IGxvd2VyLWFscGhhLFxuICAgIDg6IGxvd2VyLXJvbWFuLFxuICAgIDk6IGRlY2ltYWxcbiAgKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xuICAgIG9sIGxpLnFsLWluZGVudC0jeyRpfSB7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogbGlzdC0jeyRpfTtcblxuICAgICAgQGlmICRpIDwgOSB7XG4gICAgICAgICRsaXN0czogJyc7XG5cbiAgICAgICAgQGZvciAkbCBmcm9tICRpICsgMSB0aHJvdWdoIDkge1xuICAgICAgICAgICRsaXN0czogXCIjeyRsaXN0c30gbGlzdC0jeyRsfVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgY291bnRlci1yZXNldDogI3skbGlzdHN9O1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpc3QtI3skaX0sIG1hcC1nZXQoJHF1aWxsLWxpc3QtdHlwZXMsICRpKSkgJy4gJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucWwtaW5kZW50LSN7JGl9Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkaW5kZW50ICogJGk7XG5cbiAgICAgIFtkaXI9cnRsXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICRpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGxpLnFsLWluZGVudC0jeyRpfTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGluZGVudCAqICgkaSArIDEpO1xuXG4gICAgICBbZGlyPXJ0bF0gJiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbmRlbnQgKiAoJGkgKyAxKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAucWwtaW5kZW50LSN7JGl9LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQge1xuICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICRpO1xuXG4gICAgICBbZGlyPXJ0bF0gJiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGluZGVudCAqICRpO1xuICAgICAgfVxuICAgIH1cbiAgICBsaS5xbC1pbmRlbnQtI3skaX0ucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5kZW50ICogKCRpICsgMSk7XG5cbiAgICAgIFtkaXI9cnRsXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5kZW50ICogKCRpICsgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBxdWlsbC10aGVtZSgkY29sb3IpIHtcbiAgLnFsLXNub3cucWwtdG9vbGJhcixcbiAgLnFsLXNub3cgLnFsLXRvb2xiYXIge1xuICAgIGJ1dHRvbjpob3ZlcixcbiAgICBidXR0b246Zm9jdXMsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSxcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlcixcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQge1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJ1dHRvbjpob3ZlciAucWwtZmlsbCxcbiAgICBidXR0b246Zm9jdXMgLnFsLWZpbGwsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQgLnFsLWZpbGwsXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1zdHJva2UucWwtZmlsbCxcbiAgICBidXR0b246Zm9jdXMgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIGJ1dHRvbi5xbC1hY3RpdmUgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlIC5xbC1zdHJva2UucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWl0ZW06aG92ZXIgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtc3Ryb2tlLnFsLWZpbGwge1xuICAgICAgZmlsbDogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1zdHJva2UsXG4gICAgYnV0dG9uOmZvY3VzIC5xbC1zdHJva2UsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLXN0cm9rZSxcbiAgICAucWwtcGlja2VyLWxhYmVsLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtc3Ryb2tlLFxuICAgIGJ1dHRvbjpob3ZlciAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIGJ1dHRvbjpmb2N1cyAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIGJ1dHRvbi5xbC1hY3RpdmUgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyIC5xbC1zdHJva2UtbWl0ZXIsXG4gICAgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWl0ZW06aG92ZXIgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQgLnFsLXN0cm9rZS1taXRlciB7XG4gICAgICBzdHJva2U6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIHN3aXBlci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUsXG4gIC5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQG1peGluIHNwaW5raXQtdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgLnNrLXByaW1hcnkuc2stcm90YXRpbmctcGxhbmUsXG4gIC5zay1wcmltYXJ5LnNrLWRvdWJsZS1ib3VuY2UgLnNrLWNoaWxkLFxuICAuc2stcHJpbWFyeS5zay13YXZlIC5zay1yZWN0LFxuICAuc2stcHJpbWFyeS5zay13YW5kZXJpbmctY3ViZXMgLnNrLWN1YmUsXG4gIC5zay1wcmltYXJ5LnNrLXNwaW5uZXItcHVsc2UsXG4gIC5zay1wcmltYXJ5LnNrLWNoYXNpbmctZG90cyAuc2stY2hpbGQsXG4gIC5zay1wcmltYXJ5LnNrLXRocmVlLWJvdW5jZSAuc2stY2hpbGQsXG4gIC5zay1wcmltYXJ5LnNrLWNpcmNsZSAuc2stY2hpbGQ6YmVmb3JlLFxuICAuc2stcHJpbWFyeS5zay1jdWJlLWdyaWQgLnNrLWN1YmUsXG4gIC5zay1wcmltYXJ5LnNrLWZhZGluZy1jaXJjbGUgLnNrLWNpcmNsZTpiZWZvcmUsXG4gIC5zay1wcmltYXJ5LnNrLWZvbGRpbmctY3ViZSAuc2stY3ViZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG4iLCJAbWl4aW4gc21hcnR3aXphcmQtdGhlbWUoJGNvbG9yKSB7XG4gIC5zdy10aGVtZS1kZWZhdWx0IC5zdGVwLWFuY2hvciA+IGxpLmFjdGl2ZSA+IGEgLnN3LWljb24sXG4gIC5zdy10aGVtZS1kZWZhdWx0IC5zdGVwLWFuY2hvciA+IGxpLmFjdGl2ZSA+IGEgLnN3LW51bWJlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2Nzcy9fYXBwd29yay9mdW5jdGlvbnNcIjtcblxuQG1peGluIHBseXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAucGx5ciBpbnB1dFt0eXBlPSdyYW5nZSddOjotbXMtZmlsbC1sb3dlciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wbHlyIGlucHV0W3R5cGU9J3JhbmdlJ106YWN0aXZlIHtcbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbHMgYnV0dG9uLnRhYi1mb2N1czpmb2N1cyxcbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9scyBidXR0b24udGFiLWZvY3VzOmZvY3VzLFxuICAucGx5ci0tYXVkaW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucGx5cl9fcGxheS1sYXJnZSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZCxcbiAgLnBseXJfX3ZvbHVtZS0tZGlzcGxheSB7XG4gICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBmdWxsY2FsZW5kYXItZXZlbnQtYmcoJGJhY2tncm91bmQsICRvcGFjaXR5OiAuMTUpIHtcbiAgQHJldHVybiByZ2JhKCRiYWNrZ3JvdW5kLCAkb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBmdWxsY2FsZW5kYXItZXZlbnQtdmFyaWFudCgkYmFja2dyb3VuZCkge1xuICAmLmZjLWV2ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBmdWxsY2FsZW5kYXItZXZlbnQtYmcoJGJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmMtZXZlbnQtZG90IHtcbiAgICBiYWNrZ3JvdW5kOiBmdWxsY2FsZW5kYXItZXZlbnQtYmcoJGJhY2tncm91bmQsIC40KSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmdWxsY2FsZW5kYXItdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgLmZjLWV2ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBmdWxsY2FsZW5kYXItZXZlbnQtYmcoJGJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmMtZXZlbnQtZG90IHtcbiAgICBiYWNrZ3JvdW5kOiBmdWxsY2FsZW5kYXItZXZlbnQtYmcoJGJhY2tncm91bmQsIC40KSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZjLWhpZ2hsaWdodCxcbiAgLmZjLWJnZXZlbnQ6bm90KC5mYy1ub25idXNpbmVzcykge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jc3MvX2FwcHdvcmsvZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBzd2VldGFsZXJ0Mi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIHlpcSgkYmFja2dyb3VuZCkpO1xuXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAuc3dhbDItYWN0aXZlLXByb2dyZXNzLXN0ZXAsXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAtbGluZSxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItYWN0aXZlLXByb2dyZXNzLXN0ZXAsXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1wcm9ncmVzcy1zdGVwLnN3YWwyLWFjdGl2ZS1wcm9ncmVzcy1zdGVwIH4gLnN3YWwyLXByb2dyZXNzLXN0ZXAsXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAuc3dhbDItYWN0aXZlLXByb2dyZXNzLXN0ZXAgfiAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC1saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuMjUpKTtcbiAgfVxufVxuIiwiLy8gRnVuY3Rpb25zXG4vL1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIE1hdGhcblxuJHBpOiAzLjE0MTU5MjY1MzU5O1xuJF9wcmVjaXNpb246IDEwO1xuXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBpZiAkZXhwIDwgMXtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gc3FydCgkcikge1xuICAkeDA6IDE7XG4gICR4MTogJHgwO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAgICR4MTogJHgwIC0gKCR4MCAqICR4MCAtIGFicygkcikpIC8gKDIgKiAkeDApO1xuICAgICR4MDogJHgxO1xuICB9XG5cbiAgQHJldHVybiAkeDE7XG59XG5cbkBmdW5jdGlvbiBmYWN0KCRudW0pIHtcbiAgJGZhY3Q6IDE7XG4gIEBpZiAkbnVtID4gMHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRudW0ge1xuICAgICAgJGZhY3Q6ICRmYWN0ICogJGk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGZhY3Q7XG59XG5cbkBmdW5jdGlvbiBfdG9fdW5pdGxlc3NfcmFkKCRhbmdsZSkge1xuICBAaWYgdW5pdCgkYW5nbGUpID09IFwiZGVnXCIge1xuICAgICRhbmdsZTogJGFuZ2xlIC8gMTgwZGVnICogJHBpO1xuICB9XG4gIEBpZiB1bml0KCRhbmdsZSkgPT0gXCJyYWRcIiB7XG4gICAgJGFuZ2xlOiAkYW5nbGUgLyAxcmFkO1xuICB9XG4gIEByZXR1cm4gJGFuZ2xlO1xufVxuXG5AZnVuY3Rpb24gc2luKCRhbmdsZSl7XG4gICRhOiBfdG9fdW5pdGxlc3NfcmFkKCRhbmdsZSk7XG4gICRzaW46ICRhO1xuICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRfcHJlY2lzaW9uIHtcbiAgICAkc2luOiAkc2luICsgKHBvdygtMSwgJG4pIC8gZmFjdCgyICogJG4gKyAxKSApICogcG93KCRhLCAoMiAqICRuICsgMSkpO1xuICB9XG4gIEByZXR1cm4gJHNpbjtcbn1cblxuQGZ1bmN0aW9uIGNvcygkYW5nbGUpe1xuICAkYTogX3RvX3VuaXRsZXNzX3JhZCgkYW5nbGUpO1xuICAkY29zOiAxO1xuICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRfcHJlY2lzaW9uIHtcbiAgICAkY29zOiAkY29zICsgKCBwb3coLTEsJG4pIC8gZmFjdCgyKiRuKSApICogcG93KCRhLDIqJG4pO1xuICB9XG4gIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpe1xuICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogTGlzdHNcblxuQGZ1bmN0aW9uIHNsaWNlLWxpc3QoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICAkcmVzdWx0OiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCRzdGFydCkgIT0gbnVtYmVyIG9yIHR5cGUtb2YoJGVuZCkgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIkVpdGhlciAkc3RhcnQgb3IgJGVuZCBhcmUgbm90IGEgbnVtYmVyIGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2UgaWYgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHdhcm4gXCJUaGUgc3RhcnQgaW5kZXggaGFzIHRvIGJlIGxlc3NlciB0aGFuIG9yIGVxdWFscyB0byB0aGUgZW5kIGluZGV4IGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2UgaWYgJHN0YXJ0IDwgMSBvciAkZW5kIDwgMSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4ZXMgbXVzdCBiZSBub24temVybyBpbnRlZ2VycyBmb3IgYHNsaWNlYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRzdGFydCA+IGxlbmd0aCgkbGlzdCkge1xuICAgIEB3YXJuIFwiTGlzdCBpbmRleCBpcyAjeyRzdGFydH0gYnV0IGxpc3QgaXMgb25seSAje2xlbmd0aCgkbGlzdCl9IGl0ZW0gbG9uZyBmb3IgYHNsaWNlYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRlbmQgPiBsZW5ndGgoJGxpc3QpIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggaXMgI3skZW5kfSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgc2xpY2VgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogU3RyaW5nc1xuXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gKiBDb2xvcnNcblxuQGZ1bmN0aW9uIHJnYmEtdG8taGV4KCRjb2xvciwgJGJhY2tncm91bmQ6ICNmZmYpIHtcbiAgQGlmICRjb2xvciBhbmQgYWxwaGEoJGNvbG9yKSAhPSAxIHtcbiAgICAkcGVyY2VudDogYWxwaGEoJGNvbG9yKSAqIDEwMCU7XG4gICAgJG9wYXF1ZTogb3BhY2lmeSgkY29sb3IsIDEpO1xuXG4gICAgQHJldHVybiBtaXgoJG9wYXF1ZSwgJGJhY2tncm91bmQsICRwZXJjZW50KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHlpcS12YWx1ZSgkY29sb3IpIHtcbiAgQGlmICRjb2xvciA9PSB0cmFuc3BhcmVudCB7XG4gICAgQHJldHVybiAkYm9keS1jb2xvcjtcbiAgfSBAZWxzZSBpZiBhbHBoYSgkY29sb3IpICE9IDEge1xuICAgICRjb2xvcjogcmdiYS10by1oZXgoJGNvbG9yKTtcbiAgfVxuXG4gICRyOiByZWQoJGNvbG9yKTtcbiAgJGc6IGdyZWVuKCRjb2xvcik7XG4gICRiOiBibHVlKCRjb2xvcik7XG5cbiAgQHJldHVybiAoKCRyICogMjk5KSArICgkZyAqIDU4NykgKyAoJGIgKiAxMTQpKSAvIDEwMDA7XG59XG5cbi8vIENvbG9yIGNvbnRyYXN0XG5AZnVuY3Rpb24geWlxKCRjb2xvcikge1xuICAkeWlxOiB5aXEtdmFsdWUoJGNvbG9yKTtcblxuICBAaWYgKCR5aXEgPj0gMTYwKSB7XG4gICAgQHJldHVybiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjQwKSwgIzAwMCk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gI2ZmZjtcbiAgfVxufVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyAqIFVuaXRzXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBmdW5jdGlvbiBweC10by1yZW0oJHZhbHVlKSB7XG4gIC8vIEFzc3VtZXMgdGhlIGJyb3dzZXIgZGVmYXVsdCBmb250IHNpemUgPSBgMTZweGBcbiAgQHJldHVybiAoc3RyaXAtdW5pdCgkdmFsdWUpIC8gMTYpICogMXJlbTtcbn1cblxuQGZ1bmN0aW9uIHJlbS10by1weCgkdmFsdWUpIHtcbiAgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0IGZvbnQgc2l6ZSA9IGAxNnB4YFxuICBAcmV0dXJuIChzdHJpcC11bml0KCR2YWx1ZSkgKiAxNikgKiAxcHg7XG59XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vICogVXRpbGl0aWVzXG5cbkBmdW5jdGlvbiBnZXQtYnRuLWNvbG9ycygkYmFja2dyb3VuZCwgJGJvcmRlcikge1xuICBAaWYgJGJhY2tncm91bmQgPT0gdHJhbnNwYXJlbnQge1xuICAgICRidG4tc2hhZG93OiByZ2JhKHJnYmEtdG8taGV4KCRib3JkZXIsICMwMDApLCAuMDUpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICBiZy1ob3ZlcjogIHJnYmEoJGJvcmRlciwgLjA2KSxcbiAgICAgIGJnLWFjdGl2ZTogcmdiYSgkYm9yZGVyLCAuMTIpLFxuICAgICAgYm9yZGVyOiAgICAkYm9yZGVyLFxuICAgICAgc2hhZG93OiAgICBpZigkZW5hYmxlLXNoYWRvd3MsICgkYnRuLWJveC1zaGFkb3csIDAgMCAwICRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoICRidG4tc2hhZG93KSwgMCAwIDAgJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGggJGJ0bi1zaGFkb3cpXG4gICAgKTtcbiAgfSBAZWxzZSBpZiBhbHBoYSgkYmFja2dyb3VuZCkgIT0gMSB7XG4gICAgJGJnLWFscGhhOiAgIGFscGhhKCRiYWNrZ3JvdW5kKTtcbiAgICAkYnRuLXNoYWRvdzogcmdiYSgkYmFja2dyb3VuZCwgJGJnLWFscGhhIC0gKCRiZy1hbHBoYSAqIDU1IC8gMTAwKSApO1xuXG4gICAgQHJldHVybiAoXG4gICAgICBiZy1ob3ZlcjogIHJnYmEoJGJhY2tncm91bmQsICRiZy1hbHBoYSArIDAuMDUpLFxuICAgICAgYmctYWN0aXZlOiByZ2JhKCRiYWNrZ3JvdW5kLCAkYmctYWxwaGEgKyAwLjEzKSxcbiAgICAgIGJvcmRlcjogICAgdHJhbnNwYXJlbnQsXG4gICAgICBzaGFkb3c6ICAgIGlmKCRlbmFibGUtc2hhZG93cywgKCRidG4tYm94LXNoYWRvdywgMCAwIDAgJGNvbXBvbmVudC1mb2N1cy1zaGFkb3ctd2lkdGggJGJ0bi1zaGFkb3cpLCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCAkYnRuLXNoYWRvdylcbiAgICApO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIGJnLWhvdmVyOiAgcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjk1KSwgIzAwMCksXG4gICAgICBiZy1hY3RpdmU6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC44NyksICMwMDApLFxuICAgICAgYm9yZGVyOiAgICB0cmFuc3BhcmVudCxcbiAgICAgIHNoYWRvdzogICAgaWYoJGVuYWJsZS1zaGFkb3dzLCAoJGJ0bi1ib3gtc2hhZG93LCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRiYWNrZ3JvdW5kLCAuNCkpLCAwIDAgMCAkY29tcG9uZW50LWZvY3VzLXNoYWRvdy13aWR0aCByZ2JhKCRiYWNrZ3JvdW5kLCAuNCkpXG4gICAgKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LW1hdGVyaWFsLWJ0bi1jb2xvcnMoJGJhY2tncm91bmQpIHtcbiAgQGlmIGFscGhhKCRiYWNrZ3JvdW5kKSAhPSAxIHtcbiAgICAkYmFja2dyb3VuZDogcmdiYS10by1oZXgoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQHJldHVybiAoXG4gICAgYmctaG92ZXI6ICByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuOTUpLCAjZmZmKSxcbiAgICBiZy1hY3RpdmU6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIC44NyksICNmZmYpLFxuICApO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW5hdi1jb2xvcnMoJGJnLCAkYWN0aXZlLWNvbG9yOiBudWxsLCAkaW5hY3RpdmUtY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwpIHtcbiAgJGJnOiByZ2JhLXRvLWhleCgkYmcpO1xuICAkYWN0aXZlLWNvbG9yOiByZ2JhLXRvLWhleCgkYWN0aXZlLWNvbG9yKTtcbiAgJGFjdGl2ZS1jb2xvcjogaWYoJGFjdGl2ZS1jb2xvciwgJGFjdGl2ZS1jb2xvciwgeWlxKCRiZykpO1xuICAkeWlxLXBlcmNlbnQ6IHlpcS12YWx1ZSgkYmcpIC8gMjU1O1xuICAkeWlxLXBlcmNlbnQtaW52ZXJ0ZWQ6IDEgLSAkeWlxLXBlcmNlbnQ7XG5cbiAgJG9wYWNpdHk6IGlmKCRhY3RpdmUtY29sb3IgPT0gI2ZmZiwgLjYgKyAoLjQgKiAkeWlxLXBlcmNlbnQpLCAuNiArICguNCAqICgxIC0gJHlpcS1wZXJjZW50KSkpO1xuXG4gICRjb2xvcjogaWYoJGluYWN0aXZlLWNvbG9yLCByZ2JhLXRvLWhleCgkaW5hY3RpdmUtY29sb3IsICRiZyksIHJnYmEtdG8taGV4KHJnYmEoJGFjdGl2ZS1jb2xvciwgaWYoJHlpcS1wZXJjZW50IDwgLjI1LCAkb3BhY2l0eSAtIC4xNSwgJG9wYWNpdHkpKSwgJGJnKSk7XG4gICRkaXNhYmxlZC1jb2xvcjogcmdiYS10by1oZXgocmdiYSgkY29sb3IsIC42KSwgJGJnKTtcbiAgJG11dGVkLWNvbG9yOiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgLjc1KSwgJGJnKTtcbiAgJGJvcmRlcjogaWYoJGJvcmRlciwgJGJvcmRlciwgaWYoJHlpcS1wZXJjZW50ID4gLjc1LCByZ2JhKCRhY3RpdmUtY29sb3IsICRvcGFjaXR5IC8gOCksIGlmKCR5aXEtcGVyY2VudCA8IC4yNSwgcmdiYSgkYWN0aXZlLWNvbG9yLCAuMDYpLCByZ2JhKCRhY3RpdmUtY29sb3IsIC4xNSkpKSk7XG5cbiAgQHJldHVybiAoXG4gICAgLy8gTWV0YWRhdGFcbiAgICBvcGFjaXR5OiAkb3BhY2l0eSxcbiAgICB5aXEtcGVyY2VudDogJHlpcS1wZXJjZW50LFxuICAgIHlpcS1wZXJjZW50LWludmVydGVkOiAkeWlxLXBlcmNlbnQtaW52ZXJ0ZWQsXG5cbiAgICAvLyBDb2xvcnNcbiAgICBiZzogJGJnLFxuICAgIGNvbG9yOiAkY29sb3IsXG4gICAgYWN0aXZlLWNvbG9yOiAkYWN0aXZlLWNvbG9yLFxuICAgIGRpc2FibGVkLWNvbG9yOiAkZGlzYWJsZWQtY29sb3IsXG4gICAgbXV0ZWQtY29sb3I6ICRtdXRlZC1jb2xvcixcbiAgICBib3JkZXI6ICRib3JkZXJcbiAgKTtcbn1cbiIsIkBtaXhpbiBhcHB3b3JrLXVpa2l0LXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC51aS1wcm9kdWN0LWNvbG9yLmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNmZmYsIDAgMCAwIDRweCAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBIb3ZlciBtaXhpbiBhbmQgYCRlbmFibGUtaG92ZXItbWVkaWEtcXVlcnlgIGFyZSBkZXByZWNhdGVkLlxuLy9cbi8vIE9yaWdpbmFsbHkgYWRkZWQgZHVyaW5nIG91ciBhbHBoYXMgYW5kIG1haW50YWluZWQgZHVyaW5nIGJldGFzLCB0aGlzIG1peGluIHdhc1xuLy8gZGVzaWduZWQgdG8gcHJldmVudCBgOmhvdmVyYCBzdGlja2luZXNzIG9uIGlPUy1hbiBpc3N1ZSB3aGVyZSBob3ZlciBzdHlsZXNcbi8vIHdvdWxkIHBlcnNpc3QgYWZ0ZXIgaW5pdGlhbCB0b3VjaC5cbi8vXG4vLyBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgd2UndmUga2VwdCB0aGVzZSBtaXhpbnMgYW5kIHVwZGF0ZWQgdGhlbSB0b1xuLy8gYWx3YXlzIHJldHVybiB0aGVpciByZWd1bGFyIHBzZXVkby1jbGFzc2VzIGluc3RlYWQgb2YgYSBzaGltbWVkIG1lZGlhIHF1ZXJ5LlxuLy9cbi8vIElzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI1MTk1XG5cbkBtaXhpbiBob3ZlciB7XG4gICY6aG92ZXIgeyBAY29udGVudDsgfVxufVxuXG5AbWl4aW4gaG92ZXItZm9jdXMge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcGxhaW4taG92ZXItZm9jdXMge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaG92ZXItZm9jdXMtYWN0aXZlIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gZmxhdHBpY2tyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgeWlxKCRiYWNrZ3JvdW5kKSk7XG4gICRpbi1yYW5nZS1iZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgLjE1KSwgI2ZmZik7XG4gICRpbi1yYW5nZS1jb2xvcjogeWlxKCRpbi1yYW5nZS1iZyk7XG5cbiAgLmZsYXRwaWNrci1jYWxlbmRhciAubnVtSW5wdXRXcmFwcGVyIHNwYW4ge1xuICAgICYuYXJyb3dVcDphZnRlciB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJi5hcnJvd0Rvd246YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5mbGF0cGlja3ItbW9udGgsXG4gIHNwYW4uZmxhdHBpY2tyLXdlZWtkYXkge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgZmlsbDogJGNvbG9yO1xuICB9XG5cbiAgLmZsYXRwaWNrci13ZWVrZGF5cyB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIH1cblxuICAuZmxhdHBpY2tyLWRheSB7XG4gICAgJi50b2RheSB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYuaW5SYW5nZSxcbiAgICAmLnByZXZNb250aERheS5pblJhbmdlLFxuICAgICYubmV4dE1vbnRoRGF5LmluUmFuZ2UsXG4gICAgJi50b2RheS5pblJhbmdlLFxuICAgICYucHJldk1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsXG4gICAgJi5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRpbi1yYW5nZS1iZyAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJGluLXJhbmdlLWJnICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGluLXJhbmdlLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5zZWxlY3RlZCxcbiAgICAmLnN0YXJ0UmFuZ2UsXG4gICAgJi5lbmRSYW5nZSxcbiAgICAmLnNlbGVjdGVkLmluUmFuZ2UsXG4gICAgJi5zdGFydFJhbmdlLmluUmFuZ2UsXG4gICAgJi5lbmRSYW5nZS5pblJhbmdlLFxuICAgICYuc2VsZWN0ZWQ6Zm9jdXMsXG4gICAgJi5zdGFydFJhbmdlOmZvY3VzLFxuICAgICYuZW5kUmFuZ2U6Zm9jdXMsXG4gICAgJi5zZWxlY3RlZDpob3ZlcixcbiAgICAmLnN0YXJ0UmFuZ2U6aG92ZXIsXG4gICAgJi5lbmRSYW5nZTpob3ZlcixcbiAgICAmLnNlbGVjdGVkLnByZXZNb250aERheSxcbiAgICAmLnN0YXJ0UmFuZ2UucHJldk1vbnRoRGF5LFxuICAgICYuZW5kUmFuZ2UucHJldk1vbnRoRGF5LFxuICAgICYuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LFxuICAgICYuc3RhcnRSYW5nZS5uZXh0TW9udGhEYXksXG4gICAgJi5lbmRSYW5nZS5uZXh0TW9udGhEYXksXG4gICAgJi53ZWVrLnNlbGVjdGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzL19hcHB3b3JrL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gYnMtbWF0ZXJpYWwtZGF0ZXRpbWVwaWNrZXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCB5aXEoJGJhY2tncm91bmQpKTtcblxuICAuZHRwLWRhdGUsXG4gIC5kdHAtdGltZSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC5kdHAtY2xvc2UgPiBhIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4gIGhlYWRlci5kdHAtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhLXRvLWhleChyZ2JhKCRiYWNrZ3JvdW5kLCAuODUpLCAkYmFja2dyb3VuZDogIzAwMCk7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIHRhYmxlLmR0cC1waWNrZXItZGF5cyB0ciA+IHRkID4gYS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmR0cC1hY3R1YWwtbWVyaWRpZW4gYS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZHRwIC55ZWFyLXBpY2tlci1pdGVtIHtcbiAgICAmOmhvdmVyIHsgY29sb3I6ICRiYWNrZ3JvdW5kOyB9XG4gICAgJi5hY3RpdmUgeyBjb2xvcjogJGJhY2tncm91bmQ7IH1cbiAgfVxuXG4gIC5kdHAgLnN2Zy1jbG9jayBbc3Ryb2tlPVwiIzhCQzM0QVwiXSB7IHN0cm9rZTogJGJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICAuZHRwIC5zdmctY2xvY2sgW2ZpbGw9XCIjOEJDMzRBXCJdIHsgZmlsbDogJGJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICAuZHRwIC5zdmctY2xvY2sgW2ZpbGw9XCIjZmZmXCJdIHsgZmlsbDogJGNvbG9yICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZW1lIG1peGluXG5cbkBtaXhpbiBhcHB3b3JrLWNvbW1vbi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudCgnLnRleHQtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIGh0bWw6bm90KFtkaXI9cnRsXSkgLmJvcmRlci1wcmltYXJ5LCBodG1sW2Rpcj1ydGxdIC5ib3JkZXItcHJpbWFyeSB7IGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICBAaW5jbHVkZSBhcHB3b3JrLWJhZGdlLXZhcmlhbnQoJy5iYWRnZS1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstYmFkZ2Utb3V0bGluZS12YXJpYW50KCcuYmFkZ2Utb3V0bGluZS1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXBhZ2luYXRpb24tdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstcHJvZ3Jlc3MtYmFyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWxpc3QtZ3JvdXAtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstYWxlcnQtdmFyaWFudCgnLmFsZXJ0LXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstYWxlcnQtZGFyay12YXJpYW50KCcuYWxlcnQtZGFyay1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdG9vbHRpcC12YXJpYW50KCcudG9vbHRpcC1wcmltYXJ5LCAudG9vbHRpcC1wcmltYXJ5ID4gLnRvb2x0aXAsIC5uZ2ItdG9vbHRpcC1wcmltYXJ5ICsgbmdiLXRvb2x0aXAtd2luZG93JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstcG9wb3Zlci12YXJpYW50KCcucG9wb3Zlci1wcmltYXJ5LCAucG9wb3Zlci1wcmltYXJ5ID4gLnBvcG92ZXIsIC5uZ2ItcG9wb3Zlci1wcmltYXJ5ICsgbmdiLXBvcG92ZXItd2luZG93JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdGFibGUtcm93LXZhcmlhbnQoJy50YWJsZS1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWJ1dHRvbi12YXJpYW50KCcuYnRuLXByaW1hcnknLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1idXR0b24tb3V0bGluZS12YXJpYW50KCcuYnRuLW91dGxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWRyb3Bkb3duLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW5hdi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1jdXN0b20tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1jdXN0b20tZmlsZS1pbnB1dC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstZm9ybS1jb250cm9sLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1zd2l0Y2hlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1uYXZiYXItdmFyaWFudCgnLm5hdmJhci5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXNpZGVuYXYtdmFyaWFudCgnLnNpZGVuYXYuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1mb290ZXItdmFyaWFudCgnLmZvb3Rlci5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRvYXN0LXRoZW1lKCcuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yLCAkY29sb3IpO1xuICAuZmlsbC1wcmltYXJ5IHsgZmlsbDogJGJhY2tncm91bmQgfVxufVxuXG5AbWl4aW4gYXBwd29yay1jb21tb24tbWF0ZXJpYWwtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJy50ZXh0LXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGJnLXZhcmlhbnQoJy5iZy1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBodG1sOm5vdChbZGlyPXJ0bF0pIC5ib3JkZXItcHJpbWFyeSwgaHRtbFtkaXI9cnRsXSAuYm9yZGVyLXByaW1hcnkgeyBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7IH1cbiAgQGluY2x1ZGUgYXBwd29yay1iYWRnZS12YXJpYW50KCcuYmFkZ2UtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWJhZGdlLW91dGxpbmUtdmFyaWFudCgnLmJhZGdlLW91dGxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1wYWdpbmF0aW9uLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXByb2dyZXNzLWJhci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1saXN0LWdyb3VwLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWFsZXJ0LXZhcmlhbnQoJy5hbGVydC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWFsZXJ0LWRhcmstdmFyaWFudCgnLmFsZXJ0LWRhcmstcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRvb2x0aXAtdmFyaWFudCgnLnRvb2x0aXAtcHJpbWFyeSwgLnRvb2x0aXAtcHJpbWFyeSA+IC50b29sdGlwLCAubmdiLXRvb2x0aXAtcHJpbWFyeSArIG5nYi10b29sdGlwLXdpbmRvdycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXBvcG92ZXItdmFyaWFudCgnLnBvcG92ZXItcHJpbWFyeSwgLnBvcG92ZXItcHJpbWFyeSA+IC5wb3BvdmVyLCAubmdiLXBvcG92ZXItcHJpbWFyeSArIG5nYi1wb3BvdmVyLXdpbmRvdycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLXRhYmxlLXJvdy12YXJpYW50KCcudGFibGUtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1idXR0b24tdmFyaWFudCgnLmJ0bi1wcmltYXJ5JywgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtYnV0dG9uLW91dGxpbmUtdmFyaWFudCgnLmJ0bi1vdXRsaW5lLXByaW1hcnknLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1kcm9wZG93bi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgYXBwd29yay1tYXRlcmlhbC1uYXYtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWNvbnRyb2wtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtY3VzdG9tLWZpbGUtaW5wdXQtdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW1hdGVyaWFsLWZvcm0tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGFwcHdvcmstbWF0ZXJpYWwtc3dpdGNoZXItdGhlbWUoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBhcHB3b3JrLW5hdmJhci12YXJpYW50KCcubmF2YmFyLmJnLXByaW1hcnknLCAkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstc2lkZW5hdi12YXJpYW50KCcuc2lkZW5hdi5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IpO1xuICBAaW5jbHVkZSBhcHB3b3JrLWZvb3Rlci12YXJpYW50KCcuZm9vdGVyLmJnLXByaW1hcnknLCAkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIGFwcHdvcmstdG9hc3QtdGhlbWUoJy5iZy1wcmltYXJ5JywgJHByaW1hcnktY29sb3IsICRjb2xvcik7XG4gIC5maWxsLXByaW1hcnkgeyBmaWxsOiAkYmFja2dyb3VuZCB9XG59XG4iXX0= */
