@charset "UTF-8";

*,
*:before,
*:after,
*.tooltip-right:after,
*.tooltip-bottom:after,
*.tooltip-left:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
  -webkit-touch-callout: none;
  -ms-touch-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.5;
  height: 100%;
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  height: 100%;
  margin: 0;
  padding: 0;
}

body.darkroom:after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #555;
  background-color: rgba(0, 0, 0, 0.7);
}

body .darkroom-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

body .darkroom-banner > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  background-color: #fefefe;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
  font-size: 20px;
}

button,
input,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
}

input {
  line-height: normal;
}

input[type='text'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input[type='password'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input.required {
  color: #ff0000;
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  background-color: #ffffff;
  border: 2px solid #9768EB;
  color: #9768EB;
  font-weight: 500;
  letter-spacing: 1px;
  min-width: 110px;
  outline: 0;
  padding: 0 10px;
  text-transform: uppercase;
}

button.short {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
}

button.small {
  min-width: 80px;
}

button.medium {
  max-width: 150px;
  min-width: 150px;
  width: 150px;
}

button.primary,
button.blue {
  background-color: #9768EB;
  color: #ffffff;
}

button.disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button:disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button.resume {
  background-color: #D1404B;
  color: #ffffff;
  font-weight: bold;
}

button:focus {
  outline: 0;
}

button::-moz-focus-inner {
  border: 0;
}

button + button {
  margin-left: 8px;
}

@media (max-width: 768px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }
}

.input-checkbox {
  color: #9768EB;
  font-size: 20px;
}

.input-checkbox.disabled {
  color: #cdcdcd;
}

.footer-content {
  /*
  @include flex(1 0 auto);
  @include flex-row-center();
  @include flex-justify-content(center);
  */
  padding: 10px 0;
  background-color: #E1E1E6;
  border-top: none;
  color: #32254F;
}

.footer-content a {
  text-decoration: none;
  color: #9768EB;
}

[ng\:cloak],
[ng-cloak],
.ng-cloak {
  display: none !important;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 90px;
  min-height: 90px;
  height: 90px;
}

.header-content .logo {
  max-height: 90px;
  min-height: 90px;
  height: 90px;
  max-width: 140px;
  min-width: 140px;
  width: 140px;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: -5px;
  margin-left: 5px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px 30px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 28px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 15px;
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 25px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

.menu-content {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

@media (max-width: 768px) {
  .menu-content.resp-menu {
    background: none;
    position: absolute;
    pointer-events: none;
  }
}

.body-content {
  margin: 0;
  padding: 0;
}

.red-background {
  background-color: #c42a3b;
}

.yellow-background {
  background-color: #dfc03f;
}

.green-background {
  background-color: #20b769;
}

.blue-text {
  color: #9768EB;
}

.red-text {
  color: #c42a3b;
}

.grey-text {
  color: #808080;
}

.light-grey-text {
  color: #a7a7a7;
}

.yellow-text {
  color: #dfc03f;
}

.green-text {
  color: #20b769;
}

.whitebg {
  background-color: #ffffff;
}

.greybg {
  background-color: #efefef;
}

.drkgreybg {
  background-color: #2e2e2e;
}

.bluebg {
  background-color: #9768EB;
}

.main-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}

.view-flex {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-static {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.view-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-stack {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
}

.view-container.centered {
  -webkit-align-items: center;
  align-items: center;
}

.view-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.view-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.view-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.view-container.middle {
  -webkit-align-self: center;
  align-self: center;
}

.view-container.column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.view-container.column.center {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.column-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.column-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.column-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.column-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.column-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.column-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.column-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.column-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.column-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.row-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.row-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.row-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.row-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.row-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.row-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.row-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.row-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.row-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.row-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.hidden {
  display: none;
}

input[type=range] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  -moz-appearance: none;
  margin: 0;
  width: 100%;
  padding: 0;
  border-radius: 8px;
  background: transparent;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #9768EB), color-stop(0, #e8e8e8));
  cursor: pointer;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
  margin-top: -15px;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-range-thumb {
  -moz-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-focus-outer {
  border: 0;
  outline: 0;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  background: transparent;
  border-color: transparent;
  border-width: 16px 0;
  color: transparent;
}

input[type=range]::-ms-thumb {
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-ms-tooltip {
  display: none;
}

input[type=range]::-ms-fill-lower {
  background: #9768EB;
  border: 0.2px solid #9768EB;
  border-radius: 8px;
}

input[type=range]::-ms-fill-upper {
  background: #e8e8e8;
  border: 0.2px solid #e8e8e8;
  border-radius: 8px;
}

input[type=range]:focus::-ms-fill-lower {
  background: #9768EB;
}

input[type=range]:focus::-ms-fill-upper {
  background: #e8e8e8;
}

.program-exercise.daily-exercise {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  padding: 20px;
  gap: 10px;
}

.program-exercise.daily-exercise .daily-exercise-actions {
  min-width: 54px !important;
  max-width: 54px !important;
  width: 54px !important;
}

.program-exercise.daily-exercise .info .attributes {
  gap: 10px;
}

.program-exercise.daily-exercise .info .attributes > div {
  margin: 0 !important;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  overflow: hidden;
  background-color: #c4c4c4;
  background-color: rgba(196, 196, 196, 0.7);
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave {
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave.ng-leave-active {
  opacity: 0;
}

.modal-overlay.ng-enter.ng-enter-active,
.modal-overlay.ng-leave {
  opacity: 1;
}

.modal-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1001;
  overflow: hidden;
  pointer-events: none;
}

.modal-view .modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 100px;
  min-width: 200px;
  pointer-events: auto;
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-view .modal.ng-leave {
  transform: translateY(0%);
}

.modal-view .modal.ng-leave.ng-leave-active {
  transform: translateY(-200%);
}

.modal-view.ng-enter .modal {
  transform: translateY(-200%);
}

.modal-view.ng-enter.ng-enter-active .modal {
  transform: translateY(0);
}

.modal-animate-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 770px;
  min-width: 770px;
  width: 770px;
  overflow: hidden;
}

.modal-animate-container > .modal-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-transition: .125s linear all;
  -moz-transition: .125s linear all;
  -o-transition: .125s linear all;
  transition: .125s linear all;
}

.modal-animate-container > .modal-container.ng-leave.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.slide-right {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-left,
.modal-animate-container > .modal-container.ng-hide-add.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-right,
.modal-animate-container > .modal-container.ng-hide-add.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-left,
.modal-animate-container > .modal-container.ng-hide-remove.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-right,
.modal-animate-container > .modal-container.ng-hide-remove.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-right {
  transform: translateX(0px);
}

.modal-container {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 8px 8px 20px 0px #4a4a4a;
}

.modal-container.large {
  width: 970px;
}

.modal-container header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  border-top-left-radius: 8px;
  border-top-right-radius: 6px;
}

.modal-container header button.link {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  min-height: 30px;
  line-height: 20px;
  font-size: 12px;
}

.modal-container header button.link i.left {
  margin-right: 5px;
}

.modal-container header.alert {
  background-color: #c42a3b;
  color: #ffffff;
}

.modal-container header.confirm {
  background-color: #9768EB;
  color: #ffffff;
}

.modal-container header label {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
  margin-left: 10px;
  text-align: center;
}

.modal-container header label i.fa {
  margin: 0 4px;
}

.modal-container header label span {
  font-weight: 500;
}

.modal-container header .close {
  background-color: transparent;
  border: none;
  color: #000;
  font-size: 16px;
  font-weight: 700;
  margin: 0 8px;
  min-width: 0;
  opacity: .2;
  text-shadow: 0 1px 0 #ccc;
  text-transform: none;
}

.modal-container header .close:hover {
  cursor: pointer;
  opacity: 1;
}

.modal-container section {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 0 10px;
  min-height: 80px;
  min-width: 300px;
}

.modal-container footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.modal-container footer button:last-of-type {
  margin-right: 8px;
}

.loading-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #f9f9f9;
  background-color: rgba(125, 125, 125, 0.5);
}

.loading-view .loading-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 200px;
  min-width: 200px;
}

.loading-view .loading-container .fa-spinner {
  color: #fff;
  font-size: 60px;
}

.athlete-selection {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  background-color: #ffffff;
  border-top: 1px solid #e0e0e1;
  border-bottom: 1px solid #e0e0e1;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.athlete-selection > div,
.athlete-selection > .athlete-selection__tab {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #e0e0e1;
  box-sizing: border-box;
  color: #120d1c;
  cursor: pointer;
  font-size: 14px;
  min-width: auto;
  padding: 0 16px;
  position: relative;
}

.athlete-selection > div.active,
.athlete-selection > .athlete-selection__tab.active {
  background-color: #f2edfc;
  color: #120d1c;
}

.athlete-selection > div.active:after,
.athlete-selection > .athlete-selection__tab.active:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background-color: #9768eb;
}

.athlete-selection > div.active .close,
.athlete-selection > .athlete-selection__tab.active .close {
  cursor: pointer;
}

.athlete-selection > div:not(.active):hover,
.athlete-selection > .athlete-selection__tab:not(.active):hover {
  background-color: #f7f7f8;
  color: #120d1c;
  cursor: pointer;
}

.athlete-selection > div .name,
.athlete-selection > .athlete-selection__tab .name {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  font: 600 14px/20px "Nudista", sans-serif;
  color: #120d1c;
  letter-spacing: 0;
  margin: 0 8px 0 0;
}

.athlete-selection > div .close,
.athlete-selection > .athlete-selection__tab .close {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: inherit;
  font-weight: 400;
  min-width: auto;
  max-width: none;
  padding: 0;
  text-align: center;
}

.athlete-selection > div .close img,
.athlete-selection > .athlete-selection__tab .close img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.athlete-selection > div.team-nav {
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #ffffff;
  color: #6c6c7c;
  min-width: 44px;
  padding: 0;
  border: 0;
  border-right: 1px solid #e0e0e1;
}

.athlete-selection > div.team-nav:hover {
  cursor: pointer;
  color: #6c6c7c;
  background-color: #f7f7f8;
}

.athlete-selection > div.team-nav:after {
  display: none;
}

.athlete-selection > div.team-nav .team-nav__icon {
  display: block;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.athlete-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-bottom: 35px;
}

.athlete-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
  border-top: 1px solid #ccc;
  font-size: 13px;
  width: 100%;
}

.athlete-menu .athlete-search {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  border-right: 1px solid #cdcdcd;
  width: 140px;
}

.athlete-menu .athlete-search input[type='text'] {
  border: none;
  font-size: 20px;
  font-weight: 300;
  height: 50px;
  text-indent: 15px;
  width: 95%;
}

.athlete-menu .athlete-search ::-webkit-input-placeholder {
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-right: 1px solid #ccc;
  cursor: pointer;
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view:hover {
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  font-size: 23px;
}

.athlete-menu .athlete-toggle-view > i {
  cursor: pointer;
  margin: 8px;
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view > i:hover {
  color: #6d6e72;
}

.athlete-menu .athlete-toggle-view > i.active {
  color: #9768EB;
}

.athlete-menu .athlete-mobile-filters-btn {
  display: none;
}

.athlete-menu .athlete-filter-sort {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-width: 600px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #ccc;
  color: #6d6e72;
  cursor: pointer;
  min-width: 110px;
  position: relative;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 110px;
  width: 110px;
  padding: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
  position: absolute;
  top: 35%;
  right: 10px;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
  position: absolute;
  top: 52px;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item:hover {
  background-color: #dedfde;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item-selected {
  font-weight: bold;
  padding-left: 3px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .sort-item-selected {
  font-weight: bold;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle {
  margin-left: 7px;
  margin-right: 3px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle.not-active {
  color: transparent;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-asc {
  margin-left: 4px;
  margin-right: 3px;
  margin-top: 4px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-desc {
  margin-bottom: 4px;
  margin-left: 3px;
  margin-right: 4px;
  text-align: center;
}

@media (max-width: 768px) {
  body .athlete-menu {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  body .athlete-menu .athlete-mobile-filters-btn {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    order: 2;
    height: 48px;
    padding: 0 14px;
    gap: 7px;
    cursor: pointer;
    border-left: 1px solid #ccc;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #6d6e72;
  }

  body .athlete-menu .athlete-search {
    order: 1;
    height: 48px;
    min-width: 0;
  }

  body .athlete-menu .athlete-toggle-view {
    order: 3;
    min-width: unset;
    max-width: 70px;
    width: 70px;
    height: 48px;
  }

  body .athlete-menu .athlete-filter-sort {
    display: none !important;
    order: 4;
    width: 100%;
    min-width: unset;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu .athlete-filter-sort.mobile-open {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    flex-direction: column;
    background-color: #fff;
    overflow: visible;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    height: 50px;
    min-height: 50px;
    max-height: none;
    min-width: unset;
    padding: 0;
    border-right: none;
    border-bottom: 1px solid #eee;
    overflow: visible;
    position: relative;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box:last-child {
    border-bottom: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box::after {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    font-family: FontAwesome;
    content: "\F0D7";
    color: #6d6e72;
    font-size: 13px;
    pointer-events: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    display: flex;
    align-items: center;
    overflow: visible;
    padding: 0 30px 0 20px;
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label::after {
    content: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::after {
    content: 'All';
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::after {
    content: attr(data-sort-value);
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    font-family: inherit;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
    top: 50px;
    left: 0;
    z-index: 100;
    min-width: 100%;
  }

  body .athlete-menu .athlete-reset-view {
    order: 5;
    display: none;
    width: 100%;
    min-width: unset;
    max-width: unset;
    min-height: 50px;
    max-height: 50px;
    height: 50px;
    border-left: none;
    border-right: none;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu--filters-open .athlete-reset-view {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }

  body .label[data-field-name]:not(.label-placeholder):not([data-sort-value])::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }
}

.athlete-list-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.athlete-list-view .athlete-list-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.athlete-list-view .athlete-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 12px;
  background-color: #e1e1e1;
}

.athlete-list-view .athlete-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  background-color: #e1e1e1;
  color: #6d6e72;
  text-transform: uppercase;
  font-weight: 600;
}

.athlete-list-view .athlete-header .athlete-number {
  min-width: 70px;
}

.athlete-list-view .athlete-header .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 170px;
}

.athlete-list-view .athlete-header .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  min-width: 100px;
}

.athlete-list-view .athlete-header .athlete-programs {
  min-width: 140px;
}

.athlete-list-view .athlete-header .athlete-last-activity {
  min-width: 170px;
}

.athlete-list-view .athlete-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 20px;
}

.athlete-list-view .athlete-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 53px;
  min-height: 53px;
  height: 53px;
}

.athlete-list-view .athlete-row .athlete-number {
  color: #939497;
  min-width: 70px;
  padding-left: 20px;
}

.athlete-list-view .athlete-row .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  color: #f7f7f7;
  min-width: 170px;
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  -webkit-justify-content: center;
  justify-content: center;
  letter-spacing: 1.25px;
  min-width: 100px;
}

.athlete-list-view .athlete-row .athlete-programs {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 140px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row .athlete-programs > div {
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-programs i {
  padding-right: 12px;
}

.athlete-list-view .athlete-row .athlete-last-activity {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 170px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row:nth-child(even) > div {
  background-color: #fefefe;
}

.athlete-list-view .athlete-row:nth-child(even) .athlete-number,
.athlete-list-view .athlete-row:nth-child(even) .athlete-name {
  background-color: #2e2e2e;
}

.athlete-list-view .athlete-row:nth-child(odd) > div {
  background-color: #efefef;
}

.athlete-list-view .athlete-row:nth-child(odd) .athlete-number,
.athlete-list-view .athlete-row:nth-child(odd) .athlete-name {
  background-color: #242424;
}

.athlete-dashboard-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  background-color: #eef0ef;
}

.athlete-dashboard-layout .athlete-dashboard-layout-side {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.athlete-dashboard {
  font-size: 12px;
  margin-bottom: 20px;
  margin-top: 15px;
}

.athlete-dashboard .athlete-dashboard-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-height: 85px;
  padding-left: 10px;
  width: 990px;
}

.athlete-dashboard .athlete-dashboard-menu > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-right: 35px;
  text-transform: uppercase;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child {
  font-size: 18px;
  margin-right: 7px;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child > i:last-child {
  font-size: 13px;
}

.athlete-dashboard .athlete-dashboard-container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px;
  width: 100%;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  height: auto;
  min-height: 0;
  max-height: none;
  min-width: 0;
  width: calc((100% - 40px) / 3);
  background-color: #ffffff;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex: 1 0 100%;
  margin-top: 10px;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot button i {
  font-size: 18px;
  margin-right: 8px;
  vertical-align: middle;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: 100%;
}

.athlete-dashboard-actions {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 35px;
}

.athlete-dashboard-actions .action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  cursor: pointer;
  margin-bottom: 8px;
}

.athlete-dashboard-actions .action.disabled {
  cursor: default;
  color: #cdcdcd;
}

.athlete-dashboard-actions .action.disabled .action-icon,
.athlete-dashboard-actions .action.disabled .action-text {
  color: #cdcdcd;
}

.athlete-dashboard-actions .action .action-icon {
  font-size: 36px;
  margin-right: 5px;
}

.athlete-dashboard-actions .action .action-text {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 1px;
  margin-right: 20px;
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 0 40px;
  -ms-flex: 1 0 40px;
  flex: 1 0 40px;
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #9768EB;
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-name {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-number + .athlete-name {
  margin-left: 10px;
}

.athlete-info-box .bio-header:hover {
  background-color: rgba(17, 38, 75, 0.85);
}

.athlete-info-box .bio-body {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
  padding: 17px;
}

.athlete-info-box .bio-body > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-align-items: center;
  align-items: center;
  max-width: 120px;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic-thumb {
  position: relative;
  width: 100px;
  height: 100px;
  overflow: hidden;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  border: 1px solid #ccc;
  height: 130px;
  margin: 0 0 10px;
  width: 120px;
  cursor: pointer;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic img {
  position: absolute;
  left: 50%;
  top: 50%;
  height: 100%;
  width: auto;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.athlete-info-box .bio-body .athlete-profile .athlete-position {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
}

.athlete-info-box .bio-body .athlete-profile .athlete-weight {
  font-size: 12px;
  text-transform: uppercase;
}

.athlete-info-box .bio-body .athlete-stats {
  padding-left: 15px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 14px;
  line-height: 10px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score-tl-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 20px;
  line-height: 10px;
  padding-top: 10px;
}

.athlete-info-box .bio-body .athlete-stats .test-type {
  border-bottom: 1px solid #ccc;
  font-size: 22px;
  line-height: 22px;
  min-height: 30px;
}

.athlete-info-box .bio-body .athlete-stats .test-score {
  font-size: 40px;
  line-height: 40px;
  min-height: 50px;
  text-align: center;
}

.athlete-info-box .bio-footer {
  -webkit-flex: 1 0 50px;
  -ms-flex: 1 0 50px;
  flex: 1 0 50px;
  background-color: #f5f5f5;
  max-height: 50px;
}

.athlete-info-box .bio-footer > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  font-size: 12px;
  text-transform: uppercase;
  cursor: pointer;
  color: #6d6e72;
  letter-spacing: 0.6px;
}

.athlete-info-box .bio-footer > div i {
  font-size: 13px;
  margin-right: 8px;
}

.athlete-info-box .bio-footer > div i.icon-test {
  font-size: 18px;
}

.athlete-info-box .bio-footer > div:hover {
  background-color: #E8E8E8;
  color: #9768EB;
}

.athlete-info-box .bio-footer > div + div {
  border-left: 1px solid #E8E8E8;
}

.profile-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.menu-item + .menu-item {
  margin-left: 45px;
}

.menu-item {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.menu-item.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.menu-item:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.menu-item a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.menu-item span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.profile-detail {
  max-width: 210px;
  min-width: 210px;
  width: 210px;
}

@media (max-width: 768px) {
  .profile-detail.profile-detail {
    display: none;
  }
}

.profile-detail .data-emphasis {
  font-weight: 600;
}

.profile-detail .profile-pic {
  max-height: 175px;
  min-height: 175px;
  height: 175px;
  max-width: 200px;
  min-width: 200px;
  width: 200px;
  overflow: hidden;
}

.profile-detail .profile-pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.profile-detail .profile-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #9768EB;
  color: #ffffff;
  height: 50px;
  width: 200px;
  cursor: pointer;
}

.profile-detail .profile-action i {
  font-size: 17px;
  margin-right: 5px;
}

.profile-detail .profile-action span {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.profile-detail .profile-action.invisible {
  visibility: hidden;
}

.profile-detail .profile-data-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-data-container .profile-data > span:first-child {
  margin-right: 5px;
}

.profile-detail .profile-group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-group-container .group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #D9DAD9;
  border: 0;
  border-radius: 6px;
  margin: 6px 0 0;
  height: 30px;
  width: 115px;
  position: relative;
}

.profile-detail .profile-group-container .group-container .group-icon {
  border: 1px solid #999;
  margin-right: 8px;
  height: 16px;
  width: 12px;
}

.profile-detail .profile-group-container .group-container .group-save {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  background-color: #9768EB;
  color: #fff;
}

.profile-detail .profile-group-container .group-container .group-close {
  position: absolute;
  right: 5px;
  cursor: pointer;
  font-size: 22px;
}

.profile-data-container.mobile-profile-data {
  display: none;
}

@media (max-width: 768px) {
  .profile-data-container.mobile-profile-data {
    display: block;
  }
}

.profile-group-container.mobile-profile-group {
  display: none;
}

@media (max-width: 768px) {
  .profile-group-container.mobile-profile-group {
    display: block;
  }
}

@media (max-width: 768px) {
  .resp-month-view {
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .resp-score-today {
    flex-direction: column-reverse;
  }
}

@media only screen and (max-width: 600px) {
  body .profile-summary > .row-container.divided.resp-score-today > div + div {
    padding-left: 0;
  }
}

@media only screen and (max-width: 768px) {
  body .profile-summary {
    padding-left: 0px !important;
  }
}

.profile-summary {
  max-width: 780px;
  min-width: 780px;
  width: 780px;
}

.profile-summary .mobile-pic {
  display: none;
}

@media (max-width: 768px) {
  .profile-summary .mobile-pic {
    display: block;
    flex-shrink: 0;
    align-self: flex-start;
    margin-right: 16px;
  }

  .profile-summary .mobile-pic img {
    display: block;
    width: 120px;
    height: auto;
    aspect-ratio: 200 / 175;
    object-fit: contain;
  }
}

.profile-summary .profile-name {
  margin-bottom: 5px;
}

.profile-summary .profile-name > div {
  font-size: 24px;
  margin-right: 6px;
}

.profile-summary .profile-activity {
  margin-bottom: 10px;
  color: #999;
  font-size: 13px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity {
    flex-direction: column;
  }
}

.profile-summary .profile-activity > div:nth-child(n+2):before {
  color: #ccc;
  content: '|';
  margin: 0 9px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity > div:nth-child(n+2):before {
    margin: 0;
    content: '';
  }
}

.profile-summary .profile-activity > div > span:first-child {
  margin-right: 6px;
}

.profile-summary .profile-activity .blue-text {
  cursor: pointer;
}

.profile-summary .score-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .score-container {
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  padding-top: 20px;
}

.profile-summary .score-container .profile-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 85px;
  min-height: 85px;
  height: 85px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score.label-only {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.profile-summary .score-container .profile-score .profile-score-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 15px;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-name {
  letter-spacing: .25px;
  font-size: 16px;
  color: #AEAEAE;
  font-weight: 500;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-date {
  font-size: 14px;
  font-weight: 500;
  line-height: 25px;
  color: #AEAEAE;
}

.profile-summary .score-container .profile-score .profile-score-graph-canvas {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score .profile-score-label {
  color: #9768EB;
  font-size: 22px;
  font-weight: 400;
  margin-left: auto;
  text-align: right;
}

.profile-summary .score-container .profile-score .profile-score-label .profile-tl-change {
  color: #9768EB;
  font-size: 12px;
  margin-left: auto;
  text-align: right;
}

.profile-summary .today-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .today-program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
  cursor: pointer;
}

.profile-summary .today-program > div {
  margin-left: 10px;
}

.profile-summary .today-program > div:first-child {
  color: #ccc;
  font-size: 22px;
}

.profile-summary .today-program div.icon-checkbox-checked {
  color: #AFB0AE;
}

.profile-summary .today-program div.icon-checkbox-checked.blue-check {
  color: #9768EB;
}

.profile-summary .today-program .program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-size: 16px;
  font-weight: 500;
}

.profile-summary .today-program .program .light-grey-text {
  color: #AFB1B3;
}

.profile-summary .today-notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
}

.profile-summary .today-notice > div {
  margin-left: 20px;
}

.profile-summary .today-notice .notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  padding-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
}

.profile-summary .today-notice .notice-button > button {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 12px;
  font-weight: 600;
}

.profile-summary .today-notice.yellow {
  background-color: #dfc03f;
}

.profile-summary .today-notice.yellow .notice {
  color: #fefefe;
}

.profile-summary .today-notice.yellow .notice-button > button {
  background-color: #ceb74e;
  border-color: transparent;
  color: #fefefe;
}

.spaced-top-large {
  margin-top: 45px;
}

.spaced-bottom-medium {
  margin-bottom: 35px;
}

.burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0;
  margin: 0;
  line-height: 1;
  padding-bottom: 7px;
  pointer-events: auto;
}

.menu-mobile {
  pointer-events: auto;
}

.menu-desktop {
  display: flex;
}

.menu-mobile {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.menu-mobile .menu-item {
  padding: 15px 20px;
  border-bottom: 1px solid #333;
  margin-left: 0;
}

.menu-divider {
  height: 1px;
  background: #333;
  margin: 10px 0;
}

/* MOBILE BREAKPOINT */

@media (max-width: 768px) {
  .menu-desktop {
    display: none;
  }

  .burger {
    display: block;
  }

  .menu-mobile {
    display: flex;
    width: 100vw;
  }

  .profile-menu {
    width: unset !important;
    justify-content: center;
    align-items: center;
    max-height: 59px;
    height: 59px;
    min-height: 59px;
  }
}

.athlete-nav {
  display: none;
  position: relative;
}

@media (max-width: 768px) {
  .athlete-nav {
    display: block;
    padding: 8px 0 4px;
  }
}

.athlete-nav__burger {
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  line-height: 1;
  margin-left: 15px;
}

.athlete-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  background: #1c1c1c;
  z-index: 1000;
  min-width: 150px;
}

.athlete-nav__item {
  padding: 14px 20px;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 1px solid #333;
  white-space: nowrap;
}

.athlete-nav__item.active {
  color: #efefef;
}

.athlete-nav__item:hover {
  color: #efefef;
}

/* ============================================================
   Athlete navigation — vertical left sidebar
   Matches the practitioner/admin sidebar style.
   ============================================================ */

.menu-content:has(.profile-menu--sidebar.has-items) {
  position: fixed;
  top: 60px;
  left: 0;
  bottom: 0;
  width: 240px;
  min-width: 240px;
  max-width: 240px;
  min-height: 0;
  max-height: none;
  height: auto;
  padding: 0;
  background-color: #ffffff;
  border-right: 1px solid #d1d1d1;
  z-index: 900;
  overflow-x: hidden;
  overflow-y: auto;
  display: block;
  transition: width 0.25s ease, min-width 0.25s ease, max-width 0.25s ease;
}

.main-view:has(.athlete-selection) .menu-content:has(.profile-menu--sidebar.has-items) {
  top: 104px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 60px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 910;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * .athlete-selection {
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 104px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * {
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  z-index: 895;
}

.menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
  width: 70px;
  min-width: 70px;
  max-width: 70px;
}

.profile-menu--sidebar.has-items {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 100%;
  min-height: 0;
  max-height: none;
  padding-left: 0;
  padding-right: 0;
}

.profile-menu--sidebar.has-items .sidebar-header {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 12px 16px 24px;
  background-color: #f6f6f7;
  border-bottom: 1px solid #d1d1d1;
  position: sticky;
  top: 0;
  z-index: 1;
}

.profile-menu--sidebar.has-items .sidebar-header__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #32254f;
  white-space: nowrap;
  overflow: hidden;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: none;
  background: transparent;
  color: #6d6d6d;
  line-height: 1;
  cursor: pointer;
  margin-right: -6px;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle svg {
  display: block;
  width: 22px;
  height: 22px;
}

.profile-menu--sidebar.has-items .menu-desktop {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 12px;
}

.profile-menu--sidebar.has-items .menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  min-height: 0;
  max-height: none;
  margin: 0 0 4px 0;
  padding: 0 12px;
  border: none;
  border-radius: 4px;
  color: #35354b;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.3px;
  text-transform: none;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items .menu-item:not(.active):hover {
  border: none;
  background-color: #f2edfc;
}

.profile-menu--sidebar.has-items .menu-item.active {
  border: none;
  background-color: #f2edfc;
  color: #35354b;
}

.profile-menu--sidebar.has-items .menu-item + .menu-item {
  margin-left: 0;
}

.profile-menu--sidebar.has-items .menu-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.profile-menu--sidebar.has-items .menu-item__icon svg {
  display: block;
  width: 16px;
  height: 16px;
}

.profile-menu--sidebar.has-items .menu-item__label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items .sidebar-burger {
  display: none;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  padding: 16px 24px;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__avatar {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__info {
  flex: 1 1 auto;
  min-width: 0;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__name {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #3c3c43;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__subtitle {
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  color: #8e8e93;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  margin-top: auto;
  padding: 16px 12px;
  border-top: 1px solid #d1d1d1;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 1 auto;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 10px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background-color: #ffffff;
  color: #3c3c43;
  font-size: 16px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn:hover {
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn .icon {
  font-size: 12px;
  line-height: 1;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-label {
  white-space: nowrap;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header__title {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member {
  justify-content: center;
  padding: 12px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member__info {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer {
  padding: 12px 8px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-btn {
  padding: 10px;
  gap: 0;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ * {
  margin-left: 240px;
  transition: margin-left 0.25s ease;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
  margin-left: 70px;
}

/* The scrim only exists in the off-canvas tier below. */

.sidebar-scrim {
  display: none;
}

/* Mobile: sidebar slides in from the left, toggled by a fixed burger */

@media (max-width: 768px) {
  .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    display: block;
    position: fixed;
    top: 60px;
    left: 240px;
    right: 0;
    bottom: 0;
    z-index: -1;
    background-color: rgba(0, 0, 0, 0.4);
  }

  .main-view:has(.profile-menu--sidebar.has-items) .athlete-nav {
    display: none;
  }

  .main-view:has(.athlete-selection) .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    top: 104px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--athlete,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--prac {
    padding-left: 60px;
  }

  .menu-content:has(.profile-menu--sidebar.has-items) {
    top: 60px;
    left: -240px;
    width: 240px;
    min-width: 240px;
    max-width: 240px;
    pointer-events: auto;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
    transition: left 0.25s ease;
    z-index: 920;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-mobile-open) {
    left: 0;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
    width: 240px;
    min-width: 240px;
    max-width: 240px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ *,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
    margin-left: 0;
  }

  .profile-menu--sidebar.has-items .sidebar-header {
    display: none;
  }

  .profile-menu--sidebar.has-items .sidebar-burger {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    color: #ffffff;
    font-size: 20px;
    z-index: 950;
    cursor: pointer;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item {
    justify-content: flex-start;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-member__info {
    display: block;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-btn {
    padding: 10px 16px;
    gap: 8px;
  }
}

/* ============================================================
   Athlete welcome header (home page)
   ============================================================ */

.view-layout:has(.athlete-welcome-header),
.view-layout:has(.today-asks) {
  justify-content: flex-start;
  flex: 0 0 auto;
}

.view-layout > div:has(> .athlete-welcome-header),
.view-layout > div:has(> .today-asks) {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.view-layout.athlete-home-row {
  justify-content: flex-start;
}

.athlete-welcome-header {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
  box-sizing: border-box;
}

.athlete-welcome-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 16px 40px 16px 20px;
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
}

.athlete-welcome-header__profile {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  flex: 1 1 auto;
}

.athlete-welcome-header__avatar {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  background-color: #f0f0f0;
}

.athlete-welcome-header__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.athlete-welcome-header__info {
  min-width: 0;
}

.athlete-welcome-header__title {
  margin: 0 0 8px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.athlete-welcome-header__title-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.athlete-welcome-header__title-row .athlete-welcome-header__title {
  margin-bottom: 0;
}

.athlete-welcome-header__action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}

.athlete-welcome-header__action i {
  font-size: 14px;
}

.athlete-welcome-header__action:hover {
  text-decoration: underline;
}

.athlete-welcome-header__action-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.athlete-welcome-header__take-test {
  flex: 0 0 auto;
}

.athlete-welcome-header__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.athlete-welcome-header__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 16px;
  background-color: #f2edfc;
  color: #533d82;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
}

.athlete-welcome-header__last-test {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
}

.athlete-welcome-header__last-test-date {
  color: #4f4f4f;
}

.athlete-welcome-header__last-test-sep {
  flex: 0 0 auto;
  color: #d1d1d1;
}

.athlete-welcome-header__stats {
  display: flex;
  align-items: flex-start;
  gap: 36px;
  flex: 0 0 auto;
}

.athlete-welcome-header__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  min-width: 0;
}

.athlete-welcome-header__stat-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.athlete-welcome-header__stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon svg,
.athlete-welcome-header__stat-icon img {
  display: block;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon--streak {
  color: #f08a24;
}

.athlete-welcome-header__stat-icon--training svg {
  width: 28px;
  height: 28px;
}

.athlete-welcome-header__stat-icon--skel {
  background: #ececef;
  border-radius: 6px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__ring-track {
  fill: none;
  stroke: #e5e5e5;
  stroke-width: 3.5;
}

.athlete-welcome-header__ring-progress {
  fill: none;
  stroke: #20b769;
  stroke-width: 3.5;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  transition: stroke-dashoffset 0.3s ease;
}

.athlete-welcome-header__stat-value {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.athlete-welcome-header__stat-value span {
  font-size: 24px;
  font-weight: 600;
}

.athlete-welcome-header__stat-label {
  margin-top: 2px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: #000000;
}

.athlete-welcome-header__stat-sublabel {
  margin-top: 1px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: #4f4f4f;
}

.athlete-welcome-header__skel {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skel--value {
  width: 4.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label {
  width: 7.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label-wide {
  width: 11em;
}

.athlete-welcome-header__skel--sublabel {
  width: 5em;
  height: 1em;
}

.athlete-welcome-header__avatar--skeleton {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skeleton-title {
  width: 180px;
  max-width: 100%;
  height: 30px;
  margin-bottom: 16px;
}

.athlete-welcome-header__skeleton-badge {
  width: 64px;
  height: 22px;
  border-radius: 16px;
}

@media (max-width: 900px) {
  .athlete-welcome-header__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 16px 24px 16px 20px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    width: 100%;
    gap: 16px;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .athlete-welcome-header {
    padding: 16px 16px 0;
  }

  .athlete-welcome-header__inner {
    padding: 16px 16px 16px 16px;
  }

  .athlete-welcome-header__title {
    font-size: 22px;
  }

  .athlete-welcome-header__avatar {
    width: 56px;
    height: 56px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    align-items: start;
    gap: 12px;
    width: 100%;
    padding-top: 16px;
    border-top: 1px solid #ececec;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .athlete-welcome-header {
    padding: 16px 12px 0;
  }

  .athlete-welcome-header__inner {
    padding: 14px;
    gap: 14px;
  }

  .athlete-welcome-header__profile {
    gap: 12px;
  }

  .athlete-welcome-header__avatar {
    width: 48px;
    height: 48px;
  }

  .athlete-welcome-header__title {
    font-size: 20px;
  }

  .athlete-welcome-header__badge {
    font-size: 12px;
    line-height: 16px;
  }

  .athlete-welcome-header__stats {
    gap: 8px;
    padding-top: 14px;
  }

  .athlete-welcome-header__stat {
    gap: 6px;
    min-width: 0;
  }

  .athlete-welcome-header__stat-icon,
  .athlete-welcome-header__stat-icon--streak,
  .athlete-welcome-header__stat-icon--programs {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon svg,
  .athlete-welcome-header__stat-icon img,
  .athlete-welcome-header__stat-icon--streak svg,
  .athlete-welcome-header__stat-icon--streak img,
  .athlete-welcome-header__stat-icon--programs svg,
  .athlete-welcome-header__stat-icon--programs img {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon--training svg {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-value {
    font-size: 16px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-value span {
    font-size: 16px;
  }

  .athlete-welcome-header__stat-label {
    font-size: 11px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-sublabel {
    font-size: 10px;
    line-height: 1.25;
  }

  .athlete-welcome-header__skeleton-title {
    height: 20px;
    width: 140px;
  }
}

/* ============================================================
   Progress Insights (athlete home)
   ============================================================ */

.progress-insights {
  padding: 16px 24px 0;
}

.progress-insights button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.progress-insights button + button {
  margin-left: 0;
}

.progress-insights__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 145px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-insights__panel:has(.progress-insights__empty) {
  height: auto;
  min-height: 145px;
  padding-top: 16px;
}

.progress-insights__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 20px;
  box-sizing: border-box;
}

.progress-insights__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.progress-insights__link:hover {
  opacity: 0.85;
}

.progress-insights__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.progress-insights__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px 16px 8px;
  text-align: center;
  box-sizing: border-box;
}

.progress-insights__empty-title {
  margin: 0 0 12px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.progress-insights__empty-description {
  margin: 0 0 14px;
  width: 452px;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
  color: #6D6D6D;
}

.progress-insights__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 166px;
  min-width: 166px;
  max-width: 166px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.progress-insights__empty-cta:hover {
  opacity: 0.9;
}

.progress-insights__cards,
.progress-insights__skeleton {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 83px;
  height: 83px;
  min-height: 83px;
  border-top: 1px solid #e7e7e7;
  box-sizing: border-box;
}

.progress-insights__card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  padding: 10px 12px;
  box-sizing: border-box;
  background: #FFFFFF;
  border-right: 1px solid #e7e7e7;
}

.progress-insights__card:last-child {
  border-right: 0;
}

.progress-insights__metric {
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6D6D6D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.progress-insights__score-block {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.progress-insights__score {
  font-family: 'Nudista', sans-serif;
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.progress-insights__change--up {
  color: #20b769;
}

.progress-insights__change--down {
  color: #c42a3b;
}

.progress-insights__trend-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .progress-insights {
    padding: 12px 16px 0;
  }
}

@media (max-width: 480px) {
  .progress-insights {
    padding: 12px 12px 0;
  }

  .progress-insights__panel {
    padding: 0;
  }

  .progress-insights__title {
    font-size: 18px;
  }

  .progress-insights__card {
    padding: 10px 12px;
  }

  .progress-insights__header {
    padding: 0 12px;
  }

  .progress-insights__metric {
    white-space: normal;
  }

  .progress-insights__empty-cta {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}

/* ============================================================
   Today asks (athlete home)
   ============================================================ */

.today-asks {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
}

.today-asks__panel {
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.today-asks__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 20px 20px 16px;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
}

.today-asks__panel:has(.today-asks__expandable):not(:has(.today-asks__alert-row)) .today-asks__header {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  color: #000000;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__chevron {
  color: #4f4f4f;
  font-size: 14px;
  flex: 0 0 auto;
}

.today-asks__alert-row {
  display: flex;
  align-items: center;
  padding: 0 20px 16px 12px;
}

.today-asks__panel:has(.today-asks__expandable) .today-asks__alert-row {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__alert {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0 0 0 16px;
  min-height: 44px;
  min-width: 0;
  height: auto;
  border: 1px solid #fde8be;
  border-radius: 6px;
  background: #fffaf0;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #d68b00;
  box-shadow: none;
  outline: 0;
}

.today-asks__alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border: 1.5px solid #d68b00;
  border-radius: 50%;
  color: #d68b00;
  font-size: 10px;
  line-height: 1;
}

.today-asks__alert-icon .fa {
  line-height: 1;
}

.today-asks__alert-text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
  text-transform: none;
}

.today-asks__alert-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  color: #6d6d6d;
  font-size: 12px;
}

.today-asks__body {
  display: flex;
  min-height: 264px;
  min-width: 0;
}

.today-asks__list {
  flex: 0 1 420px;
  max-width: 420px;
  min-width: 0;
  padding: 0;
  border-right: 1px solid #e7e7e7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.today-asks__item {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin: 0;
  padding: 12px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #4f4f4f;
  min-width: 0;
  height: auto;
  box-shadow: none;
}

.today-asks__item:hover {
  background: transparent;
}

.today-asks__item--selected {
  background: transparent;
}

.today-asks__item--selected .today-asks__badge:not(.today-asks__badge--done) {
  background: #f2edfc;
  color: #32254f;
}

.today-asks__item--selected .today-asks__item-name {
  color: #000000;
  font-weight: 600;
}

.today-asks__item--completed .today-asks__item-name {
  text-decoration: line-through;
  color: #4f4f4f;
}

.today-asks__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #b0b0b0;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-asks__item-name {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.today-asks__detail {
  flex: 1 1 724px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
  padding: 20px 20px 20px 32px;
  background-color: #fbf9ff;
  background-image: url(../images/today-background.png), linear-gradient(277.89deg, #fbf9ff 11.99%, #f0e8ff 29.68%, #ece2ff 45.91%, #eee6ff 61.25%, #ffffff 91.86%);
  background-position: center right, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-blend-mode: lighten, normal;
  min-width: 0;
}

.today-asks__done {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  gap: 8px;
  padding: 12px 16px;
}

.today-asks__done-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #9768eb;
  color: #ffffff;
  font-size: 20px;
}

.today-asks__done-eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__done-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
}

.today-asks__action {
  display: flex;
  flex: 0 1 212px;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  width: auto;
  max-width: 212px;
  min-width: 0;
}

.today-asks__action-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
}

.today-asks__eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__action-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
  margin: 0;
  overflow-wrap: anywhere;
}

.today-asks__cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  max-width: 212px;
  min-width: 0;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-radius: 4px;
  background: #9768eb;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
}

.today-asks__cta:hover {
  opacity: 0.92;
}

.today-asks__cta:focus {
  outline: 0;
}

.today-asks__cta-label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  width: auto;
  height: 16px;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
  text-transform: none;
  color: #ffffff;
}

.today-asks__cta-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  font-size: 16px;
  line-height: 1;
}

.today-asks__preview {
  flex: 0 1 404px;
  width: auto;
  max-width: 404px;
  min-width: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.02);
}

.today-asks__preview-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 156px;
  background: linear-gradient(135deg, #c8e6b8 0%, #7cbc6e 100%);
}

.today-asks__preview-art--photo {
  height: auto;
  background: none;
}

.today-asks__preview-photo {
  display: block;
  width: 100%;
  height: auto;
}

.today-asks__preview-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: rgba(46, 125, 50, 0.35);
}

.today-asks__preview-icon img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.today-asks__preview-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 12px 12px;
}

.today-asks__preview-name {
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
  line-height: 20px;
  overflow-wrap: anywhere;
}

.today-asks__preview-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__preview-tags {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.today-asks__preview-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: #f6f6f6;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  color: #6d6d6d;
  text-align: center;
}

.today-asks__preview-tag .fa {
  font-size: 10px;
  line-height: 1;
}

.today-asks__preview-tag-icon {
  display: block;
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  color: inherit;
}

.today-asks__preview-tag-icon--img {
  object-fit: contain;
}

@media (max-width: 1100px) {
  .today-asks__detail {
    gap: 24px;
    padding: 20px;
  }
}

@media (max-width: 900px) {
  .today-asks__body {
    flex-direction: column;
  }

  .today-asks__list {
    flex: none;
    max-width: none;
    border-right: 0;
    border-bottom: 1px solid #e7e7e7;
    padding: 8px 0;
  }

  .today-asks__detail {
    flex: none;
    flex-direction: column;
    align-items: stretch;
    padding: 24px 20px;
    gap: 20px;
  }

  .today-asks__action {
    flex: none;
    width: 100%;
    max-width: none;
  }

  .today-asks__preview {
    flex: none;
    width: 100%;
    max-width: 404px;
    align-self: center;
  }
}

@media (max-width: 768px) {
  .today-asks {
    padding: 12px 16px 0;
  }

  .today-asks__header {
    padding: 14px 16px;
  }

  .today-asks__action,
  .today-asks__action-copy {
    align-items: center;
    text-align: center;
  }

  .today-asks__alert-row {
    padding: 0 16px 12px 8px;
  }

  .today-asks__alert-text {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .today-asks {
    padding: 10px 12px 0;
  }

  .today-asks__header {
    padding: 12px 14px;
  }

  .today-asks__body {
    min-height: 0;
  }

  .today-asks__detail {
    padding: 16px;
    gap: 14px;
  }

  .today-asks__action {
    width: 100%;
    min-width: 0;
  }

  .today-asks__action-copy {
    white-space: normal;
  }

  .today-asks__preview {
    width: 100%;
    max-width: none;
  }
}

/* ============================================================
   My Schedule
   ============================================================ */

.athlete-home-row {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 0 32px;
  box-sizing: border-box;
}

.athlete-home-row__inner {
  display: flex;
  align-items: stretch;
  gap: 20px;
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 0 24px;
  box-sizing: border-box;
}

.athlete-home-row__calendar {
  flex: 1 1 588px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row__insights {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 492px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row .my-schedule-wrap {
  max-width: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.athlete-home-row .my-schedule {
  max-width: none;
}

.athlete-home-row .progress-insights {
  padding: 0;
}

.athlete-home-row .progress-insights__panel {
  max-width: none;
}

.athlete-home-row .upcoming-session {
  padding: 0;
}

.athlete-home-row .upcoming-session__panel {
  max-width: none;
}

.athlete-home-row .bodymap-card {
  padding: 0;
}

.athlete-home-row .bodymap-card__panel {
  max-width: none;
}

@media (max-width: 900px) {
  .athlete-home-row__inner {
    flex-direction: column;
  }

  .athlete-home-row__calendar,
  .athlete-home-row__insights {
    flex: none;
    width: 100%;
  }

  .my-schedule {
    height: auto;
    min-height: 0;
  }
}

@media (max-width: 768px) {
  .athlete-home-row {
    padding: 12px 16px 28px;
  }

  .athlete-home-row__inner {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 480px) {
  .athlete-home-row {
    padding: 10px 12px 24px;
  }
}

.my-schedule-wrap {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8px 24px 32px;
  box-sizing: border-box;
}

.my-schedule {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 640px;
  height: 520px;
  padding: 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
}

.my-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.my-schedule button + button {
  margin-left: 0;
}

.my-schedule__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 0 0 auto;
}

.my-schedule__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
}

.my-schedule__edit-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 8px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.my-schedule__edit-link:hover {
  opacity: 0.85;
}

.my-schedule__edit-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.my-schedule__controls {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 8px;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
}

.my-schedule__controls--month {
  justify-content: space-between;
}

.my-schedule__week,
.my-schedule__month {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.my-schedule__today-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 12px;
  border: 1px solid #d8d8d8;
  border-radius: 4px;
  background: #f3f3f4;
  color: #000;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__today-btn:hover {
  background: #ebebed;
}

.my-schedule__nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
  height: 36px;
}

.my-schedule__nav--compact {
  flex: 0 0 auto;
}

.my-schedule__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #1a1a1a;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__nav-btn .fa {
  font-size: 14px;
}

.my-schedule__nav-btn:hover {
  background: #f3f3f4;
}

.my-schedule__range {
  flex: 0 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000;
  white-space: nowrap;
}

.my-schedule__range-emphasis {
  font-weight: 600;
}

.my-schedule__range-icon {
  display: block;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.my-schedule__toggle {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 auto;
  width: 133px;
  height: 36px;
  padding: 4px;
  gap: 2px;
  border: 1px solid #e7e7e7;
  border-radius: 4px;
  background: #f6f6f6;
  margin-left: auto;
  box-sizing: border-box;
}

.my-schedule__toggle-btn {
  flex: 1 1 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__toggle-btn.is-active {
  background: #fff;
  color: #1a1a1a;
  box-shadow: none;
}

.my-schedule__month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 1 1 auto;
}

.my-schedule__month-name {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__day-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  height: 90px;
  min-height: 90px;
  margin-bottom: 20px;
  box-sizing: border-box;
}

.my-schedule__day-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  height: 90px;
  min-height: 90px;
  max-height: 90px;
  padding: 12px 2px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
}

.my-schedule__day-cell.is-selected {
  background: #f2edfc;
  border-color: #8a70d6;
}

.my-schedule__day-cell:hover:not(.is-selected) {
  background: rgba(0, 0, 0, 0.03);
}

.my-schedule__day-name {
  font-size: 12px;
  font-weight: 500;
  color: #8a8a8a;
}

.my-schedule__day-number {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}

.my-schedule__day-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 8px;
  margin-top: 2px;
}

.my-schedule__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #5b3a9e;
}

.my-schedule__day-summary {
  margin-bottom: 16px;
  font-size: 14px;
  color: #8a8a8a;
}

.my-schedule__day-summary-date {
  color: #1a1a1a;
  font-weight: 400;
}

.my-schedule__day-summary-weekday {
  font-weight: 600;
}

.my-schedule__day-summary-rest {
  font-weight: 400;
}

.my-schedule__day-summary-meta {
  font-weight: 400;
  color: #8a8a8a;
}

.my-schedule__trainings {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-schedule__training {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 12px 14px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.my-schedule__training:hover {
  border-color: #d4d4d4;
  background: #fafafa;
}

.my-schedule__training-thumb {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 6px;
  object-fit: cover;
  background: #f3f3f4;
}

.my-schedule__training-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.my-schedule__training-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__training-name {
  font-size: 13px;
  color: #8a8a8a;
}

.my-schedule__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 16px 20px;
}

.my-schedule__empty--modal {
  padding: 28px 12px;
}

.my-schedule__empty-message {
  margin: 0 0 20px;
  font-size: 15px;
  color: #8a8a8a;
}

.my-schedule__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 8px 16px 8px 12px;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__empty-cta:hover {
  background: #844de7;
}

.my-schedule__empty-cta-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.my-schedule__empty-link {
  margin-top: 14px;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.my-schedule__empty-link:hover {
  opacity: 0.85;
}

.my-schedule__footer-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-top: 20px;
  padding: 12px 16px 12px 12px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: #fff;
  color: #9768EB;
  font-size: 15px;
  font-weight: 500;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__footer-btn:hover {
  background: #f2edfc;
}

.my-schedule__month-labels,
.my-schedule__month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.my-schedule__month-labels {
  margin-bottom: 8px;
  padding: 8px 0;
  background: #f7f7f8;
  border-radius: 6px;
}

.my-schedule__month-label {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: #8a8a8a;
}

.my-schedule__month-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 56px;
  max-height: none;
  padding: 8px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.my-schedule__month-cell.is-empty {
  cursor: default;
  pointer-events: none;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number,
.my-schedule__month-cell.is-today .my-schedule__month-day-number {
  background: #f3f3f4;
  color: #1a1a1a;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number {
  background: #f2edfc;
  color: #5b3a9e;
}

.my-schedule__month-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.my-schedule__modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.my-schedule__modal-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 648px;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 20px 22px 24px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #fff;
  box-sizing: border-box;
  box-shadow: 0 4px 6px -2px rgba(16, 24, 40, 0.03), 0 12px 16px -4px rgba(16, 24, 40, 0.08);
}

.my-schedule__modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8e8e8;
}

.my-schedule__modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
}

.my-schedule__modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-height: 28px;
  max-height: 28px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  cursor: pointer;
}

.my-schedule__modal-close:hover {
  background: #f3f3f4;
  color: #1a1a1a;
}

@media (max-width: 768px) {
  .my-schedule-wrap {
    padding: 8px 16px 28px;
  }

  .my-schedule {
    padding: 20px;
  }

  .my-schedule__controls {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .my-schedule__day-name {
    font-size: 11px;
  }

  .my-schedule__day-strip {
    height: auto;
    min-height: 0;
  }

  .my-schedule__day-cell {
    height: auto;
    min-height: 72px;
    max-height: none;
    padding: 10px 1px 8px;
  }

  .my-schedule__training-thumb {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 480px) {
  .my-schedule {
    position: relative;
    padding: 12px;
    gap: 16px;
  }

  .my-schedule__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-right: 108px;
  }

  .my-schedule__controls {
    align-items: center;
    gap: 8px;
  }

  .my-schedule__toggle {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    width: auto;
    height: 28px;
    margin-left: 0;
    padding: 3px;
  }

  .my-schedule__toggle-btn {
    flex: 0 0 auto;
    padding: 0 8px;
    font-size: 11px;
  }

  .my-schedule__nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__range {
    font-size: 12px;
    white-space: normal;
  }

  .my-schedule__month-nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__day-strip {
    gap: 2px;
    margin-bottom: 14px;
  }

  .my-schedule__day-cell {
    min-height: 60px;
    padding: 8px 0 6px;
    gap: 4px;
  }

  .my-schedule__day-name {
    font-size: 10px;
  }

  .my-schedule__day-number {
    font-size: 13px;
  }

  .my-schedule__month-cell {
    gap: 2px;
    min-height: 44px;
    padding: 4px 0;
  }

  .my-schedule__month-day-number {
    width: 26px;
    height: 26px;
    font-size: 12px;
  }

  .my-schedule__month-label {
    font-size: 10px;
  }

  .my-schedule__training-thumb {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
  }
}

/* Shared first-paint placeholders for home dashboard cards. Pulse, don't
   show empty-state copy — that would read as "nothing scheduled" then jump. */

@keyframes home-skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0.45;
  }
}

.home-skeleton-block {
  display: block;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.home-skeleton-block--badge {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
}

.home-skeleton-block--line {
  flex: 1 1 auto;
  height: 14px;
  max-width: 220px;
}

.home-skeleton-block--line-short {
  height: 12px;
  width: 96px;
}

.home-skeleton-block--preview {
  width: 100%;
  height: 140px;
  border-radius: 6px;
}

.home-skeleton-block--thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 6px;
}

.home-skeleton-block--day {
  flex: 1 1 0;
  height: 64px;
  border-radius: 6px;
}

.home-skeleton-block--card {
  height: 100px;
  width: 100%;
  border-radius: 6px;
}

.today-asks__skeleton-row,
.my-schedule__skeleton-training {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
}

.today-asks__skeleton-preview {
  flex: 1 1 auto;
  min-width: 0;
  padding: 20px;
}

.my-schedule__skeleton-days {
  display: flex;
  gap: 8px;
}

.my-schedule__skeleton-training {
  padding: 12px 0;
}

.progress-insights__card--skeleton .home-skeleton-block--line {
  max-width: 88px;
  height: 28px;
}

/* ============================================================
   Upcoming session (athlete home — right column under Progress Insights)
   ============================================================ */

.upcoming-session {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.upcoming-session button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.upcoming-session button + button {
  margin-left: 0;
}

.upcoming-session__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: visible;
}

.upcoming-session__panel--booked-compact {
  height: 170px;
  min-height: 170px;
  max-height: 170px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__body--no-join {
  flex: 1 1 auto;
  justify-content: center;
  min-height: 0;
  gap: 0;
  padding: 0 20px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__session,
.upcoming-session__panel--booked-compact .upcoming-session__menu {
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__menu-list {
  z-index: 30;
}

.upcoming-session__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.upcoming-session__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.upcoming-session__link:hover {
  opacity: 0.85;
}

.upcoming-session__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.upcoming-session__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.upcoming-session__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.upcoming-session__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px 20px 28px;
  text-align: center;
  box-sizing: border-box;
}

.upcoming-session__empty-text {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.upcoming-session__schedule {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__schedule:hover {
  opacity: 0.9;
}

.upcoming-session__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px 20px 20px;
  box-sizing: border-box;
}

.upcoming-session__body--no-join {
  gap: 0;
}

.upcoming-session__session {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  box-sizing: border-box;
}

.upcoming-session__accent {
  flex: 0 0 4px;
  width: 4px;
  height: 84px;
  border-radius: 5px;
  background: #9768EB;
}

.upcoming-session__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

.upcoming-session__heading {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 20px;
  padding-right: 36px;
}

.upcoming-session__name {
  display: block;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.upcoming-session__detail {
  display: flex;
  align-items: center;
  gap: 8px;
}

.upcoming-session__detail-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-width: 16px;
  max-width: 16px;
  min-height: 16px;
  max-height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.upcoming-session__detail-value {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
}

.upcoming-session__detail-label {
  font-size: 12px;
  font-weight: 400;
  color: #1a1a1a;
}

.upcoming-session__divider {
  display: inline-block;
  width: 1px;
  height: 16px;
  background-color: #d1d1d1;
}

.upcoming-session__join {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: 4px;
  background: #9768EB;
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__join:hover {
  opacity: 0.92;
}

.upcoming-session__menu {
  position: absolute;
  top: -2px;
  right: 0;
  flex: 0 0 auto;
}

.upcoming-session__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  min-height: 24px;
  max-height: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  font-size: 16px;
  cursor: pointer;
}

.upcoming-session__kebab:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  min-width: 200px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.upcoming-session__menu-list.hidden {
  display: none;
}

.upcoming-session__menu-item {
  display: block;
  width: 100%;
  padding: 14px 18px;
  border: none;
  background: transparent;
  text-align: left;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
  cursor: pointer;
}

.upcoming-session__menu-item + .upcoming-session__menu-item {
  border-top: 1px solid #e0e0e0;
}

.upcoming-session__menu-item:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-item--danger {
  color: #e8503a;
}

@media (max-width: 768px) {
  .upcoming-session {
    max-width: none;
  }

  .upcoming-session__panel {
    max-width: none;
  }

  .upcoming-session__header {
    padding: 14px 16px 0;
  }

  .upcoming-session__body {
    padding: 14px 16px 16px;
  }

  .upcoming-session__empty {
    padding: 20px 16px 24px;
  }
}

@media (max-width: 480px) {
  .upcoming-session__header {
    padding: 12px 12px 0;
  }

  .upcoming-session__title {
    font-size: 18px;
  }

  .upcoming-session__body {
    padding: 12px 12px 14px;
  }

  .upcoming-session__empty {
    padding: 16px 12px 20px;
  }

  .upcoming-session__detail {
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .upcoming-session__detail-value {
    white-space: normal;
  }

  .upcoming-session__menu-list {
    min-width: 0;
    width: max-content;
    max-width: 80vw;
  }

  .upcoming-session__schedule {
    width: 100%;
  }
}

/* ============================================================
   BodyMAP card (athlete home — between Upcoming Session and Progress Insights)
   ============================================================ */

.bodymap-card {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.bodymap-card button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.bodymap-card button + button {
  margin-left: 0;
}

.bodymap-card__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 310px;
  min-height: 310px;
  max-height: 310px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.bodymap-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.bodymap-card__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.bodymap-card__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.bodymap-card__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.bodymap-card__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  gap: 12px;
  padding: 28px 24px 32px;
  text-align: center;
  box-sizing: border-box;
}

.bodymap-card__empty-title {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.bodymap-card__empty-description {
  margin: 0;
  max-width: 340px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.bodymap-card__start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-top: 4px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__start:hover {
  opacity: 0.9;
}

.bodymap-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 16px;
  padding: 12px 20px 16px;
  box-sizing: border-box;
}

.bodymap-card__content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-height: 0;
  gap: 65px;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
  box-sizing: border-box;
}

.bodymap-card__ring {
  position: relative;
  flex: 0 0 auto;
  width: 180px;
  height: 180px;
}

.bodymap-card__ring-svg {
  display: block;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.bodymap-card__ring-track {
  stroke: #e8e8e8;
}

.bodymap-card__ring-progress {
  transition: stroke-dashoffset 0.35s ease;
}

.bodymap-card__ring-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  pointer-events: none;
  text-align: center;
}

.bodymap-card__ring-total {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d6d6d;
  margin-bottom: 16px;
}

.bodymap-card__ring-score {
  font-family: 'Nudista', sans-serif;
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  color: #000000;
  margin-bottom: 10px;
}

.bodymap-card__ring-band {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #6d6d6d;
}

.bodymap-card__legend {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 0 auto;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.bodymap-card__legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bodymap-card__legend-dot {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.bodymap-card__legend-dot--poor {
  background: #F04438;
}

.bodymap-card__legend-dot--moderate {
  background: #E5A633;
}

.bodymap-card__legend-dot--good {
  background: #12B76A;
}

.bodymap-card__legend-name {
  flex: 0 0 auto;
  min-width: 72px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  color: #6d6d6d;
}

.bodymap-card__legend-range {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.bodymap-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.bodymap-card__hint {
  margin: 0;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.bodymap-card__update {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__update:hover {
  opacity: 0.85;
}

@media (max-width: 768px) {
  .bodymap-card {
    max-width: none;
  }

  .bodymap-card__panel {
    max-width: none;
  }

  .bodymap-card__header {
    padding: 14px 16px 0;
  }

  .bodymap-card__body {
    padding: 12px 16px 14px;
  }

  .bodymap-card__empty {
    padding: 24px 16px 28px;
  }

  .bodymap-card__content {
    gap: 16px;
    justify-content: center;
  }

  .bodymap-card__legend {
    display: none;
  }

  .bodymap-card__ring {
    width: 160px;
    height: 160px;
  }

  .bodymap-card__ring-score {
    font-size: 32px;
  }
}

@media (max-width: 480px) {
  .bodymap-card__header {
    padding: 12px 12px 0;
  }

  .bodymap-card__title {
    font-size: 18px;
  }

  .bodymap-card__body {
    padding: 10px 12px 12px;
  }

  .bodymap-card__empty {
    padding: 20px 12px 24px;
  }

  .bodymap-card__content {
    flex-direction: column;
    align-items: center;
  }

  .bodymap-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    text-align: center;
  }

  .bodymap-card__update {
    justify-content: center;
  }

  .bodymap-card__start {
    width: 100%;
  }
}

/* Reschedule / cancel modals for the upcoming session card */

@keyframes upcoming-reschedule-spin {
  to {
    transform: rotate(360deg);
  }
}

.upcoming-reschedule {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 640px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-reschedule *,
.upcoming-reschedule *::before,
.upcoming-reschedule *::after {
  box-sizing: border-box;
}

.upcoming-reschedule__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-reschedule__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-reschedule__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 24px 0;
}

.upcoming-reschedule__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.upcoming-reschedule__summary-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.upcoming-reschedule__summary-icon {
  flex-shrink: 0;
  color: #6d6d6d;
}

.upcoming-reschedule__summary-text {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__divider {
  flex-shrink: 0;
  height: 1px;
  margin: 0 -24px;
  background: #e7e7e7;
}

.upcoming-reschedule__section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.upcoming-reschedule__section-title {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.16px;
  color: #000000;
}

.upcoming-reschedule__tz {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__tz-icon {
  flex-shrink: 0;
}

.upcoming-reschedule__picker {
  display: flex;
  flex-shrink: 0;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  overflow: hidden;
}

.upcoming-reschedule__collapsed {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 12px;
}

.upcoming-reschedule__collapsed-date {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__collapsed-change {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.upcoming-reschedule__cal {
  flex: 0 0 280px;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.upcoming-reschedule__cal-month {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__cal-nav {
  display: flex;
}

.upcoming-reschedule__cal-arrow {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__cal-arrow:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
}

.upcoming-reschedule__cal-arrow:disabled {
  border-color: transparent;
  background: transparent;
  color: #d1d1d1;
  cursor: default;
}

.upcoming-reschedule__dow {
  display: flex;
}

.upcoming-reschedule__dow-cell {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  font-size: 14px;
  font-weight: 500;
  color: #344054;
}

.upcoming-reschedule__weeks {
  display: flex;
  flex-direction: column;
}

.upcoming-reschedule__week {
  display: flex;
}

.upcoming-reschedule__day {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.upcoming-reschedule__day.is-past {
  cursor: default;
}

.upcoming-reschedule__day:disabled {
  border-color: transparent;
  background: transparent;
  cursor: default;
}

.upcoming-reschedule__day.is-available {
  border-color: #e0d5f5;
  background: #f2edfc;
}

.upcoming-reschedule__day.is-selected {
  border-color: transparent;
  background: #9768eb;
}

.upcoming-reschedule__day.is-selected .upcoming-reschedule__day-num {
  color: #ffffff;
}

.upcoming-reschedule__day-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__day-num.is-other {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-past {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-weekend {
  color: #888888;
}

.upcoming-reschedule__day-num.is-today {
  background: #f6f6f6;
  color: #888888;
}

.upcoming-reschedule__vdivider {
  flex-shrink: 0;
  width: 1px;
  align-self: stretch;
  background: #eaecf0;
}

.upcoming-reschedule__slots {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__slots-day {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__spinner-wrap {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  padding: 32px 0;
}

.upcoming-reschedule__spinner {
  display: block;
  width: 24px;
  height: 24px;
  border: 2.5px solid #f2edfc;
  border-top-color: #9768eb;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

.upcoming-reschedule__slots-empty {
  margin: auto;
  padding: 24px 0;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
  color: #667085;
}

.upcoming-reschedule__slots-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 340px;
  overflow-y: auto;
}

.upcoming-reschedule__slot {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  height: auto;
  flex-shrink: 0;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: none;
  color: #101828;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: left;
  cursor: pointer;
}

.upcoming-reschedule__slot.is-selected {
  border-color: #9768eb;
  background: #f2edfc;
  color: #9768eb;
}

.upcoming-reschedule__slot-check {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.upcoming-reschedule__error {
  flex-shrink: 0;
  margin: 0;
  padding: 12px 24px 0;
  font-size: 14px;
  line-height: 20px;
  color: #f04438;
}

.upcoming-reschedule__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-reschedule__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-reschedule__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-reschedule__btn--ghost:hover:not(:disabled) {
  background-color: #ebebeb;
}

.upcoming-reschedule__btn--ghost:disabled {
  border-color: #d1d1d1;
  color: #000000;
  cursor: not-allowed;
  opacity: 0.5;
}

.upcoming-reschedule__btn--primary {
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.upcoming-reschedule__btn--primary:hover:not(:disabled) {
  background-color: #7355b5;
}

.upcoming-reschedule__btn--primary:disabled {
  border-color: transparent;
  background-color: #c3adf2;
  color: #ffffff;
  cursor: not-allowed;
}

.upcoming-reschedule__btn-spinner {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

@media (hover: hover) {
  .upcoming-reschedule__slot:not(.is-selected):hover {
    border-color: #9768eb;
  }
}

@media (min-width: 641px) {
  .upcoming-reschedule__section {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 640px) {
  .upcoming-reschedule__picker {
    flex-direction: column;
  }

  .upcoming-reschedule__cal {
    flex: 0 0 auto;
  }

  .upcoming-reschedule__vdivider {
    width: auto;
    height: 1px;
  }

  .upcoming-reschedule__slots-list {
    max-height: 220px;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__collapsed {
    display: flex;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__cal,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__vdivider,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__slots-day {
    display: none;
  }
}

@media (max-width: 480px) {
  .upcoming-reschedule__title {
    padding: 20px 20px 0;
  }

  .upcoming-reschedule__body {
    padding: 16px 20px 0;
  }

  .upcoming-reschedule__divider {
    margin: 0 -20px;
  }

  .upcoming-reschedule__error {
    padding: 12px 20px 0;
  }

  .upcoming-reschedule__actions {
    padding: 12px 20px 20px;
  }
}

.upcoming-cancel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-cancel *,
.upcoming-cancel *::before,
.upcoming-cancel *::after {
  box-sizing: border-box;
}

.upcoming-cancel__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-cancel__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-cancel__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-cancel__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 24px;
}

.upcoming-cancel__prompt {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: #4f4f4f;
}

.upcoming-cancel__prompt b {
  font-weight: 600;
}

.upcoming-cancel__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.upcoming-cancel__label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.upcoming-cancel__optional {
  font-weight: 400;
  color: #6d6d6d;
}

.upcoming-cancel__hint {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #888888;
  cursor: pointer;
}

.upcoming-cancel__hint:hover .upcoming-cancel__tooltip,
.upcoming-cancel__hint:focus-within .upcoming-cancel__tooltip {
  opacity: 1;
}

.upcoming-cancel__tooltip {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  z-index: 50;
  width: 220px;
  margin-left: -110px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #1c1b3a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.upcoming-cancel__tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border: 5px solid transparent;
  border-top-color: #1c1b3a;
}

.upcoming-cancel__reason {
  width: 100%;
  height: 110px;
  padding: 10px 14px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: none;
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  line-height: 22px;
  outline: none;
  resize: vertical;
}

.upcoming-cancel__reason:focus {
  border-color: #9768eb;
}

.upcoming-cancel__reason::placeholder {
  color: #888888;
}

.upcoming-cancel__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-cancel__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-cancel__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-cancel__btn--ghost:hover {
  background-color: #ebebeb;
}

.upcoming-cancel__btn--danger {
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.upcoming-cancel__btn--danger:hover {
  background-color: #c0392b;
}

@media (max-width: 768px) {
  .upcoming-cancel__reason {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .upcoming-cancel__title {
    padding: 20px 20px 0;
  }

  .upcoming-cancel__body {
    padding: 12px 20px;
  }

  .upcoming-cancel__actions {
    padding: 12px 20px 20px;
  }
}

.view-flex.athlete-profile-page {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -moz-box-flex: 1;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #f6f6f7;
}

.athlete-profile-page .athlete-profile {
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  margin: 0 auto;
  max-width: 688px;
  padding: 32px 24px 48px;
  position: relative;
  width: 100%;
}

.athlete-profile-page .athlete-profile *,
.athlete-profile-page .athlete-profile *::before,
.athlete-profile-page .athlete-profile *::after {
  box-sizing: border-box;
}

.athlete-profile__back {
  align-items: center;
  background: none;
  border: 0;
  color: #9768EB;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin: 0 0 30px;
  padding: 0;
  text-align: right;
  text-decoration: none;
  vertical-align: middle;
}

.athlete-profile__back:hover {
  color: #5f4499;
}

.athlete-profile__back-arrow {
  display: block;
  flex-shrink: 0;
  height: 20px;
  width: 20px;
}

.athlete-profile__back-label {
  display: block;
  line-height: 20px;
  position: relative;
  top: 1px;
}

.athlete-profile__title {
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0 0 20px;
}

.athlete-profile__tabs {
  border-bottom: 1px solid #e5e5e5;
  display: flex;
  gap: 24px;
  margin-bottom: 28px;
  max-width: 640px;
}

.athlete-profile__tab {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  margin-bottom: -1px;
  min-width: 0;
  padding: 12px 4px 4px;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.athlete-profile__tab--active {
  border-bottom-color: #7355b5;
  color: #7355b5;
}

.athlete-profile__tab:hover {
  color: #7355b5;
}

.athlete-profile__error {
  background: #fdecec;
  border-radius: 6px;
  color: #f04438;
  font-size: 14px;
  margin-bottom: 16px;
  padding: 10px 14px;
}

.athlete-profile__toast {
  align-items: center;
  background: #35354B;
  border-radius: 4px;
  bottom: 32px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  gap: 32px;
  height: 44px;
  justify-content: flex-start;
  left: 50%;
  max-width: calc(100vw - 32px);
  min-width: 0;
  padding: 8px 8px 8px 16px;
  pointer-events: auto;
  position: fixed;
  transform: translateX(-50%);
  width: max-content;
  z-index: 900;
}

.athlete-profile__toast-check {
  display: block;
  flex-shrink: 0;
  height: 20px;
  object-fit: contain;
  width: 20px;
}

.athlete-profile__toast-message {
  color: #ffffff;
  flex: 0 1 auto;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  white-space: nowrap;
}

.athlete-profile__toast-close {
  -webkit-appearance: none;
  appearance: none;
  align-items: center;
  background: none;
  border: 0;
  box-shadow: none;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
  height: 28px !important;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0;
  text-transform: none;
  width: 28px !important;
}

.athlete-profile__toast-close img {
  display: block;
  height: 16px;
  object-fit: contain;
  width: 16px;
}

.athlete-profile__photo {
  align-items: center;
  display: flex;
  gap: 20px;
  margin-bottom: 24px;
}

.athlete-profile__avatar {
  background: #f0f0f0;
  border-radius: 50%;
  flex-shrink: 0;
  height: 96px;
  object-fit: cover;
  width: 96px;
}

.athlete-profile__photo-actions {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: flex-start;
}

.athlete-profile__upload-btn {
  align-items: center;
  background: #f6f6f7;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  height: 36px;
  justify-content: flex-end;
  letter-spacing: -0.02em;
  line-height: 100%;
  max-height: 36px;
  min-height: 36px;
  opacity: 1;
  padding: 8px 16px;
  text-align: right;
  text-transform: none;
  vertical-align: middle;
  white-space: nowrap;
  width: 125px;
}

.athlete-profile__upload-btn:hover:not(:disabled) {
  border-color: #909090;
}

.athlete-profile__upload-btn:disabled {
  cursor: default;
  opacity: 0.65;
}

.athlete-profile__delete-btn {
  background: none;
  border: 0;
  color: #f04438;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin-left: 16px;
  padding: 8px 2px;
  text-align: left;
  text-transform: none;
  vertical-align: middle;
}

.athlete-profile__photo-hint {
  color: #6d6d6d;
  flex-basis: 100%;
  font-size: 12px;
  margin: 0;
}

.athlete-profile__file-input {
  display: none;
}

.athlete-profile__card {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  max-width: 640px;
  padding: 24px;
}

.athlete-profile__card--spaced {
  margin-top: 16px;
}

.athlete-profile__card--physical {
  min-height: 204px;
}

.athlete-profile__row {
  display: flex;
  gap: 16px;
  margin-bottom: 18px;
}

.athlete-profile__row:last-child {
  margin-bottom: 0;
}

.athlete-profile__row--full .athlete-profile__field {
  flex: 1 1 100%;
}

.athlete-profile__field {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  min-width: 0;
}

.athlete-profile__field--full {
  flex: 1 1 100%;
}

.athlete-profile__group-select {
  position: relative;
  width: 100%;
}

.athlete-profile__group-select--open .athlete-profile__group-select-trigger {
  border-color: #7355b5;
}

.athlete-profile__group-select--open .athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237355B5' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  transform: translateY(-50%) rotate(180deg);
}

.athlete-profile__group-select-trigger {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 8px;
  min-height: 40px;
  padding: 6px 36px 6px 12px;
  position: relative;
  text-align: left;
  text-transform: none;
  transition: border-color 0.15s ease;
  width: 100%;
}

.athlete-profile__group-tags {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.athlete-profile__group-tag {
  align-items: center;
  background: #F2EDFC;
  border-radius: 16px;
  color: #7355b5;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  height: 24px;
  justify-content: center;
  letter-spacing: normal;
  line-height: 18px;
  padding: 2px 8px;
  text-align: center;
  white-space: nowrap;
}

.athlete-profile__group-placeholder {
  color: #6d6d6d;
  flex: 1 1 auto;
  font-size: 14px;
}

.athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  height: 8px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.15s ease;
  width: 12px;
}

.athlete-profile__group-dropdown {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  max-height: 280px;
  overflow-y: auto;
  padding: 6px;
  position: static;
  width: 100%;
}

.athlete-profile__group-option {
  align-items: center;
  background: none;
  border: 0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: flex;
  flex-shrink: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 400;
  gap: 8px;
  height: 36px;
  letter-spacing: normal;
  margin: 0;
  max-height: 36px;
  min-height: 36px;
  min-width: 0;
  padding: 8px 10px;
  text-align: left;
  text-transform: none;
  width: 100%;
}

.athlete-profile__group-option + .athlete-profile__group-option {
  margin-left: 0;
}

.athlete-profile__group-option > span:last-child {
  min-width: 0;
  text-align: left;
}

.athlete-profile__group-option:hover,
.athlete-profile__group-option--selected {
  background: rgba(115, 85, 181, 0.08);
}

.athlete-profile__group-checkbox {
  border: 1.5px solid #7355b5;
  border-radius: 4px;
  flex-shrink: 0;
  height: 18px;
  position: relative;
  width: 18px;
}

.athlete-profile__group-checkbox--checked::after {
  border: solid #7355b5;
  border-width: 0 2px 2px 0;
  content: '';
  height: 9px;
  left: 5px;
  position: absolute;
  top: 1px;
  transform: rotate(45deg);
  width: 5px;
}

.athlete-profile__label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 6px;
}

.athlete-profile__input {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  color: #000000;
  font-size: 16px;
  height: 40px;
  padding: 0 12px;
  width: 100%;
}

.athlete-profile__input::-webkit-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-ms-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:focus {
  border-color: #7355b5;
  outline: none;
}

.athlete-profile__input:disabled {
  background: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__input[readonly] {
  cursor: pointer;
}

.athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile__input--unit {
  flex: 0 1 259px;
  max-width: 259px;
  width: 259px;
}

.athlete-profile input.athlete-profile__input,
.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'],
.athlete-profile select.athlete-profile__input {
  border-radius: 6px;
}

.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'] {
  border: 1px solid #d1d1d1;
  padding: 0 12px;
}

.athlete-profile input.athlete-profile__input[type='text']:focus,
.athlete-profile input.athlete-profile__input[type='email']:focus,
.athlete-profile input.athlete-profile__input[type='number']:focus {
  border-color: #7355b5;
}

.athlete-profile input.athlete-profile__input[type='text'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='email'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='number'].athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile input.athlete-profile__input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.athlete-profile input.athlete-profile__input[type='number']::-webkit-outer-spin-button,
.athlete-profile input.athlete-profile__input[type='number']::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.athlete-profile__select-wrap {
  position: relative;
  width: 100%;
}

.athlete-profile__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: right 12px center;
  background-repeat: no-repeat;
  padding-right: 36px;
}

.athlete-profile__select:disabled {
  background-color: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__select.ng-empty {
  color: #b0b0b0;
}

.athlete-profile__select option {
  color: #000000;
}

.athlete-profile__unit-group {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.athlete-profile__unit-field {
  align-items: center;
  display: flex;
  gap: 8px;
}

.athlete-profile__unit {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
}

.athlete-profile__field-error {
  color: #f04438;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__field-hint {
  color: #6d6d6d;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__actions {
  display: flex;
  justify-content: flex-end;
  max-width: 640px;
  margin-top: 24px;
  position: relative;
}

.athlete-profile__save {
  background: #C3ADF2;
  border: 0;
  border-radius: 4px;
  color: #ffffff;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  min-width: 148px;
  padding: 12px 22px;
  text-transform: none;
  transition: background 0.15s ease;
}

.athlete-profile__save:hover:not(:disabled) {
  background: #b19ae6;
}

.athlete-profile__save:disabled {
  cursor: default;
  opacity: 0.7;
}

@media (max-width: 768px) {
  .athlete-profile-page .athlete-profile {
    padding: 24px 16px 40px;
  }

  .athlete-profile__title {
    font-size: 28px;
  }

  .athlete-profile__photo {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-profile__row {
    flex-direction: column;
  }

  .athlete-profile__input--unit {
    max-width: 259px;
    width: 259px;
  }
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

@media (max-width: 768px) {
  .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
    bottom: 16px;
    gap: 16px;
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.catalog-feature {
  position: relative;
  background-color: #cfcfcf;
  height: 400px;
}

.catalog-feature .feature-container {
  background-size: cover;
  background-position-x: center;
  background-position-y: top;
  min-height: 400px;
  position: relative;
}

.catalog-feature .feature-container.running-man {
  background-image: url("/images/program_catalog_background.png");
}

.catalog-feature .feature-container.running-man .feature-content {
  line-height: 0.9;
  width: 400px;
}

.catalog-feature .feature-container.running-man .message-text {
  font-size: 24px;
  margin-top: 15px;
}

.catalog-feature .feature-container .feature-content {
  position: absolute;
  top: 40px;
  left: 80px;
  width: 400px;
  color: #efefef;
  font-weight: 300;
  line-height: 0.95;
}

.catalog-feature .feature-container .feature-content h2 {
  margin: 0;
  padding: 0;
  font-weight: 300;
}

.catalog-feature .feature-container .feature-content p {
  margin: 0;
  padding: 0;
}

.catalog-feature .feature-container .feature-content h2,
.catalog-feature .feature-container .feature-content .title-text {
  font-size: 55px;
  text-transform: uppercase;
}

.catalog-feature .feature-container .feature-content p,
.catalog-feature .feature-container .feature-content .message-text {
  margin-top: 2px;
  font-size: 18px;
  line-height: 1.3;
}

.catalog-feature .feature-container .feature-button {
  position: absolute;
  bottom: 35px;
  left: 80px;
  color: #efefef;
  font-weight: 300;
}

.catalog-feature .markers {
  position: absolute;
  bottom: 0;
  height: 40px;
  width: 100%;
}

.catalog-feature .markers .marker {
  background-color: #fff;
  border-radius: 50%;
  margin: 6px;
  height: 10px;
  width: 10px;
}

.catalog-feature .markers .marker.active {
  background-color: #41baed;
}

.catalog-selected {
  padding: 35px;
}

@media (max-width: 768px) {
  .catalog-selected {
    padding: 20px;
  }
}

.catalog-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .catalog-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.catalog-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.catalog-selected .title-container .name {
  font-size: 26px;
}

.catalog-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .catalog-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 0px;
  }
}

.catalog-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.catalog-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.catalog-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.catalog-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container {
    flex-direction: column;
  }
}

.catalog-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row-header > div {
  height: 20px;
  width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.catalog-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row > div {
  height: 90px;
  width: 130px;
}

.catalog-selected .detail-container .info-row > div > div {
  text-align: center;
}

.catalog-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.catalog-selected .detail-container .info-row .info {
  font-size: 26px;
}

.catalog-selected .detail-container .info-row .label {
  font-size: 16px;
}

.catalog-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.catalog-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.catalog-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .button-container {
    width: 100%;
  }
}

.catalog-selected .detail-container .button-container button {
  width: 100%;
}

.catalog-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.catalog-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.catalog-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.catalog-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.catalog-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.catalog-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.catalog-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected {
  padding: 35px;
}

.exercise-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .exercise-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.exercise-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.exercise-selected .title-container .name {
  font-size: 18px;
}

.exercise-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .exercise-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 10px;
  }
}

.exercise-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.exercise-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.exercise-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.exercise-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container {
    flex-direction: column;
  }
}

.exercise-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row-header > div {
  min-height: 20px;
  min-width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.exercise-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row > div {
  min-height: 90px;
  min-width: 130px;
}

.exercise-selected .detail-container .info-row > div > div {
  text-align: center;
}

.exercise-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.exercise-selected .detail-container .info-row .info {
  font-size: 26px;
}

.exercise-selected .detail-container .info-row .label {
  font-size: 14px;
}

.exercise-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.exercise-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.exercise-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .button-container {
    width: 100%;
  }
}

.exercise-selected .detail-container .button-container button {
  width: 100%;
}

.exercise-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.exercise-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.exercise-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.exercise-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.exercise-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.exercise-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.exercise-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected .exercise-info-container {
  -webkit-flex: 0 0 400px;
  -ms-flex: 0 0 400px;
  flex: 0 0 400px;
}

.exercise-selected .sample-container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
}

.exercise-selected .sample-container .file-input-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 5px;
}

.exercise-selected .sample-container .file-input-wrapper > button {
  min-height: 35px;
  max-height: 35px;
}

.exercise-selected .sample-container .file-input-wrapper > input[type="file"] {
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
}

.exercise-selected .form-fields .week-selection {
  min-height: 60px;
  margin-bottom: 25px;
  cursor: default;
}

.exercise-selected .form-fields .week-selection > div {
  min-width: 80px;
  line-height: 50px;
  font-size: 14px;
  border-bottom: 2px solid #9768EB;
  border-top: 2px solid #9768EB;
  text-align: center;
  text-transform: uppercase;
  color: #9768EB;
}

.exercise-selected .form-fields .week-selection > div:first-child {
  border-left: 2px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:last-child {
  border-right: 2px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:hover:not(.active) {
  color: #efefef;
  cursor: pointer;
  background-color: #9bd7ea;
}

.exercise-selected .form-fields .week-selection > div.active {
  color: #fefefe;
  cursor: default;
  background-color: #9768EB;
}

.exercise-selected .form-fields label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  min-height: 50px;
  padding: 2px;
}

.exercise-selected .form-fields label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 120px;
  font-size: 18px;
  letter-spacing: 0.32px;
  line-height: 27px;
}

.exercise-selected .form-fields label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  font-size: 21px;
  letter-spacing: 0.4px;
}

.exercise-selected .form-fields label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0;
  outline: 0;
  font-size: 21px;
  text-indent: 3px;
}

.exercise-selected .form-fields label select:focus {
  outline: 0;
}

.exercise-selected .form-fields label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.exercise-selected .form-fields label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 8px;
}

.program-header-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit-header {
  min-height: 85px;
  margin-bottom: 30px !important;
}

.program-type-selection {
  min-height: 50px;
}

.program-type-selection > .type-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border-bottom: 2px solid transparent;
  font-size: 18px;
  color: #ddd;
  cursor: pointer;
}

.program-type-selection > .type-item .pill {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 1px;
  line-height: 14px;
  font-weight: bold;
  display: inline-block;
  line-height: 25px;
  vertical-align: top;
  margin-left: 3px;
  padding: 0 10px;
  white-space: nowrap;
  background: #AFB1B4;
  color: #FFFFFF;
  border-radius: 5px;
  text-transform: uppercase;
}

.program-type-selection > .type-item.active {
  border-color: #9768EB;
  color: #75787b;
  cursor: default;
}

.program-type-selection > .type-item:hover:not(.active) {
  border-color: #9768EB;
}

.program-type-selection > .type-item + .type-item {
  margin-left: 30px;
}

.program-type-selection > .copy-controls {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-top: 8px;
}

.program-schedule-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 5px;
  margin-bottom: 5px;
}

.program-schedule-container button {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
}

.program-edit {
  margin-top: 20px;
  margin-bottom: 0px;
}

.program-edit .program-strategy-container {
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy {
  font-size: 24px;
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy i {
  -webkit-flex: 0 30px;
  -ms-flex: 0 30px;
  flex: 0 30px;
  width: 20px;
  text-align: center;
}

.program-edit .program-strategy-container .program-strategy .strategy-name {
  -webkit-flex: 1 auto;
  -ms-flex: 1 auto;
  flex: 1 auto;
  margin-left: 15px;
}

.program-edit .program-strategy-container .program-strategy .strategy-action {
  -webkit-flex: 0 180px;
  -ms-flex: 0 180px;
  flex: 0 180px;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  font-size: 12px;
  text-align: center;
  text-transform: uppercase;
  line-height: 30px;
  padding: 0px;
}

.program-edit .program-strategy-container + .program-strategy-container {
  margin-top: 20px;
}

.program-edit .program-technique {
  font-size: 20px;
  color: #efefef;
}

.program-edit .program-technique .counter {
  height: 100%;
  width: 40px;
  line-height: 45px;
  flex: 0 0 auto;
}

.program-edit .program-technique .name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.program-edit .program-technique .name > span {
  margin-left: 15px;
  line-height: 24px;
  padding: 4px 0;
}

.program-edit .program-technique .action {
  margin-right: 30px;
  font-size: 12px;
  font-weight: 600;
  color: #9768EB;
  cursor: pointer;
}

.program-edit .program-technique .action .icon-plus {
  font-size: 8px;
}

.program-edit .program-technique .action > span {
  margin-left: 5px;
  text-transform: uppercase;
}

.program-edit .program-exercise-container {
  min-height: 80px;
}

.program-edit .program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 0px;
  margin: 1px 0;
  min-height: 80px;
  width: 100%;
}

.program-edit .program-exercise-container > div.active-item {
  z-index: 1;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:first-child .sort-icons .icon:first-child {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:last-child .sort-icons .icon:last-child {
  visibility: hidden;
}

.program-edit .program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-edit .program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-edit .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-edit .program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon {
  color: #dedede;
  font-size: 14px;
  cursor: pointer;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon:hover {
  color: #9768EB;
}

.program-edit .program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit .program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 400;
}

.program-edit .program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div {
  margin-top: 0;
  width: auto;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-edit .program-exercise-container .program-exercise .actions {
  max-height: 38px;
  min-height: 38px;
  height: 38px;
  max-width: 180px;
  min-width: 180px;
  width: 180px;
  color: #ddd;
  font-size: 19px;
}

.program-edit-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 15px 30px;
}

.whiteboard {
  min-width: 640px;
  width: 100%;
}

.whiteboard > section {
  margin: 15px 30px;
}

.whiteboard-schedule {
  width: 100%;
}

.whiteboard-schedule .whiteboard-program {
  background-color: #ffffff;
  padding: 30px 0 15px;
}

.whiteboard-program {
  max-height: 140px;
  min-height: 140px;
  height: 140px;
  background-color: #f9f9f9;
  padding: 30px 30px 15px;
}

.whiteboard-program .name {
  font-size: 30px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .origin {
  font-size: 26px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .edit {
  margin-top: 5px;
  min-height: 25px;
}

.whiteboard-program .edit span {
  font-size: 10px;
  margin-left: 8px;
  text-transform: uppercase;
}

.whiteboard-date span {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

.whiteboard-date .date-input {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
  margin-bottom: 15px;
}

.whiteboard-date .date-input input {
  border: 1px solid #bbb;
  border-right: none;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  width: 100px;
  height: 30px;
  line-height: 30px;
  text-indent: 5px;
  outline: 0;
}

.whiteboard-date .date-input .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-left: none;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.whiteboard-date .date-input .input-icon i.fa {
  font-size: 16px;
}

.whiteboard-date .date-disabled .input-icon {
  background-color: #cdcdcd;
  border: 1px solid #cdcdcd;
}

.week-list {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #f9f9f9;
  padding: 10px 30px;
}

.week-list .week-item {
  font-size: 16px;
  margin-right: 20px;
  min-height: 28px;
}

.week-list .week-item.active {
  border-bottom: 2px solid #9768EB;
}

.week-list .week-item:hover:not(.active) {
  cursor: pointer;
}

.week-list .week-copy {
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.day-list {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  margin: 20px 0;
}

.day-list .day-item {
  -webkit-justify-content: center;
  justify-content: center;
  border-top: 1px solid #9768EB;
  border-bottom: 1px solid #9768EB;
  color: #9768EB;
  font-size: 12px;
  min-height: 45px;
  min-width: 80px;
  text-transform: uppercase;
}

.day-list .day-item.active {
  background-color: #9768EB;
  color: #fefefe;
}

.day-list .day-item:hover:not(.active) {
  background-color: rgba(65, 187, 231, 0.5);
  color: #ffffff;
  cursor: pointer;
}

.day-list .day-item:first-child {
  border-left: 1px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.day-list .day-item:last-child {
  border-right: 1px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.day-list-schedule .day-item {
  background-color: #bbb;
  border-radius: 6px;
}

.day-list-schedule .day-item .drag-icon {
  max-height: 20px;
  min-height: 20px;
  height: 20px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  cursor: move;
  font-size: 12px;
  text-align: center;
}

.day-list-schedule .day-item .name {
  text-transform: uppercase;
}

.day-list-schedule .day-item + .day-item {
  margin-left: 10px;
}

.program-section {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
}

.program-section.accept-drop {
  background-color: #fff;
  border: 1px solid #999;
  border-radius: 6px;
  padding: 10px;
}

.program-section.accept-drop .action-with-icon {
  display: none;
}

.program-section.accept-drop .name > i {
  display: none;
}

.program-section .name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 18px;
}

.program-section .name span {
  margin-right: 8px;
}

.program-section .action {
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 110px;
  min-width: 110px;
  width: 110px;
  font-size: 12px;
}

.program-section .action span {
  margin-right: 8px;
  text-transform: uppercase;
}

.program-section .action i.fa {
  font-size: 15px;
}

.program-section-placeholder > div {
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px dashed #bbb;
  border-radius: 6px;
  margin: 4px;
  width: 100%;
}

.program-section-placeholder > div span.text {
  color: #bbb;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
}

.program-exercise-container {
  min-height: 86px;
}

.program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 6px;
  margin: 2px;
  min-height: 80px;
  width: 100%;
}

.program-exercise-container > div.active-item {
  z-index: 1;
}

.program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-exercise-container .add-exercise {
  -webkit-justify-content: center;
  justify-content: center;
  color: #aaa;
  font-size: 16px;
  border: 2px dashed #CDD3D7;
  background-color: #EFEFEF;
}

.program-exercise-container .add-exercise span {
  font-weight: 600;
  letter-spacing: 1px;
  font-size: 13px;
  color: #CDD3D7;
  text-transform: uppercase;
}

.program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .actions {
  color: #ddd;
  font-size: 19px;
}

.accept-drop-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.accept-drop-container > span {
  text-align: center;
}

.accept-drop-container.hidden {
  display: none;
}

.sort-order-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.sort-order-container > span {
  text-align: center;
}

.sort-order-container.hidden {
  display: none;
}

.schedule-selected-athletes {
  margin-left: 50px;
  margin-bottom: auto;
}

.schedule-selected-athletes span {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  margin-bottom: 8px;
  margin-top: 12px;
}

.schedule-selected-athletes .athlete-names {
  max-width: 600px;
}

.schedule-selected-athletes .athlete-names .athlete-names-more {
  color: #9768EB;
  cursor: pointer;
  margin-left: 5px;
}

.bulk-schedule-divider {
  margin-top: 50px;
  text-align: center;
  width: 47px;
}

.bulk-schedule-divider i {
  color: #D7D9DA;
  font-size: 20px;
}

.whiteboard-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.calendar-menu {
  margin: 20px 0;
}

.calendar-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
}

@media only screen and (max-width: 1053px) {
  .calendar-menu > div {
    font-size: 16px;
  }
}

.calendar-menu > div.active {
  border-bottom: 2px solid #9768EB;
  cursor: default;
}

.calendar-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.calendar-menu > div + div {
  margin-left: 40px;
}

.calendar-parent {
  position: relative;
}

.calendar-month {
  -webkit-flex: 1 0 690px;
  -ms-flex: 1 0 690px;
  flex: 1 0 690px;
  max-width: 690px;
  min-width: 690px;
  width: 690px;
  margin: 1px 0 0;
}

.calendar-month .calendar-header {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border: 1px solid #ccc;
  border-top: 0;
  font-size: 18px;
  margin: -1px 0 0 -1px;
}

.calendar-month .calendar-header .fa {
  font-size: 24px;
  padding: 10px;
  box-sizing: content-box;
}

.calendar-month .calendar-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.calendar-month .calendar-header > div:first-child {
  margin-right: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header > div:last-child {
  margin-left: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header .year-container {
  position: relative;
}

.calendar-month .calendar-header .year-container select.year-select {
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: menulist;
  -webkit-flex: 0.1 0 0;
  -ms-flex: 0.1 0 0;
  flex: 0.1 0 0;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  color: #808080;
  text-indent: 0px;
}

.calendar-month .calendar-header .year-container select.year-select:focus {
  outline: 0;
}

.calendar-month .calendar-header .year-container select.year-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.calendar-month .calendar-header .year-container select.year-select::-ms-expand {
  display: none;
}

.calendar-month .calendar-header .year-container select.year-select + i.icon-caret-down {
  position: absolute;
  top: 10px;
  right: -12px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.calendar-month .week-day-labels {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #dfdfdf;
  color: #c0c0c0;
}

.calendar-month .week-day-labels.left > div {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-left: 6px;
}

.calendar-month .week-day-labels > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid transparent;
  color: #999;
  font-size: 13px;
  margin: -1px 0 0 -1px;
}

.calendar-month .week-day-labels > div .accept-drop-container {
  max-width: 97.5px;
  min-width: 97.5px;
  width: 97.5px;
  right: initial;
  left: initial;
}

.calendar-month .week-day-labels div:first-child {
  border-left-color: #ccc;
}

.calendar-month .week-day-labels div:last-child {
  border-right-color: #ccc;
}

.calendar-month .calendar-days {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.calendar-month .calendar-days .calendar-day {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid #ccc;
  font-size: 18px;
  margin: -1px 0 0 -1px;
  padding: 8px 12px;
}

.calendar-month .calendar-days .calendar-day.day-activities {
  background: #00B96D;
  color: #fff;
}

.calendar-month .calendar-days .calendar-day.current-day {
  background-color: #ffffff;
  border-bottom: 6px solid #9768EB;
}

.calendar-month .calendar-days .calendar-day.program-range {
  background-color: #ffffff;
}

.calendar-month .calendar-days .calendar-day.empty {
  background-color: #efefef;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number {
  margin-bottom: 5px;
  font-size: 16px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number > .month-abbrev {
  font-size: 15px;
  line-height: 28px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern,
.calendar-month .calendar-days .calendar-day .calendar-day-existing {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  min-height: 15px;
  font-size: 11px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern i,
.calendar-month .calendar-days .calendar-day .calendar-day-existing i {
  margin: 2px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern {
  margin-top: 10px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 9px;
}

@media (max-width: 768px) {
  .calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
    max-width: 100%;
    min-width: unset;
  }
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled i {
  margin: 2px;
}

.calendar-month.input-ctl {
  -webkit-flex: 1 0 280px;
  -ms-flex: 1 0 280px;
  flex: 1 0 280px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  box-shadow: 6px 6px 18px 0px #4a4a4a;
  background-color: #fff;
  position: absolute;
  top: 40px;
  left: 0;
  z-index: 10;
  margin: 1px 0;
  font-weight: 500;
}

.calendar-month.input-ctl.right {
  left: inherit;
  right: 0;
}

.calendar-month.input-ctl .calendar-header {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  border-top: 1px solid #ccc;
  font-size: 14px;
  cursor: default;
}

.calendar-month.input-ctl .calendar-header .icon {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-week-header {
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  background-color: #aaa;
}

.calendar-month.input-ctl .calendar-week-header > div {
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  color: #dfdfdf;
  cursor: default;
  font-weight: 600;
  text-align: center;
  border: 2.1275px solid transparent;
  margin: 2px;
}

.calendar-month.input-ctl .calendar-days {
  margin-bottom: 5px;
}

.calendar-month.input-ctl .calendar-days .calendar-day {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  margin: 2px;
  border: 2.1275px solid transparent;
  border-radius: 100%;
  padding: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.empty {
  border-radius: 0;
  background-color: transparent;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-day {
  border: 2.1275px solid #9768EB;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range {
  background-color: #def5fd;
  border-radius: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range:hover {
  border-radius: 100%;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range .calendar-day-number {
  color: #8d8d8d;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty) {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty):hover {
  background-color: #eee;
}

.calendar-month.input-ctl .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  text-align: center;
  margin-bottom: 0;
}

.calendar-day-info {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
}

.calendar-day-info .day-date {
  border-bottom: 1px solid #ccc;
  font-size: 13px;
  font-weight: 600;
  margin: 35px 0 20px;
  min-height: 40px;
  text-transform: uppercase;
}

.calendar-day-info .day-date > .icon-calendar {
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 3px;
  padding: 5px;
  margin-left: 7px;
  line-height: 28px;
  font-size: 15px;
  color: #efefef;
}

.calendar-day-info .day-program {
  max-width: 295px;
  min-width: 295px;
  width: 295px;
  letter-spacing: 0.75px;
  margin-bottom: 25px;
  font-size: 16px;
  font-weight: 500;
}

.calendar-day-info .day-program .light-grey-text {
  color: #A7A8A7;
}

.calendar-day-info .day-program.action {
  cursor: pointer;
}

.week-main-wrapper {
  padding: 0 !important;
}

.week-wrapper {
  padding: 0 !important;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-height: 425px;
  /* height: 425; */
}

.week-wrapper.small {
  min-height: 225px;
  /* height: 225px; */
}

.week-wrapper .week-button-column {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  min-width: 20px;
}

.week-wrapper .week-button-column > div {
  cursor: pointer;
}

@media only screen and (min-width: 1054px) {
  .week-wrapper .week-button-column .fa-angle-left {
    margin-left: -25px;
  }

  .week-wrapper .week-button-column .fa-angle-right {
    margin-right: -25px;
  }
}

.week-wrapper .week-day-column {
  border-left: 1px solid #ddd;
  min-width: 140px;
}

.week-wrapper .week-day-column .day-number {
  -webkit-align-self: flex-start;
  align-self: flex-start;
  color: #aaa;
  font-size: 16px;
  margin: 10px 15px;
}

.week-wrapper .week-day-column .week-day-info-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 100%;
  padding-bottom: 5px;
}

.week-wrapper .week-day-column .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #aaa;
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program {
  width: 130px;
  max-width: 100%;
  background-color: #fefefe;
  border-radius: 6px;
  color: #bbb;
  font-size: 13px;
  font-weight: 200;
  margin: 4px 0;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row-reverse;
}

@media (max-width: 768px) {
  .week-wrapper .week-day-column .week-day-info-container .week-day-program {
    flex-direction: column;
    gap: 4px;
  }
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program.action {
  cursor: pointer;
}

.week-wrapper .week-day-column:nth-last-child(2) {
  border-right: 1px solid #ddd;
}

.week-wrapper .week-day-column.current-day {
  background-color: #ffffff;
}

.week-wrapper .week-day-column.current-day .day-number {
  color: #808080;
}

.week-wrapper .week-day-column.current-day .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program {
  background-color: #f4f4f4;
  color: inherit;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-title:not(.light-grey-text) {
  color: #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-name:not(.light-grey-text) {
  color: #888888;
}

.chart-menu {
  margin: 50px 0 30px 0;
}

.chart-menu .chart-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
  color: #a0a4a8;
  margin-right: 40px;
}

@media only screen and (max-width: 1053px) {
  .chart-menu .chart-menu-item {
    font-size: 16px;
  }
}

.chart-menu .chart-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.chart-menu .chart-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.line-chart {
  margin: 25px 0 0 0;
}

.line-chart .line-chart-canvas {
  max-height: 350px;
  min-height: 350px;
  height: 350px;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
}

.line-chart .line-chart-canvas.small {
  max-height: 275px;
  min-height: 275px;
  height: 275px;
  max-width: 550px;
  min-width: 550px;
  width: 550px;
}

.line-chart .line-chart-menu {
  font-size: 14px;
  margin: 25px 0;
}

.program-chart {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
  margin: 25px 0 0 0;
  min-height: 350px;
}

.program-chart .program-complete {
  margin: 5px 15px;
}

.program-chart .program-complete .program-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 11px;
  margin-bottom: 6px;
}

.program-chart .program-complete .program-info .program-title {
  font-weight: 600;
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .program-name {
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .icon {
  color: #cdcdcd;
  font-size: 10px;
}

.program-chart .program-complete canvas {
  height: 60px;
  width: 310px;
}

.selection-component {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  position: relative;
}

.selection-component:after {
  color: #ffffff;
  content: '>';
  font: 600 12px 'Consolas', monospace;
  position: absolute;
  top: 6px;
  right: 12px;
  padding: 0 0 3px;
  pointer-events: none;
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}

.selection-component:before {
  background-color: #9768EB;
  content: '';
  display: block;
  position: absolute;
  top: 0px;
  right: 6px;
  width: 20px;
  height: inherit;
  pointer-events: none;
}

.selection-component select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #9768EB;
  border: none;
  color: #ffffff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  height: 30px;
  margin: 0;
  outline: none;
  padding-left: 10px;
  text-transform: uppercase;
  width: 100%;
}

.chart-legend {
  font-size: 14px;
  margin: 0 20px;
}

.chart-legend > .fa {
  margin-right: 5px;
}

.chart-legend > .fa.average {
  color: rgba(207, 218, 220, 0.5);
}

.chart-legend > .fa.score {
  color: rgba(0, 182, 235, 0.9);
}

.chart-legend > .fa.score-line {
  color: rgba(151, 104, 235, 0.9);
}

.chart-legend > .fa.team-average {
  color: rgba(125, 125, 125, 0.75);
}

.chart-legend > .fa.completed {
  color: rgba(32, 183, 105, 0.8);
}

.chart-legend > .fa.scheduled {
  color: #dfdfdf;
}

.chart-details {
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  margin-top: 16px;
}

.chart-details .chart-date-header {
  border-bottom: 1px solid #ccc;
  padding-bottom: 4px;
  margin-bottom: 4px;
  -webkit-align-items: center;
  align-items: center;
}

.chart-details .chart-date-header i {
  font-size: 18px;
  display: none;
}

.chart-details .chart-date {
  max-height: 22px;
  min-height: 22px;
  height: 22px;
  color: #75777A;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

.chart-details .main-score {
  margin-top: 5px;
}

.chart-details .value-badge {
  color: #9768EB;
  font-size: 48px;
  font-weight: 100;
  margin-bottom: -6px;
}

.chart-details .value-label {
  text-align: center;
  max-width: 120px;
}

.chart-details .value-large {
  font-size: 56px;
  font-weight: 100;
  line-height: 56px;
  margin-right: 20px;
}

.chart-details .value-change-icon.fa-sort-asc {
  font-weight: 100;
  margin-top: 4px;
}

.chart-details .value-change-icon.fa-sort-desc {
  font-weight: 100;
  margin-bottom: 6px;
}

.chart-details .value-change-icon.unchanged {
  color: #808080;
}

.chart-details .value-change-icon.increase {
  color: #20b769;
}

.chart-details .value-change-icon.decrease {
  color: #c42a3b;
}

.chart-details .value-change {
  font-size: 14px;
  font-weight: 500;
  margin-left: 6px;
}

.chart-details .value-change.unchanged {
  color: #808080;
}

.chart-details .value-change.increase {
  color: #20b769;
}

.chart-details .value-change.decrease {
  color: #c42a3b;
}

.chart-details .info-label {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.chart-details .chart-stats-container {
  margin-top: 20px;
}

.chart-details .test-results-button-container {
  flex: 1;
  padding: 15px 0px;
}

.chart-details .chart-stats {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
  padding: 15px 0;
}

.chart-details .chart-stats .name {
  font-size: 12px;
}

.chart-details .chart-stats .value {
  font-size: 26px;
  font-weight: 100;
  line-height: 34px;
}

.chart-details .chart-stats-grid .chart-stats {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  border-top: none;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(-n+2) {
  border-top: 1px solid #ccc;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(odd) {
  border-right: 1px solid #ccc;
}

.chart-details .pie-chart-container {
  margin-top: 20px;
  margin-bottom: -20px;
}

.chart-details .pie-chart {
  color: #aaa;
  font-size: 13px;
  margin-bottom: 20px;
}

.chart-details .pie-chart > div {
  margin-top: 10px;
}

.chart-details .pie-chart .pie-chart-canvas {
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  max-width: 70px;
  min-width: 70px;
  width: 70px;
}

.chart-details .rpe-container {
  margin-top: 10px;
}

.chart-details .rpe-container .red-text,
.chart-details .rpe-container .green-text {
  font-weight: 500;
  margin-left: 3px;
}

.chart-details .rpe-container div + div {
  margin-left: 20px;
}

.chart-details .program-week {
  margin-top: 20px;
  padding: 18px 0;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.chart-details .trophies {
  margin-top: 20px;
}

.chart-details .trophies .trophy-image {
  margin-right: 6px;
  display: inline-block;
  width: 28px;
  position: relative;
  margin-top: -13px;
}

.chart-details .trophies .trophy-image.trophy-image--badge {
  margin-top: 0;
  width: 24px;
}

.chart-details .trophies .trophy-icon {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 28px;
  min-width: 28px;
  width: 28px;
  margin-top: -11px;
  margin-right: 5px;
}

.chart-details .trophies .trophy-icon img {
  display: block;
}

.chart-details .trophies .trophy-place {
  padding: 0 6px;
  font-size: 30px;
  font-weight: 100;
}

.chart-details .trophies .trophy-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  margin-left: 13px;
  font-size: 14px;
  line-height: 16px;
}

.chart-details .no-details {
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  padding-bottom: 100px;
}

.notes-menu {
  margin: 15px 0;
}

.notes-menu .notes-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 18px;
  line-height: 20px;
}

.notes-menu .notes-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.notes-menu .notes-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.notes-menu .notes-menu-item + .notes-menu-item {
  margin-left: 45px;
}

.notes-calendar {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 492px;
  min-width: 492px;
  width: 492px;
}

.notes-calendar .calendar-header {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  margin: 1px 1px 0 -1px;
  background-color: #efefef;
  border: 1px solid #ccc;
  font-size: 16px;
  cursor: default;
}

.notes-calendar .calendar-header .icon {
  cursor: pointer;
}

.notes-calendar .week-day-labels {
  margin: 0 1px 0 0;
}

.notes-calendar .week-day-labels > div {
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  font-size: 12px;
  color: #999;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 3px;
  align-items: center;
  justify-content: center;
}

.notes-calendar .calendar-days {
  margin: 0 1px 5px 0;
  background-color: #efefef;
}

.notes-calendar .calendar-days .calendar-day {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  min-height: 0;
  max-height: none;
  height: 62px;
  margin: -1px 0px 0px -1px;
  border: 1px solid #cdcdcd;
  font-size: 16px;
  padding: 0;
  color: #cdcdcd;
}

.notes-calendar .calendar-days .calendar-day.current-day {
  color: #9768EB;
}

.notes-calendar .calendar-days .calendar-day.day-activities {
  background-color: #2d8b00;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities) {
  cursor: pointer;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities):hover {
  opacity: 0.8;
}

.notes-calendar .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  line-height: 32px;
  text-align: left;
  padding: 8px 12px;
  font-size: 18px;
  font-size: 16px;
}

.bc-section,
.tl-section,
.soap-section {
  margin-top: 20px;
}

.soap-label.fields-header.high-level-field-label {
  margin-top: 20px;
  margin-bottom: 0px;
}

.bc-bodyfat {
  position: relative;
}

.bc-bodyfat > .basic-input.small {
  width: 80px;
}

.bc-bodyfat:after {
  content: '%';
  position: absolute;
  top: 0;
  left: 60px;
  line-height: 38px;
  font-size: 18px;
  color: #bbb;
}

.bc-alert {
  width: 75%;
  margin-bottom: 10px;
}

@media (max-width: 768px) {
  .bc-alert {
    width: 100%;
  }
}

.tl-total-load {
  margin-left: 15px;
}

.tl-total-load > .basic-input.small {
  width: 70px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
  color: #9768EB;
}

.bc-entry-header > .field-label + .field-label,
.bc-entry > .field-label + .field-label {
  margin-left: 20px;
}

@media (max-width: 568px) {
  .bc-entry-header > .field-label + .field-label,
  .bc-entry > .field-label + .field-label {
    margin-left: 10px;
  }
}

.bc-entry-header .bc-input,
.bc-entry .bc-input {
  min-width: 160px;
  max-width: 160px;
}

.bc-entry-header .bc-filler,
.bc-entry .bc-filler {
  min-width: 10px;
  max-width: 10px;
}

@media (max-width: 568px) {
  .bc-filler-resp {
    min-width: 0 !important;
    max-width: 0 !important;
    margin-left: 0 !important;
  }
}

.tl-entry-header > .field-label + .field-label,
.tl-entry > .field-label + .field-label {
  margin-left: 20px;
}

.tl-entry-header .tl-select,
.tl-entry .tl-select {
  min-width: 215px;
  max-width: 215px;
}

.tl-entry-header .tl-input,
.tl-entry .tl-input {
  min-width: 100px;
  max-width: 100px;
}

.tl-entry-header .tl-filler,
.tl-entry .tl-filler {
  min-width: 10px;
  max-width: 10px;
}

.resp-notes-column {
  overflow: auto;
}

.bc-entry .bc-input {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.bc-entry .bc-input > .basic-input.small {
  width: 130px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-input-bf {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin-left: 0 !important;
}

.bc-entry .bc-input-bf > .basic-input.small {
  width: 80px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-unit {
  margin-left: -34px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.bc-entry .bc-unit-bf {
  margin-left: -24px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.tl-entry .tl-select-input {
  position: relative;
  border: 2px solid #d8d8d8;
  border-radius: 4px;
  padding: 5px 13px;
  font-size: 16px;
}

.tl-entry .tl-select-input .select-toggle {
  min-width: 185px;
  max-width: 185px;
}

.tl-entry .tl-select-input .select-toggle i {
  position: absolute;
  top: 14px;
  right: 10px;
  font-size: 6px;
}

.tl-entry .tl-select-input .options {
  position: absolute;
  top: 37px;
  left: 0px;
  overflow-y: auto;
  background-color: #dfdfdf;
  min-width: 220px;
  max-height: 180px;
  z-index: 2;
}

.tl-entry .tl-select-input .options > div {
  margin-top: 1px;
  margin-bottom: 3px;
  padding-left: 12px;
  min-height: 28px;
  line-height: 28px;
  cursor: pointer;
}

.tl-entry .tl-select-input .options > div:hover {
  background-color: #efefef;
}

.tl-entry .tl-input > .basic-input.small {
  width: 100px;
}

.tl-entry .tl-calculated-load > .basic-input.small {
  width: 100px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
}

.tl-entry .tl-delete {
  font-size: 20px;
  color: #9768EB;
  cursor: pointer;
}

.bc-free-form,
.tl-free-form {
  width: 75%;
  font-size: 16px;
}

@media (max-width: 768px) {
  .bc-free-form,
  .tl-free-form {
    width: 100%;
  }
}

.soap-date > * {
  width: 170px;
}

.soap-date .date-input > .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 35px;
  min-width: 40px;
  max-width: 40px;
  margin-right: 3px;
  background-color: #9768EB;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  font-size: 20px;
  color: #ffffff;
}

.soap-text-container {
  page-break-inside: avoid;
}

.soap-treatments .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-options {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-options .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-text {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-text .basic-input {
  width: 180px;
  margin-bottom: 8px;
}

.soap-objective.field div textarea {
  height: 85px;
  margin-bottom: 10px;
}

.fa-notes {
  margin: -10px 0px 0px 12px;
  color: #9768EB;
  font-size: 7px;
}

@media (max-width: 568px) {
  .resp-form-post-buttons {
    -webkit-flex-direction: column;
    flex-direction: column;
    margin: 20px 0 60px 0 !important;
    gap: 8px;
    width: 100%;
  }

  .resp-form-post-buttons > button {
    width: 100% !important;
    margin: 0 !important;
  }
}

.tooltipHidden {
  display: none;
}

.tooltip,
.tooltip-right,
.tooltip-bottom,
.tooltip-left,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  min-width: 300px;
  max-width: 360px;
  width: max-content;
  width: -webkit-max-content;
  min-height: 72px;
  top: -130%;
  left: 65px;
  z-index: 10;
  border-radius: 6px;
  padding: 20px 25px;
  font-size: 16px;
  font-family: Nudista-web;
  background-color: #2e2e2e;
  color: white;
  line-height: 24px;
  text-align: left;
  letter-spacing: .35px;
}

.tooltip .ttContent,
.tooltip-right .ttContent,
.tooltip-bottom .ttContent,
.tooltip-left .ttContent,
.tooltip-right:after .ttContent,
.tooltip-bottom:after .ttContent,
.tooltip-left:after .ttContent {
  color: #929392;
  font-weight: 400;
  text-transform: none;
}

.tooltip .ttTitle,
.tooltip-right .ttTitle,
.tooltip-bottom .ttTitle,
.tooltip-left .ttTitle,
.tooltip-right:after .ttTitle,
.tooltip-bottom:after .ttTitle,
.tooltip-left:after .ttTitle {
  height: 40px;
  text-transform: none;
}

@media (max-width: 768px) {
  .tooltip,
  .tooltip-right,
  .tooltip-bottom,
  .tooltip-left,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    font-size: 14px;
    padding: 15px 18px;
  }
}

.tooltip-bottom {
  top: 55px;
  left: -125px;
}

.tooltip-left {
  left: inherit;
  right: 45px;
}

.tooltip:after,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  left: -20px;
  top: 15px;
  border-color: transparent #2e2e2e;
  border-style: solid;
  border-width: 20px 20px 20px 0px;
  height: 0px;
  width: 0px;
  content: " ";
}

@media (max-width: 768px) {
  .tooltip:after,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    display: none;
  }
}

.tooltip-bottom:after {
  left: 130px;
  top: -20px;
  border-color: #2e2e2e transparent;
  border-width: 0px 20px 20px 20px;
}

.tooltip-left:after {
  left: inherit;
  right: -20px;
  border-width: 20px 0px 20px 20px;
}

.tooltipClose {
  float: right;
  padding: 0px 10px 3px 0px;
  color: lightblue;
  cursor: default;
  font-size: 24px;
}

.chart-tooltip {
  position: absolute;
  min-width: 255px;
  max-width: 300px;
  min-height: 100px;
  padding: 10px;
  background-color: #2e2e2e;
  z-index: 1;
  cursor: default;
  pointer-events: none;
}

.chart-tooltip .header {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  color: #efefef;
}

.chart-tooltip .content {
  font-size: 13px;
  margin-top: 6px;
  margin-bottom: 6px;
}

.chart-tooltip .content > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 20px;
  max-height: 20px;
}

.chart-tooltip .content > div > i {
  min-width: 16px;
}

.chart-tooltip .content > div > div {
  margin-left: 6px;
}

.chart-tooltip .content > div.completed {
  color: #16884e;
}

.chart-tooltip.hidden {
  visiblity: hidden;
}

.chart-tooltip.bottom:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.top:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  left: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 10px 10px 0;
}

.chart-tooltip.right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  right: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 0 10px 10px;
}

.fa {
  transform: none !important;
}

.upload-container .upload-section {
  max-height: 200px;
  min-height: 200px;
  height: 200px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  border: 2px dashed #ddd;
  font-size: 20px;
  color: #bbb;
  cursor: pointer;
  position: relative;
}

.upload-container .upload-section > .upload-message {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  text-align: center;
}

.upload-container .upload-section > .upload-preview {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  background-color: #fefefe;
}

.upload-container > input[type='file'] {
  opacity: 0;
}

div.image-control {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 280px;
  min-height: 280px;
  height: 280px;
  margin-top: 40px;
}

div.image-control .image-label {
  padding-top: 40px;
}

div.image-control .silent-file-input {
  width: 240px;
}

.image-buttons button {
  max-height: 25px;
  min-height: 25px;
  height: 25px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 11px;
}

.active-upload {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
}

.active-upload .file-info {
  margin-bottom: 10px;
  font-size: 14px;
}

.active-upload .file-info .file-info-size {
  font-size: 12px;
}

.active-upload .progress-bar-container {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #dedede;
}

.active-upload .progress-bar-container > .progress-bar {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #9768EB;
  font-size: 12px;
  font-weight: 600;
  color: #efefef;
  text-indent: 6px;
}

.active-upload .progress-bar-container > .progress-bar.success {
  background-color: #9768EB;
}

.active-upload .progress-bar-container > .progress-bar.error {
  background-color: #af0a2f;
}

.active-upload .message {
  margin-top: 10px;
}

.exercise_container {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  position: relative;
}

.exercise_nav {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  background-color: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.exercise_nav .search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
}

.exercise_nav .search input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border: none;
  font-size: 20px;
  font-weight: 200;
  height: 49px;
  line-height: 20px;
  text-indent: 15px;
  outline: none;
}

.exercise_nav .search button[type='reset'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 60px;
  min-width: 60px;
  width: 60px;
  background-color: #bbb;
  border: none;
  color: #fefefe;
  font-size: 12px;
  margin: 0 10px;
  min-height: 30px;
}

.exercise_nav .search button[type='submit'] {
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: transparent;
  border: none;
  color: #fefefe;
  margin: 0px;
  min-height: 30px;
}

.exercise_nav .search i.fa {
  font-size: 20px;
  color: #bbb;
}

.exercise_nav .add {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  padding: 10px;
}

.exercise_nav .add i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise_nav .add strong {
  -webkit-flex: 0.975;
  -ms-flex: 0.975;
  flex: 0.975;
}

.exercise_nav .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #bbb;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_nav .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #bbb;
}

.exercise_nav .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_nav .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_nav .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_nav .list {
    height: 0;
  }
}

.exercise_select {
  -webkit-flex: 1 0 300px;
  -ms-flex: 1 0 300px;
  flex: 1 0 300px;
  background-color: #ffffff;
  overflow-y: auto;
}

.exercise_select .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_select .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #ddd;
}

.exercise_select .list > div:not(.filler) .exercise-item > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.exercise_select .list > div:not(.filler) .exercise-item .name {
  font-size: 18px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  width: 40px;
  height: 40px;
  line-height: 36px;
  text-align: center;
  margin: 0 12px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon:hover {
  color: #9768EB;
  border-color: #9768EB;
}

.exercise_select .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_select .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_select .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_select .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_select .list {
    height: 0;
  }
}

.filters {
  max-height: 100px;
  min-height: 100px;
  height: 100px;
}

.filters > fusion-drop-down,
.filters > fusion-ordered-drop-down,
.filters > div {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  /***** NOTE ******
    since the height is being recalculated
    only set the min-height
    @include lock-height(50px);
    ***** EBD NOTE ******/
  max-width: 50%;
  min-height: 50px;
  position: relative;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
  padding-left: 20px;
  padding-right: 10px;
}

.filters > fusion-drop-down .select-toggle,
.filters > fusion-ordered-drop-down .select-toggle,
.filters > div .select-toggle {
  width: 100%;
  cursor: pointer;
}

.filters > fusion-drop-down .select-toggle.disabled,
.filters > fusion-ordered-drop-down .select-toggle.disabled,
.filters > div .select-toggle.disabled {
  cursor: default;
}

.filters > fusion-drop-down .select-toggle.disabled span,
.filters > fusion-ordered-drop-down .select-toggle.disabled span,
.filters > div .select-toggle.disabled span {
  font-style: italic;
}

.filters > fusion-drop-down .select-toggle.disabled i,
.filters > fusion-ordered-drop-down .select-toggle.disabled i,
.filters > div .select-toggle.disabled i {
  display: none;
}

.filters > fusion-drop-down .select-toggle span,
.filters > fusion-ordered-drop-down .select-toggle span,
.filters > div .select-toggle span {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.filters > fusion-drop-down .select-toggle i.fa,
.filters > fusion-ordered-drop-down .select-toggle i.fa,
.filters > div .select-toggle i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.filters > fusion-drop-down .options,
.filters > fusion-ordered-drop-down .options,
.filters > div .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 215px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

.filters > fusion-drop-down .options > div,
.filters > fusion-ordered-drop-down .options > div,
.filters > div .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: nowrap;
}

.filters > fusion-drop-down .options > div:hover,
.filters > fusion-ordered-drop-down .options > div:hover,
.filters > div .options > div:hover {
  background-color: #ccc;
}

.filters > fusion-drop-down > div,
.filters > fusion-ordered-drop-down > div {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
}

.filters > fusion-drop-down.required .select-toggle > span,
.filters > fusion-ordered-drop-down.required .select-toggle > span {
  color: #ff0000;
}

.exercise-item {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #ffffff;
  margin: 10px;
}

.exercise-item .icon {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise-item .icon.toggle {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  font-size: 6px;
}

.exercise-item .icon.toggle.down {
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  padding-top: 24px;
}

.exercise-item .icon.toggle.right {
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg);
}

.exercise-item .name {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.exercise-item .name .no-wrap-ellipse {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exercise-item.active-item {
  z-index: 1;
}

.exercise-item.active-item .icon {
  visibility: hidden;
}

.exercise-item.dragging-element {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
  transform: scale(1.1, 1.1) !important;
  transform-origin: right center !important;
}

.exercise-item.dragging-element .icon {
  visibility: hidden;
}

.no-match {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  font-size: 16px;
  font-weight: 600;
  margin: 10px;
}

/* modal junk */

.modal-container.modal-exercise-detail header {
  /* @include lock-height(75px); */
  border: none;
}

.modal-container.modal-exercise-detail header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-detail footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-detail section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-detail section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-detail section.video-view {
  max-width: 600px;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section.image-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-exercise-detail section.image-view > img {
  max-width: 360px;
  min-width: 360px;
}

.modal-container.modal-exercise-detail .missing-media {
  width: 100%;
  border: 1px solid #efefef;
  color: #dedede;
  font-size: 24px;
  font-weight: 300;
}

.modal-container.modal-exercise-form header {
  border: none;
}

.modal-container.modal-exercise-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-exercise-form form label button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.modal-container.modal-exercise-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-form section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-form section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-form section .filters {
  background-color: #f9f9f9;
  width: 100%;
}

.modal-container.modal-exercise-form section span {
  font-size: 16px;
}

.modal-container.modal-exercise-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-exercise-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-exercise-form section textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #bbb;
  font-size: 16px;
  font-weight: normal;
  margin: 10px 40px 10px 0;
  height: 140px;
  outline: 0;
  padding-top: 4px;
  padding-left: 4px;
}

.modal-container.modal-exercise-form section textarea.large {
  min-height: 300px;
}

.modal-container.modal-exercise-form section textarea.larger {
  min-height: 450px;
}

.modal-container.modal-exercise-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  position: relative;
  border-top: 1px solid #bbb;
  min-height: 25px;
}

.modal-container.modal-exercise-form section label:last-of-type {
  border-bottom: 1px solid #bbb;
}

.modal-container.modal-exercise-form section label span {
  margin: 10px;
  margin-left: 40px;
  min-width: 150px;
}

.modal-container.modal-exercise-form section label input {
  -webkit-flex: 1 1 50%;
  -ms-flex: 1 1 50%;
  flex: 1 1 50%;
  border: none;
  font-size: 16px;
  line-height: 30px;
  margin: 1px;
  outline: 0;
}

.modal-container.modal-exercise-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-left: 1px solid #bbb;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-exercise-form section label select:focus {
  outline: 0;
}

.modal-container.modal-exercise-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-exercise-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-exercise-form section label select + i.fa {
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  color: #ccc;
  font-size: 16px;
  width: 20px;
  height: 20px;
  margin: auto 0;
  pointer-events: none;
  text-align: center;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div label {
  border: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div span {
  font-size: 18px;
  margin: 0;
  min-width: 0;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div i {
  font-size: 18px;
  margin-left: 10px;
  cursor: pointer;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div + div {
  margin-left: 25px;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label {
  border-top: none;
  border-bottom: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label > select {
  border-left: none;
  text-indent: 40px;
  font-size: 18px;
  color: #75777a;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label + label > select {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-exercise-form .week-selection {
  padding: 5px 15px;
  cursor: default;
}

.modal-container.modal-exercise-form .week-selection > div {
  margin: 0 10px;
  min-height: 28px;
  font-size: 18px;
  color: #a0a4a8;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}

.modal-container.modal-exercise-form .week-selection > div.active {
  color: #75777a;
  border-bottom-color: #9768EB;
}

/* drag-n-drop junk */

/* should be moved to own file (clearly) */

.drag-hidden {
  visibility: hidden;
}

.drag-move-scroll-anchor {
  position: fixed;
  left: 0;
  right: 0;
  background-color: rgba(155, 155, 155, 0.275);
  height: 20px;
  z-index: 1;
}

.drag-move-scroll-anchor.top {
  top: 0;
}

.drag-move-scroll-anchor.bottom {
  bottom: 0;
}

.drop-hidden {
  display: none;
}

.drop-target:not(.drop-empty) {
  border: 2px dashed #cdd3d7;
}

.drop-target.drop-target-over:not(.add-section) {
  border: 2px dashed #4cbb17 !important;
}

.drop-target.drop-target-over.add-section > div {
  border-color: #4cbb17 !important;
}

.drop-target.drop-target-over .add-exercise {
  display: none;
}

.dragging-element {
  position: absolute;
  border: 2px solid #888;
  transform: scale(0.9, 0.9) !important;
  transform-origin: left center !important;
  z-index: 10;
  pointer-events: none;
}

@media (max-width: 768px) {
  .resp-program-menu {
    flex-direction: column;
    justify-content: flex-start;
  }

  .resp-program-menu .catalog_container > div {
    position: static;
    overflow: visible;
  }

  .resp-program-menu .opened-container,
  .resp-program-menu .closed-container {
    flex: none;
    height: auto;
    max-height: none;
  }

  .resp-program-menu .catalog-banner,
  .resp-program-menu .catalog-search,
  .resp-program-menu .catalog_nav_wrapper {
    height: auto;
  }

  .resp-program-menu .catalog_container {
    flex: none;
    min-height: auto;
    height: auto;
    position: static;
  }

  .resp-program-menu ul.catalog_nav {
    margin-bottom: 20px;
  }
}

.catalog_container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
  min-height: 500px;
  position: relative;
}

.catalog_container > div.catalog-scrollable {
  overflow-y: auto;
}

.catalog_container > div {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
}

.catalog_container > div > div.opened-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  height: 100%;
}

.catalog_container > div > div.closed-container {
  -webkit-flex: 1 1 52px;
  -ms-flex: 1 1 52px;
  flex: 1 1 52px;
  max-height: 52px;
}

.catalog-banner {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
  background-color: #9768EB;
  margin: 1px 0;
}

.catalog-banner i.circled-icon {
  margin: 0 15px;
  border: 2px solid #9768EB;
  color: #9768EB;
}

.catalog-banner span {
  color: #efefef;
  font-size: 16px;
}

.catalog-search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
}

.catalog-search form {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: #fefefe;
}

.catalog-search form input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: transparent;
  border: none;
  font-size: 20px;
  font-weight: 500;
  height: 49px;
  letter-spacing: 0.39px;
  text-indent: 15px;
  outline: none;
}

.catalog-search form button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.catalog_nav_wrapper {
  height: 100%;
}

.catalog_nav {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
  background-color: #ffffff;
  border-right: 1px solid #ebebeb;
  overflow-y: auto;
  height: auto;
}

.catalog_nav .category-icon {
  margin: 0 18px;
  min-width: 20px;
  font-size: 24px;
}

.catalog_nav .add-icon {
  font-size: 12px;
  margin: 0 15px;
  min-width: 12px;
}

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

ul.catalog_nav li {
  background-color: #f0f0f0;
  font-size: 18px;
  font-weight: 400;
  margin: 5px 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  cursor: pointer;
}

ul.catalog_nav li > span {
  min-height: 45px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

ul.catalog_nav li .category-state {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 12px;
  margin: 0 20px;
  min-width: 12px;
}

ul.catalog_nav li .category-open .category-state:before {
  content: "\E620";
}

ul.catalog_nav li .category-close .category-state:before {
  content: "\E62F";
}

ul.catalog_nav li.exercise-technique > span {
  text-indent: 20px;
  font-size: 16px;
}

ul.catalog_nav li.exercise-technique > ul {
  padding: 0;
}

ul.catalog_nav li.exercise-technique > ul li {
  font-weight: normal;
  min-height: 24px;
}

ul.catalog_nav li.exercise-technique > ul li:hover {
  text-decoration: underline;
}

ul.catalog_nav li.exercise-technique > ul li > span {
  min-height: 24px;
  text-indent: 30px;
  text-transform: none;
}

ul.catalog_nav li > ul {
  background-color: #fff;
  margin: 0;
  padding: 10px 0 0 0;
}

ul.catalog_nav li > ul li {
  background-color: #fff;
  font-size: 12px;
  font-weight: 600;
}

ul.catalog_nav li > ul li > span {
  min-height: 30px;
  text-indent: 30px;
  text-transform: uppercase;
}

ul.catalog_nav li > ul li > ul {
  padding: 0;
}

ul.catalog_nav li > ul li > ul li {
  font-weight: normal;
  min-height: 30px;
  text-indent: 50px;
}

ul.catalog_nav li > ul li > ul li:hover {
  text-decoration: underline;
}

.login-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #efefef;
}

.login-container .login-modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 476px;
  min-width: 476px;
  width: 476px;
  background-color: #FCFCFC;
  border: 1px solid #efefef;
  border-radius: 6px;
  padding: 47px 0 22px;
}

.login-container .login-modal > img {
  -webkit-align-self: center;
  align-self: center;
}

.login-container .login-modal .login-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 32px;
  margin: 28px 15px 30px;
  color: #9768EB;
}

.login-container .login-modal .login-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .login-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .login-form > input {
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .login-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input + input {
  border-top: 0;
}

.login-container .login-modal .login-form .login-buttons {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-evenly;
  justify-content: space-evenly;
  margin: 0px 30px;
}

.login-container .login-modal .login-form .login-buttons > button {
  -webkit-align-self: center;
  align-self: center;
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 100%;
}

.login-container .login-modal .reset-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .reset-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .reset-form > input {
  margin: 28px 0 0;
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .reset-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input + input {
  border-top: 0;
}

.login-container .login-modal .reset-form .secondPassword {
  margin: 0 0 0;
}

.login-container .login-modal .reset-form .button-collection {
  -webkit-align-self: center;
  align-self: center;
  margin: 28px 0 0;
}

.login-container .login-modal .reset-form .button-collection > button {
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 200px;
}

.login-container .login-modal .message {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 11px 15px;
}

.login-container .login-modal .description {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  margin: 11px 15px;
}

.login-container .login-modal .login-link {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 12px;
}

.login-container .login-modal .login-link > a {
  color: #aaa;
  word-spacing: 2px;
}

.loginRememberMe {
  margin: 28px 0 0;
  -webkit-align-self: center;
  align-self: center;
  display: block;
}

.loginRememberMe .checkbox-input {
  -webkit-align-items: center;
  align-items: center;
}

.loginRememberMe .checkbox-input i {
  font-size: 25px;
}

.loginRememberMe .checkbox-input span {
  color: #75777A;
}

.loginForgotPassLink {
  margin: 31px 0 0;
  -webkit-align-self: center;
  align-self: center;
  cursor: pointer;
  color: #AAB0B7;
  text-decoration-line: underline;
  font-size: 14px;
}

.loginForgotPassLink a {
  color: inherit;
}

.modal-container section.profile-form {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 10px;
  min-width: 400px;
}

.modal-container section.profile-form label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  margin: 5px 9px;
  max-width: 325px;
}

.modal-container section.profile-form label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 6px;
  min-width: 100px;
}

.modal-container section.profile-form label input {
  width: 100%;
}

.modal-container.modal-athlete-form {
  overflow: auto;
  width: 740px;
}

.modal-container.modal-athlete-form header {
  border: none;
}

.modal-container.modal-athlete-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-athlete-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-athlete-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-athlete-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-athlete-form section:first-of-type {
  margin-top: 10px;
  border-bottom: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section:not(:first-of-type) {
  margin-top: 20px;
}

.modal-container.modal-athlete-form section div.section-label {
  margin-left: 40px;
  margin-bottom: 10px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: bold;
  text-transform: uppercase;
}

.modal-container.modal-athlete-form section div.options-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-athlete-form section div.option-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-left: 40px;
  padding-bottom: 35px;
}

.modal-container.modal-athlete-form section div.option-container div.option-label {
  font-size: 13px;
  max-width: 115px;
  min-width: 115px;
  width: 115px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input {
  margin-right: 20px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input > span {
  font-size: 13px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input {
  position: relative;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 1px solid #ebebeb;
  border-radius: 3px;
  color: inherit;
  font-size: 13px;
  line-height: 25px;
  min-width: 160px;
  outline: 0;
  padding: 0 28px 0 10px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input i.icon-caret-down {
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -6px;
  color: #D9DBDC;
  pointer-events: none;
}

.modal-container.modal-athlete-form section .row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section .row-container:not(:first-of-type) {
  border-top: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section .row-container .space-between {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.modal-container.modal-athlete-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-athlete-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-athlete-form section .dob-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #ebebeb;
  width: 50%;
}

.modal-container.modal-athlete-form section .dob-field span {
  margin: 10px 10px 10px 40px;
}

.modal-container.modal-athlete-form section .dob-field input {
  border: none;
}

.modal-container.modal-athlete-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  position: relative;
  min-height: 25px;
}

.modal-container.modal-athlete-form section label:not(:first-of-type) {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section label.feet-field {
  -webkit-flex: 0.6 1 0%;
  -ms-flex: 0.6 1 0%;
  flex: 0.6 1 0%;
}

.modal-container.modal-athlete-form section label.inches-field {
  -webkit-flex: 0.395 1 0%;
  -ms-flex: 0.395 1 0%;
  flex: 0.395 1 0%;
}

.modal-container.modal-athlete-form section label span {
  margin: 10px;
  margin-left: 40px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
}

.modal-container.modal-athlete-form section label .invalid-input {
  border: 1px solid red;
}

.modal-container.modal-athlete-form section label .validation-container {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message {
  position: absolute;
  z-index: 10;
  top: 55px;
  padding: 3px 6px;
  border-radius: 5px;
  background-color: #2e2e2e;
  color: white;
  border: 1px solid #2e2e2e;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message:after {
  position: absolute;
  left: 45%;
  top: -10px;
  border-color: #2e2e2e transparent;
  border-style: solid;
  border-width: 0px 10px 10px 10px;
  height: 0px;
  width: 0px;
  content: " ";
}

.modal-container.modal-athlete-form section label .validation-container .validation-message span {
  margin: 0px;
  color: inherit;
  font-weight: inherit;
}

.modal-container.modal-athlete-form section label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0px;
  padding: 0px;
  font-size: 13px;
  line-height: 27px;
  outline: 0;
  margin: 1px;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label input.measurement {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 55px;
  min-width: 55px;
  width: 55px;
}

.modal-container.modal-athlete-form section label .date-input {
  width: 220px;
}

.modal-container.modal-athlete-form section label .imperial-height {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 45%;
  position: relative;
}

.modal-container.modal-athlete-form section label .imperial-height.inches {
  min-width: 80%;
}

.modal-container.modal-athlete-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label select:focus {
  outline: 0;
}

.modal-container.modal-athlete-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-athlete-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.feet {
  top: 10px;
  right: 35px;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.inches {
  top: 10px;
  right: 50px;
}

.modal-container.modal-athlete-form section label select.imperial {
  text-indent: 30px;
}

@media (max-width: 768px) {
  .modal-container.modal-athlete-form {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .modal-container.modal-athlete-form footer {
    position: sticky;
    bottom: 0;
    background-color: #fff;
    border-top: 1px solid #ebebeb;
    z-index: 1;
  }

  .modal-container.modal-athlete-form section {
    min-width: 0;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) {
    flex-direction: column;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label {
    flex: 1 1 auto;
    min-height: 44px;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label:not(:first-of-type) {
    border-left: none;
    border-top: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section .dob-field {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between {
    padding-top: 10px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container {
    width: 100%;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container .option-container {
    margin-left: 40px;
    padding-bottom: 20px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .image-control {
    width: 100%;
    padding: 10px 20px 20px 40px;
    border-top: 1px solid #ebebeb;
    margin-top: 0;
  }
}

.select-all {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 25px;
}

.select-athlete-list {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 45px 65px 45px 65px;
  padding: 15px 0px;
  min-height: 80px;
  max-height: 400px;
  min-width: 300px;
  overflow-x: auto;
}

.select-athlete-list .athletes {
  height: 300px;
}

.select-athlete-list .athletes .athlete-name {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
  margin-right: 15px;
}

.select-athlete-list .athletes .athlete-name.all {
  font-size: 14px;
}

.modal-container.modal-terms {
  overflow: auto;
  width: 740px;
  padding: 20px 40px;
}

.modal-container.modal-terms footer {
  margin-top: 25px;
}

.modal-container.modal-terms footer button {
  width: auto;
}

.admin-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.admin-menu > div {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.admin-menu > div.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.admin-menu > div:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.admin-menu > div a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.admin-menu > div span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.admin-menu > div + div {
  margin-left: 35px;
}

.admin-sub-menu {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: normal;
  position: relative;
  letter-spacing: 1px;
  margin-top: 10px;
}

.admin-sub-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
}

.admin-sub-menu > div.active {
  border-bottom: 2px solid #9768EB;
  color: #efefef;
}

.admin-sub-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.admin-sub-menu > div + div {
  margin-left: 20px;
}

.tab-menu {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-top: 1px solid #ddd;
  border-right: 1px solid #ddd;
  padding: 0 10px;
}

.tab-menu span {
  font-weight: 600;
}

.tab-menu.selected {
  background-color: #9768EB;
}

.tab-menu.selected span {
  color: #fefefe;
}

.tab-menu:first-child {
  border-left: 1px solid #ddd;
}

.tab-view {
  border: 1px solid #ccc;
  padding: 5px;
}

.tab-view-list {
  list-style-type: none;
  padding-left: 0;
}

.test-container-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-top: 25px;
}

@media (max-width: 768px) {
  .test-container-header {
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.test-container-header .title {
  margin: 0;
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
}

.test-container-header .main-col {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  padding-right: 20px;
}

.test-container-header .side-col {
  text-align: right;
}

@media (max-width: 768px) {
  .test-container-header .side-col {
    text-align: left;
  }
}

.test-container-header .side-col > div:not([class]) {
  font-size: 16.59px;
  letter-spacing: 0.31px;
  line-height: 22px;
}

.test-result-container {
  margin-bottom: 30px;
}

.test-result-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 0 10px;
}

.test-result-header .title {
  font-weight: 500;
  font-size: 34.5px;
  color: #9768EB;
  line-height: 40px;
  margin-bottom: 6px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
  margin: 0 0 6px;
}

.input-results {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.results-column-container {
  -webkit-column-count: 2;
  -moz-column-count: 2;
  column-count: 2;
  -webkit-column-gap: 4em;
  -moz-column-gap: 4em;
  column-gap: 4em;
}

@media (max-width: 768px) {
  .results-column-container {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
  }
}

.exercise-details {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid-column;
  -moz-column-break-inside: avoid;
  -o-column-break-inside: avoid;
  -ms-column-break-inside: avoid;
  break-inside: avoid-column;
}

.linked-results-header {
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
}

.tested-by {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

.perform-additional-results {
  background-color: #efefef;
}

.performance-results {
  padding: 80px 0 80px;
  max-width: 778px;
  margin: 0 auto;
}

.performance-results .h2 {
  margin: 0 0 20px;
}

.performance-results section {
  page-break-inside: avoid;
  padding-bottom: 32px;
}

.performance-results section + section {
  padding-top: 32px;
}

.perform-notes-section {
  max-width: 778px;
  margin: 0 auto;
  padding: 0 0 120px 0;
}

.perform-notes-section .header {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  padding: 0 0 12px;
}

.perform-notes-section .prose {
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.stress-index-block {
  margin-top: 45px;
}

.stress-index-block canvas {
  width: 1124px;
  height: 80px;
}

@media (max-width: 768px) {
  .stress-index-block canvas {
    width: 100%;
    height: auto;
  }
}

.stress-index-block img {
  max-width: 100%;
}

.stress-index-block > .header {
  margin-bottom: 6px;
}

.stress-index-block > .header .title {
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.cat-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  margin: 40px 0 18px;
}

.cat-score {
  color: #fff;
  padding: 3px 5px;
  margin-left: 20px;
}

.cat-score.green {
  background: #00B96D;
}

.cat-score.green + .dot {
  background: #00B96D;
}

.cat-score.yellow {
  background: #D7BB43;
}

.cat-score.yellow + .dot {
  background: #D7BB43;
}

.cat-score.red {
  background: #D1404B;
}

.cat-score.red + .dot {
  background: #D1404B;
}

.clinical-field {
  min-height: inherit;
  height: inherit;
}

textarea.clinical-notes {
  height: 70px;
  resize: none;
  margin-top: 10px;
}

.clinical-sub-note {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  margin-left: 25px;
}

.tree-line {
  height: 35px;
  width: 25px;
  border-left: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
}

.clinical-notes-section {
  margin: 38px 0 60px;
  max-width: 560px;
}

label.clinical-form-field {
  display: block;
  border: none;
  margin: 0 40px;
}

hr.clinical-report-line {
  border: none;
  padding: 0;
  height: 1px;
  background: #D8D8D8;
  margin: 40px 0;
  clear: both;
}

span.clinical-label {
  display: block;
  padding: 10px 0px;
  min-width: 0;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

fusion-ordered-drop-down.clinical-drop-down {
  border: 1px solid #bbb;
  max-width: 626px;
  width: 626px;
  padding-left: 20px !important;
  max-height: 100px !important;
}

fusion-ordered-drop-down.clinical-drop-down > div.column-container {
  line-height: 20px;
  max-height: 100px;
  height: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 600px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

fusion-ordered-drop-down.clinical-drop-down .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options > div:hover {
  background-color: #ccc;
}

.clinical-signature {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 30px;
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.clinical-signature > div {
  padding: 0px 15px 0px 15px;
}

.print-only {
  display: none;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.test-athlete-name {
  color: #75777A;
  font-size: 18px;
  letter-spacing: 0.32px;
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: 0.32px;
}

.perform-select {
  min-width: 133px;
  font-size: 18px;
  color: #75777A;
  border: 2px solid #D8D8D8;
  border-radius: 4px;
  height: 38px;
}

.recommended {
  margin-left: 10px;
  font-weight: bold;
  font-size: 13px;
  color: #c42a3b;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  top: -2px;
}

.recommended label {
  margin-left: 3px;
  position: relative;
  top: -2px;
}

/* --------------------------------------------
R+R Daily Test v2
----------------------------------------------*/

h3 span {
  color: #9768EB;
}

.rr-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  max-width: 700px;
  height: 55px;
  border: 1px solid #cdcdcd;
  border-radius: 5px;
  background: #fff;
  overflow: hidden;
}

.rr-menu .custom {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.rr-menu .custom:not(:first-child) {
  border-left: 1px solid #cdcdcd;
}

.rr-menu .custom input {
  position: absolute;
  opacity: 0;
}

.rr-menu .custom input:checked ~ label {
  color: #fff;
  background: #9768EB;
}

.rr-menu .custom label {
  display: block;
  height: 55px;
  line-height: 55px;
  text-align: center;
  cursor: pointer;
  font-weight: bold;
}

.rr-menu .custom label:hover {
  background: #eee;
}

.rr-key {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  max-width: 700px;
  margin-top: 10px;
  color: #9768EB;
}

.rr-key label {
  width: 33.3%;
}

.rr-key label:nth-child(2) {
  text-align: center;
}

.rr-key label:nth-child(3) {
  text-align: right;
}

.repeated-shift-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.repeated-shift-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row:first-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:last-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 15px;
}

.repeated-shift-layout .test-row .drop-off {
  color: #9768EB;
  font-size: 18px;
  line-height: 1.62;
}

.repeated-shift-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row .measurement-field:first-of-type {
  margin-left: 289px;
}

.repeated-shift-layout .test-row .measurement-field:not(:first-of-type) {
  margin-left: 23px;
}

.repeated-shift-layout .measurement-label {
  color: #75777A;
  margin-right: 3px;
  padding-right: 18px;
  width: 10px;
}

.y-balance-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.y-balance-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.y-balance-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.y-balance-layout .test-row .sub-label {
  padding-left: 35px;
}

.y-balance-layout .test-row .diff {
  margin-left: 51px;
  color: #9768EB;
  font-size: 18px;
  line-height: 1.92;
}

.y-balance-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 10px;
}

.y-balance-layout .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.y-balance-layout .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.measurement-group {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.measurement-group .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.measurement-group .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.measurement-group .test-row .sub-label {
  padding-left: 35px;
}

.measurement-group .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 23px;
}

.measurement-group .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.measurement-group .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.test-results-button {
  width: 100%;
  width: -webkit-fill-available;
}

@media (max-width: 768px) {
  .reports-resp-header {
    -webkit-flex-direction: column !important;
    flex-direction: column !important;
  }

  .reports-resp-header .resp-header-actions {
    justify-content: flex-start;
  }
}

.progress-report-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 30px 0 5px;
  gap: 10px;
  flex-wrap: wrap;
}

.progress-report-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .progress-report-options .date-ranges {
    margin-left: 0;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }
}

.progress-report-nodata {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.report-chart-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-top: 30px;
  margin-left: 20px;
}

.report-chart-container .report-chart-details .report-chart-detail {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details .report-chart-detail.team,
.report-chart-container .report-chart-details .report-chart-detail.total {
  margin-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail > div {
  min-width: 130px;
  min-height: 90px;
  margin: 0 10px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail > div {
    min-width: calc(33% - 18px);
    max-width: calc(33% - 18px);
  }
}

.report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
  width: 130px;
  height: 20px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
    width: 100% !important;
    height: 20px !important;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  line-height: 30px;
  padding-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .score {
  font-size: 30px;
  font-weight: 100;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .score-container .score {
    font-size: 24px;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase {
  color: #20b769;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease {
  color: #c42a3b;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change i.fa {
  min-width: 12px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies {
  padding-top: 0px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies .trophy-place {
  font-size: 30px;
  font-weight: 100;
  margin-left: 10px;
}

.report-details-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  margin-top: 30px;
  background-color: #ffffff;
}

.report-details-container .title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-self: center;
  align-self: center;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
  margin-bottom: 30px;
  font-size: 20px;
}

.report-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-bottom: 50px;
}

@media (max-width: 768px) {
  .report-details {
    overflow: auto;
  }
}

.report-details > div {
  padding-bottom: 10px;
}

.report-details .change {
  position: absolute;
  top: 0;
  right: -8px;
  min-width: 70px;
  line-height: 20px;
}

.report-details .change > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
  font-size: 12px;
}

.report-details .change > div.increase {
  color: #20b769;
}

.report-details .change > div.increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.decrease {
  color: #c42a3b;
}

.report-details .change > div.decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div.perform-increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div i.fa {
  min-width: 12px;
}

.report-details .names-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-width: 250px;
}

.report-details .names-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  min-width: 180px;
  padding-left: 30px;
}

.report-details .names-container .header-row {
  background-color: #dfdfdf;
}

.report-details .names-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .names-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .names-container .detail-row > div {
  min-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.report-details .names-container .detail-row:nth-child(odd) {
  background-color: #242424;
  color: #f7f7f7;
}

.report-details .names-container .detail-row:nth-child(even) {
  background-color: #2e2e2e;
  color: #f7f7f7;
}

.report-details .names-container .detail-row.sub-total {
  background-color: #d4d4d4;
  color: #75787b;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row.sub-total + .sub-total {
  background-color: #dfdfdf;
}

.report-details .names-container .detail-row.total {
  background-color: #9768EB;
  color: #f7f7f7;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row .detail-row-position {
  margin-left: 15px;
}

.report-details .info-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .info-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 110px;
}

.report-details .info-container .header-row {
  background-color: #dfdfdf;
}

.report-details .info-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .info-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .info-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .info-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: auto;
  white-space: nowrap;
  overflow-y: hidden;
  overflow-x: scroll;
  padding-right: 10px;
}

@media (max-width: 768px) {
  .report-details .scores-container {
    overflow-y: unset;
    overflow-x: unset;
  }
}

.report-details .scores-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .scores-container > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 210px;
}

.report-details .scores-container > div:first-child .header-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container > div:first-child .detail-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container .header-row {
  background-color: #dfdfdf;
  border-right: 1px solid #ccc;
}

.report-details .scores-container .header-row.right-left > span {
  min-width: 55px;
  text-align: center;
}

.report-details .scores-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .scores-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .scores-container .detail-row {
  border-right: 1px solid #ccc;
}

.report-details .scores-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .scores-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container .detail-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.report-details .scores-container .detail-row > div.right-left > span {
  min-width: 55px;
  font-size: 14px;
  text-align: center;
}

.report-details .scores-container .detail-row > div.change-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  position: relative;
}

.progress-report-bodymap {
  max-height: 213px;
  max-width: 100px;
}

.progress-report-hidden {
  visibility: hidden;
}

/* .program-group-dropdown-container and .report-programs-container lived here.
   Both were markup on the Programs tab only (progressreport.html), which now
   renders .programs-details instead - see _programs_details.scss. Nothing else
   in either bundle referenced them. */

/* Tab bar + header actions for the progress report page (/reports/:athleteId).

   The underline tabs are the same pattern as the athlete profile page
   (_profile_athlete.scss). Tokens are restated locally rather than reaching
   for $athlete-profile-*, which is file-local to that partial by convention.

   Everything here lives inside .print-node's .noprint header, so none of it
   reaches the jsPDF capture in test_results_pdf.js:generateProgressReport.

   Traps this build has: no global border-box reset (fold borders into fixed
   sizes by hand), no autoprefixer, and a global `button` rule that forces
   min-width 110px + uppercase + a lock-height - see unstyle-button. */

.progress-report-layout {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding: 6px 20px 0 20px;
  background-color: #f6f6f7;
}

.progress-report-layout > .view-container {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  width: auto;
}

.progress-report-tabs {
  border-bottom: 1px solid #e7e7e7;
  display: flex;
  font-family: 'Nudista', sans-serif;
  gap: 24px;
  margin: 0;
}

.progress-report-tabs__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 15px;
  margin-bottom: -1px;
  padding: 8px 4px 0;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.progress-report-tabs__tab:hover {
  color: #7355b5;
}

.progress-report-tabs__tab:focus {
  outline: none;
}

.progress-report-tabs__tab--active {
  border-bottom-color: #9768eb;
  color: #6941c6;
}

.progress-report-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 28px 0 0;
}

.progress-report-head__title {
  color: #120d1c;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0;
  min-height: 0;
}

.progress-report-head__actions {
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}

.progress-report-head__action {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  box-sizing: border-box;
  color: #4f4f4f;
  cursor: pointer;
  display: inline-flex;
  height: 40px;
  justify-content: center;
  padding: 0;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  width: 40px;
}

.progress-report-head__action:hover:not([disabled]) {
  background: #f2edfc;
  border-color: #9768eb;
  color: #9768eb;
}

.progress-report-head__action:focus {
  border-color: #9768eb;
  box-shadow: 0 0 0 2px #e0d5f5;
  outline: none;
}

.progress-report-head__action[disabled] {
  background: #ffffff;
  border-color: #e7e7e7;
  color: #b0b0b0;
  cursor: default;
}

.progress-report-head__action svg {
  display: block;
  height: 20px;
  width: 20px;
}

.progress-report-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
  min-height: calc(100vh - 250px);
}

.progress-report-empty__title {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__description {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 8px;
  box-sizing: border-box;
  width: 180px;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin: 24px 0 0;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid #9768eb;
  border-radius: 4px;
  box-shadow: none;
  color: #9768eb;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: center;
  text-transform: none;
  white-space: nowrap;
}

.progress-report-empty__cta:hover:not([disabled]) {
  background: #f2edfc;
  box-shadow: none;
}

.progress-report-empty__cta[disabled] {
  background: #d9dbdc;
  border-color: #d9dbdc;
  color: #ffffff;
  cursor: default;
}

.progress-report-archives {
  margin-top: 8px;
}

@media (max-width: 900px) {
  .progress-report-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .progress-report-tabs {
    gap: 16px;
    overflow-x: auto;
  }

  .progress-report-empty {
    min-height: 320px;
  }
}

/* The "Detailed Test Results" card at the bottom of the progress report
   (/reports/:athleteId, views/progressreport.html).

   Deliberately NOT a restyle of .report-details-container / .report-details in
   _progress_report.scss: teamreport.html:392 renders that same markup against
   those same rules, so editing them in place would drag the team report along
   with it. This block is applied to the progress view only; the team report
   keeps the legacy dark/zebra grid.

   The grid is three parallel flex columns (names / info / scores), not a
   <table>, and stays that way: the names column holds still while
   .progress-details__scores scrolls horizontally, and the ng-repeats are
   transposed (vm.detailNames drives rows, vm.detailDates drives columns, each
   column carrying its own entries array). Turning it into a table would need
   row-major data, which is a controller change, not a restyle.

   Because the columns are independent flex stacks, rows only line up because
   every row in every column agrees on $ptd-row-h. Row separators are therefore
   drawn with an inset box-shadow rather than a border - a border would add 1px
   of layout height per row and walk the columns out of register down the table.

   Score colours come from .red-text / .yellow-text / .green-text
   (_base.scss:316-323), interpolated from the API's riskColor. Those are 0,1,0
   selectors, so nothing here may set `color` on a descendant span of a cell: an
   0,1,1 rule would silently win and flatten the colour coding.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.progress-details .red-text {
  color: #F04438;
}

.progress-details .yellow-text {
  color: #E5A633;
}

.progress-details .green-text {
  color: #12B76A;
}

.progress-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.progress-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.progress-details__type-label {
  color: #4F4F4F;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.progress-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.progress-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-details__columns {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  overflow: hidden;
}

.progress-details__names {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
  min-width: 250px;
}

.progress-details__info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
}

.progress-details__scores {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: -1px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  width: auto;
}

.progress-details__column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.progress-details__head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  min-height: 34px;
  text-transform: none;
}

.progress-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
}

.progress-details__names .progress-details__head,
.progress-details__names .progress-details__row {
  min-width: 180px;
  padding-left: 20px;
}

.progress-details__names .progress-details__head,
.progress-details__info--unit .progress-details__head {
  font-weight: 500;
}

.progress-details__names .progress-details__row {
  color: #1f1f28;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-details__names .progress-details__row > div {
  min-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.progress-details__names .progress-details__row--subtotal {
  color: #120d1c;
  font-style: italic;
  font-weight: 600;
}

.progress-details__names .progress-details__row--total {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row--subtotal {
  font-style: normal;
}

.progress-details--perform .progress-details__names .progress-details__row--difference {
  font-style: italic;
  font-weight: 500;
}

.progress-details__info .progress-details__head,
.progress-details__info .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 110px;
  padding: 0 12px;
}

.progress-details__info--unit .progress-details__head,
.progress-details__info--unit .progress-details__row {
  min-width: 90px;
}

.progress-details__unit-pill {
  align-items: center;
  border-radius: 16px;
  box-sizing: border-box;
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  height: 22px;
  justify-content: center;
  line-height: 16px;
  mix-blend-mode: multiply;
  padding: 2px 8px;
}

.progress-details__unit-pill--percent {
  width: 26px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in,
.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  width: 34px;
}

.progress-details__unit-pill--sec {
  width: 37px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in {
  background: #FDEAD7;
  color: #B93815;
}

.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  background: #ECE9FE;
  color: #5925DC;
}

.progress-details__unit-pill--percent {
  background: #FCE7F6;
  color: #C11574;
}

.progress-details__unit-pill--sec {
  background: #D1E9FF;
  color: #175CD3;
}

.progress-details__unit-pill--reps {
  background: #D3F8DF;
  color: #17803D;
}

.progress-details__unit-pill--score {
  background: #E9EAEB;
  color: #414651;
}

.progress-details__scores .progress-details__head,
.progress-details__scores .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 210px;
  padding: 0 12px;
}

.progress-details__date {
  color: #7355B5;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: underline;
}

.progress-details__head--sides > span {
  min-width: 55px;
  text-align: center;
}

.progress-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
}

.progress-details__sides > span {
  font-size: 14px;
  min-width: 55px;
  text-align: center;
}

.progress-details__row--total {
  background-color: #f7f7f8;
  color: #120d1c;
  font-weight: 600;
  text-transform: none;
}

.progress-details__row--group-header {
  background-color: #F6F6F6;
  min-height: 24px;
}

.progress-details__group-label {
  color: #6D6D6D;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-transform: uppercase;
}

.progress-details__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-shadow: inset 0 1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  min-height: 36px;
  padding-left: 20px;
}

.progress-details__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-details__legend-item + .progress-details__legend-item {
  margin-left: 24px;
}

.progress-details__legend-dot {
  border-radius: 50%;
  display: inline-block;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-details__legend-dot--poor {
  background-color: #F04438;
}

.progress-details__legend-dot--moderate {
  background-color: #E5A633;
}

.progress-details__legend-dot--good {
  background-color: #12B76A;
}

@media (max-width: 768px) {
  .progress-details {
    padding: 16px;
  }

  .progress-details__columns {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .progress-details__scores {
    overflow-x: unset;
    overflow-y: unset;
  }

  .progress-details__legend {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 8px 0 8px 20px;
  }
}

/* The "Detailed Programs Results" card at the bottom of the progress report's
   Programs tab (/reports/:athleteId, views/progressreport.html).

   Sibling of _progress_details.scss and deliberately its own block rather than
   a modifier of it. The two cards share a shell - same border, radius, shadow,
   title bar, header/row heights and hairline treatment - but nothing else:
   .progress-details is three parallel flex columns because its data arrives
   transposed, while vm.detailPrograms is one object per row, so this one is a
   plain row-major table. Sharing a class would mean carrying that column
   machinery for a table that has no use for it.

   The shell constants below are restated rather than imported from
   _progress_details.scss, because SCSS variables are file-local unless hoisted
   to _design_tokens.scss. If you change a row height in one card, change it in
   the other or the two stop reading as one family.

   Replaces .report-programs-container / .program-group-dropdown-container,
   which were removed from _progress_report.scss - teamreport.html never
   rendered them, so nothing else was on those rules.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.programs-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.programs-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-details__type-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.programs-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.programs-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
  overflow-x: auto;
}

.programs-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
  min-width: max-content;
}

.programs-details__row:last-child {
  margin-bottom: -1px;
}

.programs-details__row--head {
  min-height: 34px;
}

.programs-details__row--head .programs-details__cell {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-details__row--total {
  background-color: #f7f7f8;
  font-weight: 600;
}

.programs-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  color: #120d1c;
  font-size: 14px;
  font-weight: 500;
  padding: 0 8px;
}

.programs-details__cell--name {
  -webkit-flex: 0 0 220px;
  -ms-flex: 0 0 220px;
  flex: 0 0 220px;
  font-weight: 600;
  overflow: hidden;
  padding-left: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 220px;
}

.programs-details__cell--type {
  -webkit-flex: 0 0 160px;
  -ms-flex: 0 0 160px;
  flex: 0 0 160px;
  gap: 4px;
  width: 160px;
}

.programs-details__cell--count {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--percent {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  gap: 8px;
  width: 144px;
}

.programs-details__cell--date {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--date:last-child {
  padding-right: 20px;
}

.programs-details__type-pill {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #f2f2f4;
  border-radius: 4px;
  box-sizing: border-box;
  color: #6d6d6d;
  flex: 0 1 auto;
  font-size: 12px;
  font-weight: 600;
  gap: 4px;
  height: 20px;
  line-height: 20px;
  max-width: 100%;
  min-width: 0;
  padding: 0 8px;
  text-align: center;
}

.programs-details__type-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: block;
  height: 12px;
  object-fit: contain;
  width: 12px;
}

.programs-details__type-pill-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-details__bar {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 6px;
  overflow: hidden;
  width: 75px;
}

.programs-details__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-details__percent-value {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.programs-details__tip {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px solid #b0b0b0;
  border-radius: 50%;
  color: #9d9d9d;
  cursor: pointer;
  display: inline-flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  height: 14px;
  line-height: 1;
  width: 14px;
}

.programs-details__tip:before {
  content: '?';
}

.programs-details__tip:hover {
  border-color: #9768eb;
  color: #9768eb;
}

.programs-details__tip .tooltip-bottom {
  background-color: #1a1a33;
  width: 312px;
  height: 152px;
  box-sizing: border-box;
  padding: 8px 20px;
  left: -16px;
  top: 16px;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: normal;
}

.programs-details__tip .tooltip-bottom .ttContent {
  color: #ffffff;
  font-weight: 500;
}

.programs-details__tip .tooltip-bottom:after {
  border-width: 0 6px 6px 6px;
  border-color: #1a1a33 transparent;
  top: -3px;
  left: 15px;
  background-color: transparent;
  min-width: 0;
  min-height: 0;
  padding: 0;
}

.programs-details__tip-row {
  margin: 0 0 12px;
}

.programs-details__tip-row:last-child {
  margin-bottom: 0;
}

.programs-details__tip-label {
  font-weight: 700;
}

.programs-details__tip-text {
  font-weight: 500;
}

@media (max-width: 768px) {
  .programs-details {
    padding: 16px;
  }

  .programs-details__title {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 12px;
  }
}

/* The "Progress Summary" card on the progress report
   (/reports/:athleteId, views/progressreport.html).

   Replaces the legacy .report-summary-container / .report-summary block that
   used to live in _progress_report.scss. Unlike the detail table below it, this
   markup was never shared - teamreport.html does not render it - so the old
   rules were deleted outright rather than left standing beside these.

   Companion to _progress_details.scss: same card recipe (white ground, hairline
   border, 12px radius, the same faint shadow) so the two blocks read as one
   page. Tokens are restated here rather than reaching for $ptd-*, which is
   file-local to that partial by convention.

   The per-test cards are a CSS grid of flexible tracks, so a card's width is
   whatever its column gets. That is the whole reason the sparkline is rendered
   with `chart-responsive`: progressInsightChart sizes its canvas from the
   element's laid-out width, and Chart.js 1.x then pins that width inline, so a
   `width: 100%` here would otherwise be overwritten on first paint. The
   measurement only works while the card stays `min-width: 0` - an `auto`
   minimum would let the canvas it is measuring contribute to the track size it
   is being measured against.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-summary {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 0;
  padding: 20px;
}

.progress-summary__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-summary__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(263px, 1fr));
  gap: 12px;
}

.progress-summary__card {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-sizing: border-box;
  min-height: 132px;
  min-width: 0;
  padding: 12px 16px;
}

.progress-summary__name {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  margin-bottom: 4px;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.progress-summary__value {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.progress-summary__score {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-summary__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-summary__change--up {
  color: #20b769;
}

.progress-summary__change--down {
  color: #c42a3b;
}

.progress-summary__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-summary__spark {
  display: block;
  height: 42px;
  margin-top: 8px;
  max-width: 100%;
  width: 100%;
}

/* The "Overview" card at the top of the progress report
   (/reports/:athleteId, views/progressreport.html): the score chart, the
   Average / Min / Max / Team Average / Team Rank tiles, and the tip banner.

   Deliberately NOT a restyle of .report-chart-container / .report-chart-details
   / .report-chart-detail in _progress_report.scss: teamreport.html:65,88,95,242
   renders that same markup against those same rules, so editing them in place
   would drag the team report along with it. This block is applied to the
   progress view only; the team report keeps the legacy layout.

   That rename is also what buys the card its responsiveness for free. Three
   separate sheets ship mobile overrides keyed to the legacy names -
   _responsiveness_tweaks.scss:195-215 and :471-487, and
   fusionetics-mark-additions.scss:5820-5839, the last of those with !important
   from a bundle that loads after this one. None of them match .progress-overview,
   so the block gets to state its own breakpoints instead of fighting them.

   Progress tab only. This card used to serve the Programs tab as well, through
   a second chartType === 'bar' branch that kept the legacy `column-container
   line-chart` classes (scoreBarChart had no responsive path, so
   _charting.scss:29-36 sized it) plus a --legacy modifier at 0,2,0 to beat
   _responsiveness_tweaks.scss's `.line-chart { flex(2) }` on source order. The
   Programs tab has its own pair of cards now - see _programs_overview.scss and
   _programs_completion.scss - so that branch, its modifier and the
   chartInfo.type === 3 tiles are all gone, and nothing in this file has to
   share specificity with _charting.scss any more.

   The values are deliberately neutral. The legacy block interpolated
   .red-text / .yellow-text / .green-text (_base.scss:317-323) onto every score
   from the API's riskColor; here the bar underneath carries the band instead
   and the number stays $black-800. That is why the bar modifiers restate the
   palette as background-color rather than reusing those text classes - the
   colour coding moved, it did not go away. Tiles whose value has no 0-100
   scale therefore have no colour cue at all, which is correct: they never had
   a meaningful one.

   Consequence worth knowing if you re-add a text class here: those selectors
   are 0,1,0 and _base.scss imports first, so an 0,1,0 `color` in this file
   wins and would silently flatten them again.

   The chart canvas is measured, not sized. scoreLineChart reads __chart-box's
   clientWidth/clientHeight and writes the result onto the canvas, so the box
   needs an explicit height (reading the canvas's own laid-out height would be
   circular) and __chart must stay min-width: 0 - an `auto` minimum would let
   the canvas be part of what sizes the track it is being measured against.
   Same contract _progress_summary.scss:14-22 documents for the sparklines.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 20px 0 0;
  padding: 20px;
}

.progress-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  gap: 32px;
}

.progress-overview__chart {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

.progress-overview__chart-box {
  height: 300px;
}

.progress-overview__chart-canvas {
  display: block;
}

.progress-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: 12px;
}

.progress-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-overview__legend-item + .progress-overview__legend-item {
  margin-left: 24px;
}

.progress-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-overview__legend-dot--score {
  background-color: rgba(151, 104, 235, 0.9);
}

.progress-overview__legend-dot--average {
  background-color: rgba(207, 218, 220, 0.9);
}

.progress-overview__legend-dot--team {
  background-color: rgba(125, 125, 125, 0.75);
}

.progress-overview__legend-label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

.progress-overview__tiles {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  display: grid;
  gap: 20px 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.progress-overview__tile {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 0;
}

.progress-overview__tile-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 4px;
}

.progress-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-overview__value-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 12px;
}

.progress-overview__value {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-overview__change--up {
  color: #20b769;
}

.progress-overview__change--down {
  color: #c42a3b;
}

.progress-overview__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 5px;
  margin-top: auto;
  max-width: 100%;
  overflow: hidden;
  width: 160px;
}

.progress-overview__bar-fill {
  background-color: #929292;
  border-radius: 999px;
  height: 100%;
}

.progress-overview__bar-fill--red {
  background-color: #c42a3b;
}

.progress-overview__bar-fill--yellow {
  background-color: #dfc03f;
}

.progress-overview__bar-fill--green {
  background-color: #20b769;
}

.progress-overview__bar-fill--purple {
  background-color: #9768eb;
}

.progress-overview__trophy {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 10px;
  margin: 4px 0 12px;
}

.progress-overview__trophy-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 24px;
  width: 24px;
}

.progress-overview__trophy-place {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__banner {
  background-color: #f8f5ff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  gap: 10px;
  margin-top: 20px;
  padding: 16px;
}

.progress-overview__banner-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.progress-overview__banner-text {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
}

.progress-overview__banner-title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  color: #533d82;
  font-size: 16px;
  font-weight: 600;
  gap: 8px;
  line-height: 16px;
}

.progress-overview__banner-body {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  margin-top: 4px;
  white-space: pre-line;
}

.progress-overview__cta {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 8px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-left: auto;
  padding: 8px 16px;
  background: #f8f5ff;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  box-shadow: none;
  color: #000000;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: right;
  text-transform: none;
  white-space: nowrap;
}

.progress-overview__cta:hover {
  background: #f2edfc;
  box-shadow: none;
}

.progress-overview__cta-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

@media (max-width: 900px) {
  .progress-overview__body {
    gap: 20px;
  }

  .progress-overview__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .progress-overview {
    padding: 16px;
  }

  .progress-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }

  .progress-overview__chart {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
  }

  .progress-overview__chart-box {
    height: 220px;
  }

  .progress-overview__tiles {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 24px;
    width: 100%;
  }

  .progress-overview__banner {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  .progress-overview__banner-text {
    -webkit-flex: 1 1 100%;
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
  }

  .progress-overview__cta {
    margin: 12px 0 0 auto;
  }
}

/* The Programs tab's "Overview" card, and the row that holds it beside
   "Program Completion" (/reports/:athleteId, views/progressreport.html, under
   vm.activeTab === 'programs').

   Its own block rather than a modifier of .progress-overview, for the same
   reason _programs_details.scss is its own block rather than a modifier of
   _progress_details.scss: the two cards share a shell - border, radius,
   shadow, title metrics - and nothing else. .progress-overview is a measured
   canvas beside a three-column tile grid; this is a computed SVG beside a
   stacked tile column, with a legend under both. Sharing a class would mean
   carrying the canvas-measurement contract (__chart-box's explicit height,
   __chart's min-width: 0) into a card that has no canvas in it.

   That split is also what let .progress-overview drop its Programs branch
   entirely - the bar chart, its --legacy neutralising rules and the
   chartInfo.type === 3 tiles all went with it.

   The shell constants are restated rather than imported, because SCSS
   variables are file-local unless hoisted to _design_tokens.scss. If you change
   the card radius or title metrics in one of the four cards on this page,
   change them in all four or they stop reading as one family.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-overview-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  margin: 20px 0 0;
  gap: 20px;
}

.programs-overview-row > * {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 900px) {
  .programs-overview-row {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.programs-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  padding: 20px;
  max-width: 522px;
}

.programs-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 28px;
}

.programs-overview__left {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  width: 238px;
}

.programs-overview__donut {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  position: relative;
}

.programs-overview__donut-svg {
  display: block;
  height: 100%;
  width: 100%;
}

.programs-overview__ring-track {
  stroke: #f0eef5;
}

.programs-overview__ring-arc {
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.programs-overview__ring-arc:hover {
  opacity: 0.85;
}

.programs-overview__center {
  left: 50%;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: 50%;
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.programs-overview__center-caption {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.programs-overview__center-value {
  color: #4f4f4f;
  font-size: 32px;
  font-weight: 500;
  line-height: 32px;
  text-align: center;
}

.programs-overview__center-sub {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-top: 2px;
  text-align: right;
}

.programs-overview__center-sub-value {
  color: #000000;
  font-weight: 600;
}

.programs-overview__tip {
  background-color: #1c1b3a;
  border-radius: 10px;
  box-sizing: border-box;
  color: #ffffff;
  font-size: 12px;
  left: 50%;
  line-height: 18px;
  min-width: 180px;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  white-space: nowrap;
  z-index: 5;
  -moz-transform: translate(-10%, 6px);
  -o-transform: translate(-10%, 6px);
  -ms-transform: translate(-10%, 6px);
  -webkit-transform: translate(-10%, 6px);
  transform: translate(-10%, 6px);
}

.programs-overview__tip-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  font-weight: 600;
  gap: 8px;
  margin-bottom: 6px;
}

.programs-overview__tip-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-overview__tip-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #ffffff;
  gap: 24px;
}

.programs-overview__tip-row strong {
  font-weight: 600;
}

.programs-overview__tiles {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 20px;
  width: 188px;
}

.programs-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  margin-bottom: 4px;
  text-transform: capitalize;
}

.programs-overview__tile-value {
  color: #4f4f4f;
  font-size: 24px;
  font-weight: 500;
  line-height: 38px;
}

.programs-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  height: 6px;
  margin-top: 8px;
  max-width: 100%;
  overflow: hidden;
  width: 140px;
}

.programs-overview__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}

.programs-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: pointer;
  gap: 10px;
}

.programs-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 9px;
  width: 9px;
}

.programs-overview__legend-label {
  color: #4f4f4f;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-overview__legend-value {
  color: #120d1c;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
}

@media (max-width: 768px) {
  .programs-overview {
    padding: 16px;
  }

  .programs-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-align-items: stretch;
    align-items: stretch;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    gap: 20px;
  }

  .programs-overview__left {
    -webkit-align-self: center;
    align-self: center;
  }

  .programs-overview__tiles {
    width: 100%;
  }
}

/* The "Program Completion" card on the progress report's Programs tab
   (/reports/:athleteId, views/progressreport.html): a contribution-graph style
   heatmap of completed/scheduled programs per bucket.

   Sits beside .programs-overview in .programs-overview-row, which is declared
   in _programs_overview.scss along with the shell constants both cards share -
   see that file's header for why these are separate blocks and why the shell is
   restated rather than imported.

   The grid's shape is data, not style. ProgressReportController's
   _renderProgramCompletion picks one of three layouts from the selected date
   range (seven day columns for a week or a month, month columns over Week 1-5
   rows for anything longer) and hands the template both the
   grid-template-columns track list and a FLAT list of grid items. Flat because
   a CSS grid only flows its direct children, so there can be no per-row
   wrapper - the same trap _progress_overview.scss's header documents for the
   tiles. Nothing here may introduce one.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-completion {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-family: 'Nudista', sans-serif;
  max-width: 602px;
  padding: 20px;
}

.programs-completion__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-completion__scroll {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-items: center;
  align-items: center;
  overflow-x: auto;
  padding-bottom: 4px;
}

.programs-completion__grid {
  display: grid;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
  justify-content: center;
  justify-content: safe center;
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
}

.programs-completion__corner {
  height: 1px;
}

.programs-completion__head-cell,
.programs-completion__row-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-completion__head-cell {
  text-align: center;
}

.programs-completion__row-label {
  text-align: right;
  white-space: nowrap;
}

.programs-completion__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border-radius: 7px;
  box-sizing: border-box;
  color: #efeff1;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 600;
  height: 32px;
  line-height: 100%;
}

.programs-completion__cell--none {
  background-color: #efeff1;
}

.programs-completion__cell--zero {
  background-color: #b3b3be;
}

.programs-completion__cell--l1 {
  background-color: #afd88c;
}

.programs-completion__cell--l2 {
  background-color: #84b15f;
}

.programs-completion__cell--l3 {
  background-color: #5f8f38;
}

.programs-completion__cell--l4 {
  background-color: #3b6d11;
}

.programs-completion__cell--outside {
  background-color: #ffffff;
}

.programs-completion__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding-top: 20px;
}

.programs-completion__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-completion__legend-item + .programs-completion__legend-item {
  margin-left: 8px;
}

.programs-completion__legend-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 20px;
}

.programs-completion__ramp {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 2px;
}

.programs-completion__swatch {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 26px;
}

.programs-completion__swatch--l1 {
  background-color: #afd88c;
  border-radius: 8px 0 0 8px;
}

.programs-completion__swatch--l2 {
  background-color: #84b15f;
}

.programs-completion__swatch--l3 {
  background-color: #5f8f38;
}

.programs-completion__swatch--l4 {
  background-color: #3b6d11;
  border-radius: 0 8px 8px 0;
}

.programs-completion__legend-rule {
  background-color: #ececec;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  margin: 0 8px;
  width: 1px;
}

.programs-completion__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-completion__legend-dot--zero {
  background-color: #b3b3be;
}

.programs-completion__legend-dot--none {
  background-color: #efeff1;
}

@media (max-width: 768px) {
  .programs-completion {
    padding: 16px;
  }
}

/* Opt-in restyle of fusionDropDownPill to match fusionDateRangeSelect.

   The directive and its template are shared by testarchives, teamreport, notes
   and the program-type filter, so none of this may leak. It is scoped to a
   `select-pill` class put on the DIRECTIVE HOST element (the pill's own
   class-color attribute lands on .trigger, which is too deep to reach the
   submenu from). Add the class, drop class-color, and the instance opts in:

     <div class="select-pill" fusion-drop-down-pill ...>

   The legacy rules live in src/sass/_reports.scss, imported by a DIFFERENT
   root sheet (fusionetics-mark-additions.scss). Load order between the two
   sheets is not guaranteed here, so every selector below carries the
   `.select-pill` prefix purely to outrank its legacy counterpart on
   specificity rather than on source order.

   Icons are data-URI backgrounds, not inline SVG, because the shared template
   has no icon slots and adding them would change every other consumer. A
   background image cannot inherit currentColor, so the three glyph colours
   below are baked in - keep them in step with the $sp-* tokens.

   Not changed: the pill still opens on mouseenter (DropDownPill.js binds it),
   where the date selector opens on click. That is directive behaviour shared
   with four other pages, not styling. */

.select-pill {
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- trigger -- */
  /* -- menu -- */
}

.select-pill .dropdown-wrapper .trigger.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  width: 205px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  line-height: 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.select-pill .dropdown-wrapper .trigger.pill:hover {
  border-color: #b0b0b0;
}

.select-pill .dropdown-wrapper .trigger.pill:before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url(../images/progress_page_folder.png) no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .trigger.pill > span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.2px;
  line-height: 20px;
  text-transform: none;
  color: #101828;
  transform: translateY(1px);
}

.select-pill .dropdown-wrapper .trigger.pill .icon-caret-dropdown {
  display: none;
}

.select-pill .dropdown-wrapper .trigger.pill:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%236d6d6d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .submenu-wrapper {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-transform: none;
  color: #4f4f4f;
}

.select-pill .dropdown-wrapper .submenu-wrapper > .submenu-content > .submenu {
  margin-top: 4px;
  box-sizing: border-box;
  width: 205px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul {
  padding: 6px 0;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul + ul {
  border-top: 1px solid #e7e7e7;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 10px 16px 10px 12px;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 18px;
  color: #000000;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li:hover {
  background: #fafafa;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li.is-selected:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.33 4L6 11.33L2.67 8' stroke='%239768eb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

/* Date range selector for the progress report page.

   Ported from the app's date-filter / date-filter-dropdown / calendar-grid.
   Those are Tailwind, so the values below are the de-@apply'd tokens. The app
   only ever renders one month; the two-month view here is new.

   Traps this build has: no autoprefixer (no dvh, no unprefixed-only props),
   and respond() only knows 768px / 480px. The single-month collapse below is
   a property of this panel's width, not a project tier, so it is a bare
   media query. */

.date-range-select {
  position: relative;
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- preset rail -- */
  /* -- calendar side -- */
  /* Panel height is emergent, not hard-coded: 16 + 49 (fields) + 16 (gap)
     + 340 (months) + 20 = 441. Spacing is held at comfortable values and the
     calendar block absorbs the height target via $drs-months-height. */
  /* -- per-field day / month / year picker -- */
  /* The two lines plus the 4px gap have to land exactly on the field's
     content box - 49px less its borders and 8px vertical padding is 31px -
     so these line-heights are load-bearing, not decoration. */
  /* The in-range band is a pseudo-element rather than a background on the
     cell. Two reasons: inset vertically it leaves 1px above and below, so
     consecutive rows keep 2px of white between them; and it sits behind the
     day number, so an endpoint's solid square is not ringed by tint. */
  /* An endpoint only needs to bridge the gap to its neighbour. Starting the
     band at the cell's midpoint keeps it entirely under the solid square
     except for that gap, so no tint shows to the outside of it. */
  /* Two-month grid only. Its block has a fixed height, so the six week rows
     can share whatever the header and day-of-week row leave. The field picker
     keeps the fixed 36px cells above - it has no definite height, so a
     percentage there would resolve to auto. */
  /* Each endpoint keeps its rounding only on the outside of the range; the
     edge facing the band is square, so the solid square and the tint meet
     flush instead of leaving a notch. */
  /* The square edge also pulls in by 1px, so a sliver of the band shows
     between the solid endpoint and the range it opens. The margin eats into
     the number's width rather than moving it - it is a flex item sized to
     100% of the cell, so it shrinks to make room. */
  /* -- narrow -- */
}

.date-range-select__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 198px;
  height: 40px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.date-range-select__trigger:hover {
  border-color: #b0b0b0;
}

.date-range-select__trigger.is-open {
  border-color: #9768eb;
}

.date-range-select__trigger-icon {
  flex: 0 0 auto;
  color: #4f4f4f;
}

.date-range-select__trigger-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -.2px;
  color: #101828;
  transform: translateY(1px);
}

.date-range-select__trigger-caret {
  flex: 0 0 auto;
  color: #6d6d6d;
  transition: transform .15s;
}

.date-range-select__trigger.is-open .date-range-select__trigger-caret {
  transform: rotate(180deg);
}

.date-range-select__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 60;
  display: flex;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.date-range-select__presets {
  flex: 0 0 auto;
  width: 200px;
  padding: 8px 0;
}

.date-range-select__preset {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px 10px 21px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
  cursor: pointer;
}

.date-range-select__preset:hover {
  background: #fafafa;
}

.date-range-select__preset.is-active {
  color: #101828;
}

.date-range-select__preset-check {
  flex: 0 0 auto;
  color: #9768eb;
}

.date-range-select__rule {
  flex: 0 0 auto;
  width: 1px;
  background: #e7e7e7;
}

.date-range-select__calendars {
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.date-range-select__fields {
  position: relative;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  width: 680px;
  margin-bottom: 16px;
}

.date-range-select__field {
  box-sizing: border-box;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 319px;
  height: 49px;
  padding: 8px 12px;
  border: 1px solid #d1d1d1;
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}

.date-range-select__field:hover {
  border-color: #b0b0b0;
}

.date-range-select__field.is-pending {
  border-color: #9768eb;
}

.date-range-select__field.is-open {
  border: 1.5px solid #534ab7;
}

.date-range-select__field-picker {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 10;
  box-sizing: border-box;
  width: 319px;
  padding: 12px 16px 16px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
}

.date-range-select__field-picker.is-to {
  left: auto;
  right: 0;
}

.date-range-select__field-picker-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.date-range-select__field-picker-select {
  flex: 1 1 auto;
  min-width: 0;
  height: 30px;
  padding: 0 6px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #101828;
  cursor: pointer;
}

.date-range-select__field-picker-select:focus {
  outline: none;
  border-color: #9768eb;
}

.date-range-select__field-picker-select.is-year {
  flex: 0 0 76px;
}

.date-range-select__field-label {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  line-height: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #74748a;
}

.date-range-select__field-value {
  flex: 0 0 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  color: #1d1d29;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.date-range-select__months {
  box-sizing: border-box;
  display: flex;
  gap: 24px;
  width: 680px;
  height: 340px;
}

.date-range-select__month {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.date-range-select__month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.date-range-select__month-name {
  flex: 1 1 auto;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  color: #101828;
  white-space: nowrap;
}

.date-range-select__nav {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  color: #6d6d6d;
  cursor: pointer;
}

.date-range-select__nav:hover {
  background: #f6f6f6;
}

.date-range-select__nav.is-placeholder {
  cursor: default;
}

.date-range-select__nav.is-placeholder:hover {
  background: none;
}

.date-range-select__nav.is-narrow-only {
  visibility: hidden;
}

.date-range-select__dow {
  display: flex;
}

.date-range-select__dow-cell {
  flex: 1 1 0;
  height: 32px;
  line-height: 32px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: #4f4f4f;
}

.date-range-select__week {
  display: flex;
}

.date-range-select__day {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  cursor: pointer;
}

.date-range-select__day.is-outside {
  cursor: default;
}

.date-range-select__day-number {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.date-range-select__day.is-today .date-range-select__day-number {
  background: #f6f6f6;
  color: #888888;
}

.date-range-select__day.is-outside .date-range-select__day-number {
  color: #d1d1d1;
  background: none;
}

.date-range-select__day:not(.is-outside):hover .date-range-select__day-number {
  background: #f2edfc;
}

.date-range-select__day.is-in-range::before,
.date-range-select__day.is-start::before,
.date-range-select__day.is-end::before {
  content: '';
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 0;
  right: 0;
  background: #f2edfc;
}

.date-range-select__day.is-start::before {
  left: 50%;
}

.date-range-select__day.is-end::before {
  right: 50%;
}

.date-range-select__day.is-start.is-end::before {
  display: none;
}

.date-range-select__months .date-range-select__week {
  flex: 1 1 0;
  min-height: 0;
}

.date-range-select__months .date-range-select__day {
  height: auto;
}

.date-range-select__months .date-range-select__day-number {
  width: 100%;
  height: calc(100% - 2px);
}

.date-range-select__day.is-start .date-range-select__day-number,
.date-range-select__day.is-end .date-range-select__day-number,
.date-range-select__day.is-start:hover .date-range-select__day-number,
.date-range-select__day.is-end:hover .date-range-select__day-number {
  background: #9768eb;
  color: #ffffff;
}

.date-range-select__day.is-start .date-range-select__day-number {
  border-radius: 4px 0 0 4px;
  margin-right: 1px;
}

.date-range-select__day.is-end .date-range-select__day-number {
  border-radius: 0 4px 4px 0;
  margin-left: 1px;
}

.date-range-select__day.is-start.is-end .date-range-select__day-number {
  border-radius: 4px;
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 768px) {
  .date-range-select__panel {
    flex-direction: column;
    max-width: calc(100vw - 32px);
  }

  .date-range-select__presets {
    width: auto;
    display: flex;
    flex-wrap: wrap;
    padding: 8px;
    gap: 4px;
  }

  .date-range-select__preset {
    padding: 6px 10px;
    border: 1px solid #d1d1d1;
    border-radius: 4px;
  }

  .date-range-select__preset.is-active {
    border-color: #9768eb;
    background: #f2edfc;
  }

  .date-range-select__rule {
    width: auto;
    height: 1px;
  }

  .date-range-select__month + .date-range-select__month {
    display: none;
  }

  .date-range-select__nav.is-narrow-only {
    visibility: visible;
  }

  .date-range-select__fields {
    flex-direction: column;
    width: auto;
    gap: 12px;
  }

  .date-range-select__field {
    width: 100%;
  }

  .date-range-select__field-picker {
    max-width: calc(100vw - 48px);
  }

  .date-range-select__months {
    justify-content: center;
    width: auto;
    height: auto;
  }

  .date-range-select__month {
    flex: 0 1 auto;
    width: 100%;
    max-width: 252px;
  }

  .date-range-select__months .date-range-select__day {
    height: 36px;
  }

  .date-range-select__months .date-range-select__day-number {
    height: 34px;
  }
}

.page-header-back-nav {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
}

.page-header-back-nav label {
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
}

.page-header-back-nav label i.icon {
  font-size: 16px;
}

.page-header-back-nav label span {
  margin-left: 8px;
  font-size: 13px;
}

.test-archives-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 30px 0 5px;
  row-gap: 10px;
}

.test-archives-options > div + div {
  margin-left: 10px;
}

.test-archives-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .test-archives-options .date-ranges {
    flex-basis: 100%;
    flex-direction: column;
    align-items: flex-start;
    margin-left: 0;
    margin-top: 10px;
    gap: 10px;
  }
}

.archive-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.archive-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.archive-container > div span {
  font-size: 18px;
  cursor: default;
}

.archive-container > div i.icon {
  font-size: 16px;
  cursor: pointer;
}

.archive-container > div .archive-name,
.archive-container > div .archive-info,
.archive-container > div .archive-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.archive-container > div .archive-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 120px;
}

.archive-container > div .archive-name span {
  cursor: pointer;
}

.archive-container > div .archive-info,
.archive-container > div .archive-action {
  -webkit-justify-content: center;
  justify-content: center;
}

.archive-container > div .archive-info {
  min-width: 140px;
}

@media (max-width: 568px) {
  .archive-container > div .archive-info {
    min-width: 100px;
  }
}

.archive-container > div .archive-action {
  min-width: 60px;
}

.archive-container > div.header-row {
  min-height: 40px;
}

.archive-container > div.header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  position: relative;
  border-bottom: 1px solid #ccc;
}

@media (max-width: 768px) {
  .header-content {
    max-height: 60px;
    min-height: 60px;
    height: 60px;
    align-items: center;
  }
}

.header-content .header-logo-container {
  position: relative;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .header-content .header-logo-container {
    display: none;
  }
}

.header-content .header-prac-burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0 15px;
  padding-bottom: 7px;
  margin: 0;
  line-height: 1;
}

@media (max-width: 768px) {
  .header-content .header-prac-burger {
    display: block;
  }
}

.header-content .header-prac-menu {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.header-content .header-prac-menu .header-prac-menu__item {
  display: flex;
  align-items: center;
  min-height: 60px;
  max-height: 60px;
  padding: 0 20px;
  border-bottom: 1px solid #333;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.header-content .header-prac-menu .header-prac-menu__item.active {
  color: #efefef;
}

.header-content .header-prac-menu .header-prac-menu__item:not(.active):hover {
  color: #efefef;
}

.header-content .header-prac-user {
  display: none;
}

@media (max-width: 768px) {
  .header-content .header-prac-user {
    display: flex;
  }
}

.header-content .header-logo {
  margin: 10px 35px;
}

.header-content .header-logo img {
  max-width: 180px;
  max-height: 70px;
}

@media (max-width: 768px) {
  .header-content .resp-center {
    display: none;
  }
}

.header-content .user {
  margin-left: auto;
}

.header-content .header-team-name,
.header-content .header-team-name-link {
  border-left: 1px solid #C8C8C9;
}

@media (max-width: 768px) {
  .header-content .header-team-name,
  .header-content .header-team-name-link {
    border-left: 0;
    margin-left: 40px;
  }
}

.header-content .header-team-name h3,
.header-content .header-team-name-link h3 {
  padding: 0px 18px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #11264b;
  text-transform: uppercase;
}

.header-content .header-team-name-resp {
  overflow: hidden;
}

.header-content .header-team-name-resp > h3 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content .header-team-name-link {
  cursor: pointer;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.header-content .team-switcher {
  cursor: pointer;
}

.header-content .team-switcher:after {
  position: absolute;
  top: 80%;
  left: 90%;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.header-content .team-options {
  position: absolute;
  top: 102%;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.header-content .team-options > div {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.header-content .team-options > div:hover {
  background-color: #dedfde;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: 1px;
  margin-left: 1px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 14px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 26px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.active {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 5px;
}

.header-content .white-field > button.signout {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
}

.header-content .white-field > button.signout:hover {
  background-color: #9768EB;
  color: white;
}

.header-content .white-field > button.shop {
  padding-top: 1px;
}

@media (max-width: 768px) {
  .header-content .white-field > button.shop {
    display: none;
  }
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 15px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

@media (max-width: 768px) {
  .header-content--prac .header-team-name,
  .header-content--prac .header-content .header-team-name-link,
  .header-content .header-content--prac .header-team-name-link,
  .header-content--prac .header-team-name-link {
    margin-left: 0;
  }
}

.header-content.header-content--athlete,
.header-content.header-content--prac {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #1a1a2e;
  border-bottom: none;
  align-items: center;
}

.header-content.header-content--athlete .athlete-profile-switch,
.header-content.header-content--prac .athlete-profile-switch {
  min-height: 60px;
  max-height: 60px;
}

.header-content.header-content--athlete .athlete-header-logo,
.header-content.header-content--prac .athlete-header-logo {
  margin: 0 28px;
}

.header-content.header-content--athlete .athlete-header-logo img,
.header-content.header-content--prac .athlete-header-logo img {
  max-width: 145px;
  max-height: 29px;
}

.header-content.header-content--athlete .user__logo,
.header-content.header-content--prac .user__logo {
  height: 44px;
  width: 44px;
}

.header-content.header-content--athlete .user__name,
.header-content.header-content--prac .user__name {
  margin-left: 12px;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--athlete .user__info,
.header-content.header-content--prac .user__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 12px;
  min-width: 0;
}

.header-content.header-content--athlete .user__info .user__name,
.header-content.header-content--prac .user__info .user__name {
  margin-left: 0;
}

.header-content.header-content--athlete .user__role,
.header-content.header-content--prac .user__role {
  color: #E1E1E6;
  font-family: "Nudista", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .header-content.header-content--athlete .passport {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    min-width: 0;
  }

  .header-content.header-content--athlete .athlete-header-logo {
    margin: 0 12px;
  }

  .header-content.header-content--athlete .athlete-header-logo img {
    max-width: 110px;
    max-height: 24px;
  }

  .header-content.header-content--athlete .user__name {
    display: none;
  }
}

.header-content.header-content--prac .athlete-header-logo {
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher {
  position: relative;
  display: flex;
  align-items: center;
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 188px;
  height: 44px;
  padding: 8px 8px 8px 12px;
  border: 1px solid #6C6C7C;
  border-radius: 4px;
  background: #35354B;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__name {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__caret {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.header-content.header-content--prac .header-team-switcher__options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  box-sizing: border-box;
  min-width: 320px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 3px 4px;
  background-color: #ffffff;
  border: 1px solid #EAECF0;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  z-index: 10;
  max-height: 60vh;
  overflow-x: hidden;
  overflow-y: auto;
}

.header-content.header-content--prac .header-team-switcher__label {
  padding: 10px;
  color: #4F4F4F;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  min-height: 40px;
  padding: 10px;
  border-radius: 4px;
  color: #000000;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.header-content.header-content--prac .header-team-switcher__option:hover {
  background-color: #fafafa;
}

.header-content.header-content--prac .header-team-switcher__option--selected,
.header-content.header-content--prac .header-team-switcher__option--selected:hover {
  background-color: #f2edfc;
}

.header-content.header-content--prac .header-team-switcher__option + .header-team-switcher__option {
  margin-top: 8px;
}

.header-content.header-content--prac .header-team-switcher__option__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__option__name {
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__org {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__check {
  display: none;
  flex-shrink: 0;
  color: #9768eb;
}

.header-content.header-content--prac .header-team-switcher__option--selected .header-team-switcher__option__check {
  display: block;
}

.header-content.header-content--prac .header-team-switcher--switchable .header-team-switcher__btn {
  cursor: pointer;
}

.header-content.header-content--prac .header-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  margin-right: 8px;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav {
    gap: 2px;
    margin-right: 0;
  }
}

.header-content.header-content--prac .header-nav__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  min-width: 0;
  width: auto;
  height: 36px;
  min-height: 0;
  max-height: none;
  padding: 0 10px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.header-content.header-content--prac .header-nav__btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav__btn {
    gap: 0;
    padding: 0 8px;
  }

  .header-content.header-content--prac .header-nav__btn > span {
    display: none;
  }
}

.header-content.header-content--prac .header-nav__icon {
  font-size: 18px;
  line-height: 1;
}

.header-content.header-content--prac .header-nav + .user {
  margin-left: 0;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .user__info {
    display: none;
  }
}

.header-content:has(.header-content--athlete),
.header-content:has(.header-content--prac) {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  border-bottom: none;
}

@media only screen and (max-width: 1053px) {
  .header-content-v2 .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  .header-content-v2 .white-field > div > div + div {
    margin-left: 0;
  }

  .header-content-v2 .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  .header-content-v2 .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }
}

.whiteboard {
  min-width: 0;
}

ul.catalog_nav {
  max-width: none;
  min-width: 0;
  width: auto;
}

ul.catalog_nav li > span {
  padding: 11px 0;
  line-height: 1.2;
  min-height: 0;
}

ul.catalog_nav li > ul li > ul li {
  min-height: 0;
  text-indent: 0;
  padding-top: 6px;
  padding-bottom: 6px;
  padding-left: 50px;
}

.catalog-selected .title-container .return-link {
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  line-height: 1.1;
  padding: 0 15px;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 0;
}

@media only screen and (max-width: 900px) {
  .athlete-info-box .bio-header {
    font-size: 15px;
    padding: 0 10px;
  }
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  width: 100%;
  height: auto;
  display: block;
  max-height: 100px;
}

.athlete-info-box .bio-body .athlete-stats {
  -webkit-flex: 2;
  -ms-flex: 2;
  flex: 2;
}

.athlete-info-box .bio-body .athlete-stats > div + div {
  margin-top: 5px;
}

.athlete-info-box .bio-body canvas {
  width: 100%;
  display: block;
}

.athlete-list-view.view-layout .athlete-number {
  max-width: 53px;
  min-width: 53px;
  width: 53px;
  white-space: nowrap;
  line-height: 0.9;
  padding-left: 10px;
}

.athlete-list-view.view-layout .athlete-name {
  padding: 0 15px 0 5px;
  min-width: 0;
}

.profile-summary .today-program,
.profile-summary .today-notice {
  max-width: none;
  min-width: 0;
  width: auto;
  max-height: none;
  height: auto;
  padding: 10px 6px;
}

@media only screen and (min-width: 1054px) {
  .column-container.profile-score + div {
    width: 380px;
  }
}

@media only screen and (max-width: 1053px) {
  body .view-container {
    width: 994px;
    max-width: 100vw;
    min-width: 0;
    padding-left: 15px;
    padding-right: 15px;
  }

  body .view-container .view-container {
    padding-left: 0;
    padding-right: 0;
    width: 100%;
    max-width: 100%;
  }

  body .week-wrapper .week-day-column {
    min-width: 0;
    width: 100%;
  }

  body .header-content .white-field > div {
    margin: 0px 20px;
  }

  body .profile-detail {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-detail .profile-pic {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
    max-width: 200px;
    aspect-ratio: 200 / 175;
    overflow: hidden;
  }

  body .profile-detail .profile-pic img {
    width: 100%;
    display: block;
    height: 100%;
    object-fit: contain;
  }

  body .profile-detail .profile-action {
    width: 100%;
  }

  body .profile-summary {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 4;
    -ms-flex: 4;
    flex: 4;
    padding-left: 15px;
  }

  body .profile-summary > .row-container.divided > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-summary > .row-container.divided > div + div {
    padding-left: 15px;
  }

  body .profile-summary .score-container {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 20px;
  }

  body .profile-summary .score-container .profile-score {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 100%;
  }

  body .profile-summary .score-container .profile-score .profile-score-graph-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
  }

  body .chart-menu .chart-menu-item {
    margin-right: 18px;
  }

  body .program-chart,
  body .line-chart {
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .program-chart {
    max-width: none;
    min-width: 0;
    width: auto;
    min-height: 0;
  }

  body .view-layout .view-container .line-chart .line-chart-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100% !important;
    height: auto !important;
  }

  body .chart-details {
    max-width: none;
    min-width: 0;
    width: auto;
    padding-left: 15px;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body canvas {
    max-width: 100% !important;
    height: auto !important;
  }

  body .calendar-month {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .calendar-month .week-day-labels {
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }

  body .calendar-month .week-day-labels > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    max-width: none;
    min-width: 0;
  }

  body .calendar-month .calendar-days .calendar-day {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 14.28571%;
  }

  body .calendar-month.notes-calendar {
    max-width: 492px;
  }

  body .calendar-day-info {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding-left: 15px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .schedule-calendar-layout {
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  body .schedule-calendar-layout .calendar-month {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
  }

  body .schedule-calendar-layout .calendar-day-info {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
    padding-left: 0;
    margin-top: 20px;
    padding-bottom: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  body .athlete-list-view.view-layout .athlete-stat {
    -webkit-flex: 0;
    -ms-flex: 0;
    flex: 0;
    max-width: 7.5%;
    min-width: 7.5%;
    width: 7.5%;
    letter-spacing: 0;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 15px;
    letter-spacing: 0.5px;
  }

  body .modal {
    max-width: calc(100% - 30px);
  }

  body .modal-container {
    max-width: 100%;
  }

  body .tl-entry-header .tl-select,
  body .tl-entry .tl-select {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .tl-entry-header .tl-input,
  body .tl-entry .tl-input {
    max-width: 86px;
    min-width: 86px;
    width: 86px;
  }

  body .tl-entry .tl-input > .basic-input.small {
    width: 100%;
  }

  body .tl-entry-header .field-label {
    line-height: 1.2;
  }

  body input.basic-input,
  body div.basic-input,
  body div.basic-input-readonly {
    width: 100px;
  }

  body .athlete-menu .athlete-search {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    width: auto;
  }

  body .athlete-menu .athlete-filter-sort {
    min-width: 0;
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    min-width: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 15px 17px 15px 10px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
    font-size: 9px;
    right: 7px;
    top: 38%;
  }

  body .athlete-menu .athlete-reset-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 0 8px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-toggle-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
  }

  body .header-content .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  body .header-content .white-field > div > div + div {
    margin-left: 0;
  }

  body .header-content .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  body .header-content .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }

  body .header-content button {
    min-width: 0;
    padding: 0 5px;
  }

  body .header-content .logo {
    margin-left: 15px;
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .header-content .white-field > button:last-child {
    margin-right: 15px;
  }

  body .line-chart-menu .chart-legend {
    white-space: nowrap;
    margin: 0 0 0 16px;
  }

  body .line-chart-menu .chart-legend > .fa {
    margin-right: 2px;
  }

  body .prompt-box {
    padding: 15px;
  }

  body .test-landing .prompt-box {
    padding: 20px;
    border-radius: 6px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .test-landing {
    padding: 28px 0 56px;
  }

  body .test-landing__title {
    margin-bottom: 24px;
  }

  body .test-landing__section + .test-landing__section {
    margin-top: 28px;
  }

  body .test-landing__card,
  body .test-landing .prompt-box {
    width: 100%;
    max-width: 100%;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 84px;
    padding: 20px;
    gap: 14px;
  }

  body .test-landing__card-actions {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
  }

  body .test-landing__btn {
    flex: 1 1 auto;
  }
}

@media only screen and (max-width: 1053px) {
  body .report-chart-container {
    display: block;
  }

  body .report-chart-container .line-chart {
    display: block;
  }

  body .report-chart-container .report-chart-details {
    display: block;
    margin: 0;
  }

  body .report-details-container .title {
    max-width: none;
    min-width: 0;
    width: auto;
  }
}

@media only screen and (max-width: 900px) {
  body .admin-menu > div + div {
    margin-left: 18px;
  }

  body .catalog_container {
    -webkit-flex: 1 0 200px;
    -ms-flex: 1 0 200px;
    flex: 1 0 200px;
  }

  body .catalog-search form {
    padding: 0 5px;
    width: 100%;
  }

  body .catalog-search form input[type='text'] {
    min-width: 0;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-indent: 0;
    font-size: 15px;
  }

  body .catalog-search form button[type='reset'] {
    margin: 0;
    padding: 0 5px;
    font-size: 10px;
  }

  body .catalog-feature .feature-container .feature-content {
    left: 40px;
  }

  body .practitionersTable > .row-container > div > span,
  body .teamsTable > .row-container > div > span {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(1) {
    max-width: 112px !important;
    min-width: 112px !important;
    width: 112px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(2) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(3) {
    max-width: 108px !important;
    min-width: 108px !important;
    width: 108px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .practitionersTable > .row-container > div:nth-child(5) {
    max-width: 110px !important;
    min-width: 110px !important;
    width: 110px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) {
    max-width: 88px !important;
    min-width: 88px !important;
    width: 88px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) button {
    padding: 0 6px;
  }

  body .teamsTable > .row-container > div:nth-child(1) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .teamsTable > .row-container > div:nth-child(2) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(3) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .teamsTable > .row-container > div:nth-child(5) {
    max-width: 70px !important;
    min-width: 70px !important;
    width: 70px !important;
  }

  body .teamsTable > .row-container > div:nth-child(6) {
    max-width: 212px !important;
    min-width: 212px !important;
    width: 212px !important;
  }
}

@media only screen and (max-width: 900px) and (max-width: 1053px) {
  body .header-logo {
    margin: 0 15px;
  }

  body .header-logo img {
    width: 100%;
  }

  body .header-content .white-field > div > div i {
    display: none;
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: calc((100% - 20px) / 2);
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box .bio-body .athlete-profile .profile-pic {
    max-height: none;
  }
}

@media (max-width: 640px) {
  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .modal-animate-container {
    width: calc(100% - 30px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 30px) !important;
  }

  .modal-dialog {
    width: calc(100% - 30px);
    margin-top: 60px;
  }

  .modal-container section {
    min-width: 0 !important;
    -webkit-align-items: stretch;
    align-items: stretch;
  }

  label.clinical-form-field {
    margin: 0 15px;
  }

  fusion-ordered-drop-down.clinical-drop-down {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  fusion-ordered-drop-down.clinical-drop-down > div.column-container {
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-align-items: center;
    align-items: center;
    overflow: hidden;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle {
    overflow: hidden;
    flex: 1;
    min-width: 0;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media (max-width: 768px) {
  body .athlete-list-view.view-layout .athlete-header,
  body .athlete-list-view.view-layout .athlete-row {
    min-width: 680px;
  }

  body .athlete-list-view.view-layout .athlete-name {
    min-width: 130px;
  }

  body .athlete-list-view.view-layout .athlete-stat {
    max-width: 70px;
    min-width: 70px;
    width: 70px;
    font-size: 13px;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 110px;
    min-width: 110px;
    width: 110px;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 14px;
  }
}

.arrowTabs {
  display: flex;
  align-items: stretch;
  margin: 0 -2px;
}

.arrowTabs > * {
  padding: 0 2px;
}

.arrowTabs > span {
  flex: 1;
  display: block;
  text-align: center;
  display: flex;
  align-items: stretch;
  position: relative;
  cursor: pointer;
}

.arrowTabs > span:before {
  content: " ";
  position: absolute;
  left: 50%;
  margin-left: -8px;
  bottom: -6px;
  height: 0;
  width: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 6px solid #9768EB;
  display: none;
}

.arrowTabs > span span {
  padding: 12px 8px;
  display: block;
  width: 100%;
  background: #F2F4F5;
  color: #ABB0B3;
  font-weight: bold;
  font-size: 14px;
}

.arrowTabs > span:first-child span {
  border-radius: 5px 0 0 5px;
}

.arrowTabs > span:last-child span {
  border-radius: 0 5px 5px 0;
}

.arrowTabs > span.active:before {
  display: block;
}

.arrowTabs > span.active span {
  background: #9768EB;
  color: #fff;
}

.programScheduleTable {
  table-layout: fixed;
  text-align: center;
  border-collapse: collapse;
  width: 100%;
}

@media only screen and (min-width: 1164px) {
  .programScheduleTable {
    width: calc(100% + 70px);
    margin-left: -70px;
  }
}

.programScheduleTable tr > *:first-child {
  width: 70px;
  padding-right: 10px;
}

.programScheduleTable tr > * + * {
  width: calc((100/7*1%) - 10px);
}

.programScheduleTable tr > * + * + * {
  padding-left: 5px;
}

.programScheduleTable tr + tr > * {
  padding-top: 5px;
}

.programScheduleTable thead th {
  color: #BDC1C5;
  font-size: 14px;
  padding: 0 0 15px;
  font-weight: 400;
}

.programScheduleTable tbody th {
  text-align: left;
  vertical-align: middle;
  color: #848990;
  font-size: 14px;
  text-transform: uppercase;
}

.activityPillGroup {
  position: relative;
  background: #F2F4F5;
  border-radius: 8px;
  padding: 8px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  height: 117.3px;
  width: 100%;
}

.activityPillGroup .activityPill {
  height: calc(33.333% - 2px);
}

.activityPillGroup .activityPill + .activityPill {
  margin-top: 3px;
}

.activityPillGroup .addIcon {
  display: none;
  color: #CDD3D7;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
  font-size: 40px;
}

.activityPill {
  text-align: center;
  border-radius: 4px;
  padding: 0 5px;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.activityPill--prompt {
  background: #E4E9EC;
  color: #BDC1C5;
  cursor: pointer;
}

.activityPill--active {
  background: #9768EB;
  color: #fff;
  position: relative;
  padding: 0 15px;
}

.activityPill--active .closeIcon {
  position: absolute;
  top: 50%;
  margin-top: -5px;
  font-size: 10px;
  right: 5px;
  cursor: pointer;
}

.activityPillGroup--empty {
  cursor: pointer;
}

.activityPillGroup--empty .addIcon {
  display: block;
}

.selectAddPill {
  padding: 10px;
  background: #fff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  border-radius: 4px;
}

.selectAddPill .tl-entry .tl-select,
.selectAddPill .tl-entry .tl-select-input .select-toggle {
  min-width: 0;
  max-width: none;
}

.selectAddPill button.primary {
  max-height: none;
  min-height: 0;
  height: auto;
}

.selectAddPill > *:first-child {
  flex: 1;
}

.selectAddPill > * + * {
  margin-left: 15px;
}

.t_pageContentTitle {
  margin: 0;
  color: #9768EB;
  font-size: 24px;
  font-weight: 500;
}

.t_pageContentTitle.top {
  color: #75787B;
}

.ycenter-items {
  -webkit-align-items: center;
  align-items: center;
}

.xgapChildren > * + * {
  padding-left: 15px;
}

.inlineSpaced {
  display: block;
  position: relative;
}

.inlineSpaced > * {
  display: inline-block;
}

.inlineSpaced--align--top > * {
  vertical-align: top;
}

.inlineSpaced--align--middle > * {
  vertical-align: middle;
}

.inlineSpaced--compact {
  margin: -2px;
}

.inlineSpaced--compact > * {
  margin: 2px;
}

.inlineSpaced--spaced {
  margin: -8px;
}

.inlineSpaced--spaced > * {
  margin: 8px;
}

.inlineSpaced--spacedMed {
  margin: -4px;
}

.inlineSpaced--spacedMed > * {
  margin: 4px;
}

.inlineSpaced--optionInputs {
  margin-left: -10px;
  margin-right: -10px;
  margin-top: -4px;
  margin-bottom: -4px;
}

.inlineSpaced--optionInputs > * {
  margin-left: 10px;
  margin-right: 10px;
}

.inlineSpaced--optionInputs > * {
  margin-top: 4px;
  margin-bottom: 4px;
}

.inlineSpaced__child > *:first-child {
  margin-top: 0 !important;
}

.inlineSpaced__child > *:last-child {
  margin-bottom: 0 !important;
}

.color--bad {
  color: #c42a3b;
}

.color--good {
  color: #20b769;
}

.color--ok {
  color: #d8b62f;
}

.color--neutral {
  color: #808080;
}

.color--neutralBlue,
.color--link {
  color: #4AB3DA !important;
}

.flexRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.flexRow__flex {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

button.wide {
  min-width: 200px;
}

.scrollSideWrap__side {
  overflow: auto;
  background: #363A46;
}

@media only screen and (max-width: 900px) {
  .scrollSideWrap__side {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    background: #293040;
  }

  .scrollSideWrap__side .loggedInBlock {
    width: 240px;
  }

  .scrollSideWrap__side .sideBarMainContent {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  .scrollSideWrap__side .sideBarSection {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
  }

  .scrollSideWrap__side .sideBarSection + .sideBarSection {
    padding-top: 0;
  }

  .scrollSideWrap__side .sideBarSection__content {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }
}

@media only screen and (max-width: 900px) {
  .sideBarFilterFields {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    margin: 0 -6px;
  }

  .sideBarFilterFields > * {
    padding: 0 6px;
  }

  .sideBarFilterFields > * {
    width: 50%;
  }
}

.scrollSideWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 20px;
  background: #EFF1F2;
}

.loggedInBlock {
  background: #9768EB;
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 11px;
  padding-bottom: 21px;
}

.loggedInBlock__name {
  margin: 0 0 7px;
  color: #fff;
  font-size: 26px;
  font-weight: 500;
}

.loggedInMenu__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: default;
}

.loggedInMenu__trigger__img img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: block;
}

.loggedInMenu__trigger__name {
  color: #fff;
  padding-left: 10px;
  font-weight: 600;
  font-size: 14px;
}

.loggedInMenu__trigger__icon {
  display: block;
  color: #fff;
  font-size: 6px;
  padding: 6px 0 0 5px;
}

.sideBarSection {
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
}

.sideBarSection--dark {
  background: #293040;
}

@media only screen and (max-width: 900px) {
  .sideBarSection__header {
    width: 110px;
  }
}

.sideBarSection__header__title {
  font-size: 20px;
  font-weight: 500;
}

.blockContent > *:first-child {
  margin-top: 0 !important;
}

.blockContent > *:last-child {
  margin-bottom: 0 !important;
}

.openField {
  display: block;
  width: 100%;
  height: 36px;
  border-radius: 4px;
  background: #F4F4F4;
  font-size: 14px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openField > *:first-child {
  padding-left: 12px;
}

.openField > *:last-child {
  padding-right: 12px;
}

.openField input {
  padding: 5px 0;
}

.openFieldTall_btn {
  max-height: 46px;
  min-height: 46px;
  height: 46px;
}

.openField--rounded {
  border-radius: 20px;
}

.openField--rounded > *:first-child {
  padding-left: 20px;
}

.openField--rounded > *:last-child {
  padding-right: 20px;
}

.openField--darker input {
  color: #75787B;
}

.openField--darker input::-webkit-input-placeholder {
  color: #AAABAF;
}

.openField--darker input:-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input::-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input:-ms-input-placeholder {
  color: #AAABAF;
}

.openField--darker .openFieldSelect__trigger .text {
  color: #75787B;
}

.openField--darker .openFieldSelect__trigger .text.placeholder {
  color: #AAABAF;
  opacity: 1;
}

.openField--tall {
  height: 46px;
}

.openField--tall .openFieldSelect__trigger i {
  font-size: 8px;
  padding-top: 4px;
}

.openFieldSelect {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openFieldSelect__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text.placeholder {
  opacity: 0.38;
}

.openFieldSelect__trigger i {
  font-size: 6px;
  padding-left: 15px;
  opacity: 0.26;
}

.openFieldInput {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput > * + * {
  margin-left: 15px;
}

.openFieldInput input {
  min-width: 0;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background: none;
  border: 0;
  font-size: inherit;
}

.openFieldInput .submitWrap {
  opacity: 0.36;
  cursor: pointer;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput .submitWrap:hover {
  opacity: 1;
}

.openFieldInput .icon-search {
  font-size: 16px;
}

.openFieldSelect--dark {
  background: #51596F;
}

.openFieldInput--light {
  background: #fff;
}

.openFieldInput--dark {
  background: #41495C;
}

.openFieldInput--dark input {
  color: #fff;
}

.openFieldInput--dark input::-webkit-input-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input::-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-ms-input-placeholder {
  opacity: 0.38;
}

.darkSideLinks {
  margin: 50px -10px;
  padding: 0;
  list-style-type: none;
}

.darkSideLinks > li + li {
  margin-top: 5px;
}

.darkSideLinks a {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #41495C;
  color: #fff;
  padding: 10px 17px;
  text-decoration: none;
  border-left: 5px solid transparent;
}

.darkSideLinks a.active {
  border-left-color: #9768EB;
  background: #51596F;
}

.darkSideLinks a.active .num {
  color: #fff;
}

.darkSideLinks .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
}

.darkSideLinks .num {
  color: #707C97;
  font-size: 13px;
  font-weight: 700;
  padding-left: 15px;
}

.pageSectionBlock {
  position: relative;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
  border-top: 5px solid #9768EB;
}

.pageSectionBlock__header {
  padding: 10px 15px 30px;
  border-bottom: 1px solid #EEEEEE;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.pageSectionBlock__header > * + * {
  padding-left: 15px;
}

.pageSectionBlock_preHeader {
  margin: 0 0 10px;
}

.actionsBar {
  padding: 8px 15px 8px 8px;
}

button.primary.small {
  font-size: 15px;
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
  max-height: none;
  min-height: 0;
  height: 41px;
  padding: 0 14px;
  border-radius: 4px;
}

.btnIcon {
  vertical-align: middle;
  display: inline-block;
  font-size: 20px;
}

.btnIcon.icon-add-team {
  font-size: 20px;
}

.btnIcon.icon-add-person {
  font-size: 20px;
}

.btnIcon.icon-add-practitioner {
  font-size: 20px;
}

.btnIcon--left {
  padding-right: 10px;
}

.iconTextLink {
  white-space: nowrap;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.iconTextLink i {
  padding-right: 5px;
}

.pageSection + .pageSection {
  margin-top: 30px;
}

.tableFiltersWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  margin: 0 0 10px;
}

.tableFiltersWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.tableFiltersWrap__side {
  padding-left: 15px;
  width: 25%;
  min-width: 180px;
}

.paginationInfo {
  font-size: 13px;
  color: #75787B;
}

.compactPagination {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.compactPagination > div {
  display: block;
  cursor: pointer;
  vertical-align: top;
  width: 31px;
  text-align: center;
  background: #9768EB;
  border-radius: 4px;
  opacity: 0.4;
}

.compactPagination > div + * {
  margin-left: 1px;
}

.compactPagination > div:hover {
  opacity: 1;
}

.compactPagination > div:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.compactPagination > div:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.compactPagination i {
  position: relative;
  top: -1px;
  display: inline-block;
  color: #fff;
  font-size: 22px;
  line-height: 28px;
  vertical-align: top;
}

.dropdown-wrapper.dropdown-wrapper--inline {
  display: inline-block;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger {
  border: 0;
  line-height: inherit;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger .icon-caret-dropdown {
  padding-left: 4px;
  padding-right: 4px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu {
  background: #fff;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li {
  min-width: 0;
  padding: 5px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li > span > span {
  padding-right: 0;
}

.icon--flip {
  display: inline-block;
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.sortedTableHeader {
  cursor: pointer;
}

.sortedTableHeader.sorted,
.sortedTableHeader:hover {
  background: #F7F7F7;
}

.sortIconWrap {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  height: 16px;
  width: 9px;
  margin-left: 3px;
}

.sortIconWrap:before,
.sortIconWrap:after {
  height: 0;
  width: 0;
  content: " ";
  display: block;
  position: absolute;
  left: 0;
  border-style: solid;
  border-color: transparent;
  border-top-width: 6px;
  border-bottom-width: 6px;
  border-left-width: 4px;
  border-right-width: 4px;
}

.sortIconWrap:before {
  border-bottom-color: #D8D8D8;
  top: -5px;
}

.sortIconWrap:after {
  border-top-color: #D8D8D8;
  bottom: -5px;
}

.sortedTableHeader--desc .sortIconWrap:before {
  display: none;
}

.sortedTableHeader--desc .sortIconWrap:after {
  border-top-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:before {
  border-bottom-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:after {
  display: none;
}

.actionIcon {
  font-size: 140%;
  color: #9768EB;
  cursor: pointer;
}

.actionIcon.icon-letter {
  font-size: 100%;
}

.actionIcon.icon-launch {
  font-size: 192%;
}

.iconActiveCheck {
  font-size: 110%;
  color: #DBDBDB;
}

.iconActiveCheck--active {
  color: #20b769;
}

.inlinePersonBadge {
  font-size: 100%;
  padding-left: 1px;
}

@media only screen and (min-width: 1054px) {
  .altTable tr > * {
    padding-left: 10px;
    padding-right: 10px;
  }

  .altTable tr > *:first-child {
    padding-left: 20px;
  }

  .altTable tr > *:last-child {
    padding-right: 20px;
  }

  .altTable__row {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  .altTable tr > * {
    padding-left: 4px;
    padding-right: 4px;
  }

  .altTable tr > *:first-child {
    padding-left: 8px;
  }

  .altTable tr > *:last-child {
    padding-right: 8px;
  }

  .altTable__row {
    padding-left: 8px;
    padding-right: 8px;
  }
}

.altTable__innerWrap {
  color: #75787B;
  font-size: 13px;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}

@media only screen and (max-width: 1053px) {
  .altTable__innerWrap {
    font-size: 12px;
  }
}

.altTable table {
  border-collapse: collapse;
  width: 100%;
  font-size: inherit;
}

.altTable tr > * {
  text-align: center;
  vertical-align: middle;
}

.altTable tr > *:first-child {
  text-align: left;
}

.altTable tr th {
  border-bottom: 1px solid #CFCFCF;
  font-weight: 600;
  padding-top: 14px;
  padding-bottom: 14px;
}

.altTable tr td {
  border-bottom: 1px solid #EEEEEE;
  padding-top: 12px;
  padding-bottom: 12px;
}

.altTable__simpleHeader {
  margin: 0 0 15px;
  color: #75787B;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: bold;
}

.altTable__footerBar {
  text-align: center;
  padding-top: 10px;
  padding-bottom: 10px;
}

.btn {
  display: inline-block;
  white-space: nowrap;
  cursor: pointer;
  text-align: center;
}

.shortWideBtn {
  min-width: 167px;
  line-height: 24px;
  border: 1px solid #9768EB;
  padding: 0 15px;
  font-weight: 500;
  font-size: 13px;
  color: #9768EB;
  border-radius: 3px;
}

.td--name {
  font-weight: 600;
}

.siteHeaderBar__logoGroup {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
}

.siteHeaderBar__logoGroup > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 15px 20px;
}

.siteHeaderBar__logoGroup > div + div {
  border-left: 1px solid #C8C9C9;
}

.siteHeaderBar__actions {
  padding-right: 20px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.logo--fusSmall {
  width: 119px;
}

.textLink {
  color: #9768EB;
  cursor: pointer;
  font-size: 13px;
}

.textLink--bump {
  font-size: 18px;
}

.backBtn {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  vertical-align: middle;
  width: 45px;
  height: 39px;
  text-align: center;
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 3px;
  cursor: pointer;
}

.flexForm fieldset {
  border: 0;
  margin: 0;
  padding: 12px 0;
}

.flexForm fieldset + fieldset {
  border-top: 1px solid #EFEFF0;
}

.flexFormFooter {
  border-top: 1px solid #EFEFF0;
  padding: 20px 12px;
  text-align: center;
}

.flexFormRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 12px;
  min-height: 46px;
}

.flexFormRow + .flexFormRow {
  margin-top: 12px;
}

.flexFormRow--largeSection {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-top: 12px;
  padding-bottom: 12px;
}

.flexFormRow--largeSection .flexFormRow__labelCol {
  padding-top: 12px;
}

.flexFormRow__labelCol {
  min-height: 1px;
  width: 182px;
  text-align: right;
  font-size: 13px;
  color: #6C6D6C;
  padding-right: 27px;
}

.flexFormRow__fieldsCol {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.fieldsRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 -6px;
}

.fieldsRow > * {
  padding: 0 6px;
}

.fieldsRow--compressed {
  max-width: 500px;
}

.fieldsRow--twoCol > * {
  width: 50%;
}

.fieldsRow--threeCol > * {
  width: 33.33%;
}

.fieldsRow--fourCol > * {
  width: 25%;
}

.iconLabel {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.iconLabel i {
  font-size: 18px;
  color: #AC9EA5;
}

.iconLabel span {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: 15px;
}

.uploadBlock {
  max-width: 390px;
  background: #F5F5F5;
  border-radius: 4px;
  padding: 20px 15px 20px 20px;
}

.inputInnerLabel {
  color: #AAABAF;
}

.collapsed__defaultElement {
  display: none;
}

.collapsed .collapsed__defaultElement {
  display: block;
}

.collapsed .collapsed__altElement {
  display: none;
}

.togglerBar {
  padding: 12px 17px;
  background: #F4F4F4;
  border-radius: 4px;
}

.togglerBar + .togglerBar {
  margin-top: 8px;
}

.togglerBar.collapsed .togglerBar__content {
  display: none;
}

.togglerBar__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.togglerBar__trigger__allToggleInput {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.togglerBar__trigger__icon {
  color: #9768EB;
  font-size: 11px;
  cursor: pointer;
  padding: 5px;
}

.togglerBar__content {
  padding: 24px 0 0;
}

.inputOptionsTree {
  list-style: none;
  margin: 0;
  padding: 0;
}

.inputOptionsTree ul {
  list-style: none;
  margin: 0 0 0 30px;
  padding: 0;
}

.inputOptionsTree li + li,
.inputOptionsTree label + ul {
  margin-top: 8px;
}

.inputOptionsTree > li > label span {
  font-weight: 700;
}

.inputOptionsTree > li > ul {
  margin-bottom: 24px;
}

.inputOptionsTree > li > ul > li > ul {
  margin-bottom: 18px;
}

.columnsList {
  list-style: none;
  margin: 30px 0;
  padding: 0;
}

.columnsList > li {
  margin-bottom: 11px;
}

.columnsList--4 {
  -webkit-column-count: 4;
  -moz-column-count: 4;
  column-count: 4;
}

.closableButton {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #E9F0F2;
  border-radius: 5px;
  padding: 8px 16px;
  color: #75787B;
}

.closableButton span {
  white-space: nowrap;
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.9px;
}

.closableButton i {
  margin-left: 7px;
  padding: 3px 0;
  cursor: pointer;
  font-size: 18px;
}

label.checkbox-input span,
label.radio-input span {
  font-size: 13px;
  color: #75777A;
}

.responsiveShow {
  display: none;
}

@media only screen and (max-width: 900px) {
  .responsiveShow--smDown {
    display: block;
  }
}

.iconColCell {
  width: 20px;
}

.iconColCell .icon-edit {
  position: relative;
  top: -2px;
}

.openFieldWidth--max100 {
  max-width: 100%;
}

.openFieldWidth--small {
  width: 52px;
}

.openFieldWidth--medium {
  width: 148px;
}

.openFieldWidth--rpe {
  width: 200px;
}

.cellWidth--trainingLoad {
  width: 132px;
}

.scoreNum {
  font-weight: 500;
  font-size: 18px;
}

.openField--centered input {
  text-align: center;
}

.tlFiltersHeader {
  padding: 15px 15px;
}

.tlFiltersHeaderMain {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.tlFiltersHeaderMain > * + * {
  padding-left: 15px;
}

.flTable tr > * {
  text-align: left;
  padding-right: 0;
  padding-left: 0;
}

.flTable tr > * + * {
  padding-left: 15px;
}

.flTable tr > *:first-child {
  padding-left: 15px;
}

.flTable tr > *:last-child {
  padding-right: 15px;
}

.flTable .proccessArrow {
  margin-right: -15px;
}

.flTableColWidth {
  box-sizing: content-box;
}

@media only screen and (min-width: 1054px) {
  .flTableColWidth--title {
    width: 300px;
  }

  .flTableColWidth--session {
    width: 300px;
  }
}

.flTableColWidth--durationTarget {
  width: auto;
}

.smallFieldLabel {
  padding: 0 0 7px;
  font-size: 14px;
  color: #75787B;
}

.tlFiltersHeaderSide {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.numName {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.numName__num {
  opacity: 0.4;
}

.numName__name {
  padding-left: 15px;
}

.numName--light {
  color: #75777A;
}

.openField--medium {
  height: 39px;
}

.selectBar {
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 4px;
  padding: 9px 15px;
  line-height: 21px;
}

.selectBar.tall {
  padding: 12.5px 15px;
}

.selectBar i {
  display: none;
  padding-left: 5px;
  font-size: 11px;
}

.selectBar.isSelected {
  background: #F4F4F4;
  color: #C7CBCE;
}

.selectBar.isSelected i {
  display: inline;
}

.submenu__numTextWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 13px;
}

.submenu__numTextWrap .num {
  box-sizing: content-box;
  font-weight: 700;
  color: #6C6D6C;
  width: 15px;
  padding-right: 5px;
}

.submenu__numTextWrap .text {
  font-weight: 400;
  text-transform: none;
}

.contentWithProcessArrowWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.contentWithProcessArrowWrap > *:first-child {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.contentWithProcessArrowWrap .proccessArrow {
  text-align: center;
  width: 40px;
  color: #EFF1F2;
  font-size: 15px;
}

@media only screen and (min-width: 1054px) {
  .contentWithProcessArrowWrap .proccessArrow {
    width: 100px;
  }
}

.openFieldSelect__trigger .icon-target {
  font-size: 19px;
  color: #AAABAF;
  padding-right: 8px;
}

.TL-Duration input:invalid {
  border: 1px solid #CC0000;
  border-radius: 4px;
  height: 100%;
  background: #FFCCCC;
}

.backToLink {
  margin: 0 0 20px;
  display: inline-block;
  color: #9768EB;
  cursor: pointer;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.backToLink i {
  font-size: 15px;
  display: block;
}

.backToLink .text {
  display: block;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  padding-left: 10px;
}

.compactFormStack > * + * {
  margin-top: 10px;
}

.inlineOverlayWrap {
  position: relative;
}

.inlineOverlay {
  position: absolute;
  z-index: 10;
  top: calc(100% - 15px);
  left: 50%;
  transform: translate(-50%, 0);
  background: #fff;
  width: 377px;
  max-width: calc(100% - 30px);
  padding: 15px;
  border: 1px solid #EEEEEE;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.13);
  border-radius: 4px;
}

.inlineOverlay__triangle {
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translate(-50%, -100%);
  width: 29px;
  height: 17px;
  background: url(../images/overlay-triangle.png) center center no-repeat;
  background-size: contain;
}

.inlineOverlay__close {
  position: absolute;
  top: 15px;
  right: 15px;
  font-size: 17px;
  color: #9768EB;
  cursor: pointer;
}

.inlineOverlay__title {
  margin: 0 0 20px;
  padding: 0 30px;
  font-size: 18px;
  font-weight: 500;
  color: #75787B;
  text-align: center;
}

.chart-date-header + .dlRow {
  margin: 10px 0 20px;
}

.dlRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.dlRow + .chart-date-header {
  margin-top: 30px;
}

.dlRow + .dlRow {
  margin-top: 20px;
}

.dlItem__label {
  font-weight: 500;
  color: #75777A;
  font-size: 14px;
}

.dlItem__num {
  font-weight: 100;
  font-size: 30px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.dlItem__num .scoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 8px;
}

.menu-pointer {
  cursor: pointer;
}

.weeklyScoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 4px;
  margin-right: 4px;
}

.profileTLChangeIcon {
  font-size: 10px;
  vertical-align: middle;
  padding-right: 1px;
  padding-bottom: 3px;
}

.review-container .review-tabs + div {
  padding-top: 10px;
  border-top: 1px solid #0af;
}

.review-container .review-frame {
  display: flex;
  align-items: center;
  flex: 0.95;
  padding-left: 5px;
  min-height: 40px;
  font-size: 20px;
  border-bottom: solid 1px #c0c0c0;
  cursor: pointer;
}

.review-container .review-frame.error {
  font-size: 18px;
  font-weight: normal;
  color: #222;
  cursor: not-allowed;
}

.review-container .review-frame i.fa.fa-trash {
  color: #c0c0c0;
}

.review-container .review-frame i.fa.fa-trash:hover {
  color: #990000;
}

.review-container .review-frame img {
  max-width: 18px;
}

.review-container input[type=radio] {
  display: none;
}

.review-container input[type=radio]:checked + label {
  color: #0af;
  border: 1px solid #abc;
  border-top: 2px solid #0af;
  border-bottom: 1px solid #fff;
}

.review-container label[for*="Keypoints"],
.review-container label[for*="Reps"],
.review-container label[for*="Compensations"] {
  display: inline-block;
  margin: 0 0 -1px;
  padding: 10px 25px;
  font-size: 16px;
  text-align: center;
  color: #abc;
  border: 1px solid transparent;
}

.review-container label[for*="Keypoints"]:before,
.review-container label[for*="Reps"]:before,
.review-container label[for*="Compensations"]:before {
  font-family: fontawesome;
  font-weight: normal;
  margin-right: 10px;
}

.review-container label[for*="Keypoints"]:hover,
.review-container label[for*="Reps"]:hover,
.review-container label[for*="Compensations"]:hover {
  color: #789;
  cursor: pointer;
}

.review-container label[for*="Keypoints"]:before {
  content: '\F192';
}

.review-container label[for*="Reps"]:before {
  content: '\F0CB';
}

.review-container label[for*="Compensations"]:before {
  content: '\F1FE';
}

.review-container .comps input {
  display: none;
}

.review-container .comps label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
}

.review-container .comps label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.review-container .comps label.hard {
  background-color: purple;
  border-color: purple;
}

.review-container .comps label.edge {
  background-color: #abc;
  border-color: #abc;
}

.assessment-container {
  margin-bottom: 40px;
}

.assessment-container a {
  text-decoration: none;
  color: #9768EB;
  cursor: pointer;
}

.assessment-container a:hover {
  text-decoration: underline;
}

.assessment-container.more {
  margin-top: 20px;
}

.assessment-container.more > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.assessment-container.info-only {
  margin-top: 60px;
}

.assessment-container.info-only > .list-container > div:not(.scroll-container) {
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 20px;
}

.assessment-container.info-only > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  font-size: 16px;
  text-indent: 10px;
  text-transform: uppercase;
  border-bottom: 1px solid #c9c9c9;
}

.assessment-container > .list-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.assessment-container > .list-container > div:not(.scroll-container) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > div:not(.scroll-container) span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info > a > span {
  cursor: pointer;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row {
  min-height: 40px;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container > .list-container > .scroll-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 5px;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > .scroll-container > div span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container > div .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .no-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.assessment-container .info-column {
  margin-right: 25px;
  min-width: 240px;
}

.assessment-container .info-column > .info-container {
  padding: 8px;
  border: 1px solid #c0c0c0;
}

.assessment-container .info-column > .info-container > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 8px 0px;
  min-height: 35px;
  background-color: #dcdcdc;
}

.assessment-container .info-column > .info-container > div:not(.banner) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:first-of-type {
  min-width: 100px;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:last-of-type {
  max-width: 120px;
}

.assessment-container .info-column > .info-container > div:not(.banner).state-info {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.assessment-container .info-column .info-container + .info-container {
  margin-top: 30px;
}

.assessment-container .media-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.assessment-container .video-column {
  position: relative;
  margin-bottom: 25px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.assessment-container .video-column > video,
.assessment-container .video-column > canvas {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 160px);
  width: auto;
  height: auto;
}

.assessment-container .video-column .video-play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  cursor: pointer;
}

.assessment-container .video-column .video-play-overlay.is-hidden {
  display: none;
}

.assessment-container .video-column .video-play-overlay i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  padding-left: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 38px;
  opacity: 0.9;
}

.assessment-container .detail-column {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 0;
}

.assessment-container .detail-column .table-scroll {
  overflow-x: auto;
  padding-bottom: 5px;
}

.assessment-container .detail-column .detail-table {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container .detail-column .detail-table > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-bottom: 5px;
}

.assessment-container .detail-column .detail-table > div.header {
  font-weight: 600;
}

.assessment-container .detail-column .detail-table > div.items {
  min-height: 50px;
  border-top: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-table {
  min-width: 700px;
}

.assessment-container .detail-column .exercise-list.items {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding: 12px 0;
}

.assessment-container .detail-column .exercise-list > .name {
  -webkit-flex: 0.6;
  -ms-flex: 0.6;
  flex: 0.6;
  min-width: 160px;
  cursor: pointer;
}

.assessment-container .detail-column .exercise-list > .status {
  -webkit-flex: 0.4;
  -ms-flex: 0.4;
  flex: 0.4;
  min-width: 110px;
  text-align: center;
}

.assessment-container .detail-column .exercise-list > .reasoning {
  -webkit-flex: 1.4;
  -ms-flex: 1.4;
  flex: 1.4;
  min-width: 340px;
  padding-right: 15px;
  text-align: left;
}

.assessment-container .detail-column .exercise-list > .action {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 100px;
}

.assessment-container .detail-column .exercise-list > .action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container .detail-column .exercise-list .reason-entry + .reason-entry {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dotted #cdcdcd;
}

.assessment-container .detail-column .exercise-list .reason-source {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-reason {
  font-size: 13px;
  line-height: 1.35;
  word-break: break-word;
}

.assessment-container .detail-column .exercise-list .reason-meta {
  font-size: 12px;
  line-height: 1.35;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-warning {
  font-size: 12px;
  line-height: 1.35;
  color: #7f6a18;
}

.assessment-container .detail-column .exercise-list .reason-muted {
  font-size: 12px;
  font-style: italic;
  color: #808080;
}

.assessment-container .detail-column .measurement-list.header .name ~ div {
  min-width: 80px;
  text-align: center;
}

.assessment-container .detail-column .measurement-list > .name {
  min-width: 300px;
  max-width: 300px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.assessment-container .detail-column .measurement-list .name ~ div {
  margin-left: 5px;
}

.assessment-container .detail-column .measurement-list input[type=checkbox] {
  display: none;
}

.assessment-container .detail-column .measurement-list label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}

.assessment-container .detail-column .measurement-list label.inactive {
  cursor: not-allowed;
}

.assessment-container .detail-column .measurement-list label.inactive:not(.found) {
  background-color: #c0c0c0;
  border-color: #c0c0c0;
}

.assessment-container .detail-column .measurement-list label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.assessment-container .detail-column .exercise-status {
  margin-top: 20px;
}

.assessment-container .detail-column .exercise-status > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 52px;
  background-color: #c0c0c0;
  border: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-status > div.pending {
  background-color: #00b96d;
}

.assessment-container .detail-column .exercise-status > div .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 10px;
  font-size: 16px;
}

.assessment-container .detail-column .exercise-status > div .text.manual {
  color: #fefefe;
}

.assessment-container .detail-column .exercise-status > div .text.pending {
  color: #efefef;
}

.assessment-container .detail-column .exercise-status > div .text.complete {
  color: #2d6b1d;
}

.assessment-container .detail-column .exercise-status > div .text.aborted {
  color: #2d1818;
}

.assessment-container .detail-column .exercise-status > div .button {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.assessment-container .detail-column .exercise-status > div .button > button {
  min-height: 40px;
  max-height: 40px;
}

.assessment-container .detail-column .measurement-save {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 20px 0;
}

.assessment-container .detail-column .measurement-save > button {
  min-width: 130px;
  text-transform: uppercase;
}

.programs-page-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.programs-page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 24px 32px 48px;
  background: #f6f6f7;
  box-sizing: border-box;
  overflow-y: auto;
}

.programs-page button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.programs-page button + button {
  margin-left: 0;
}

.programs-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.programs-page__title {
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.programs-page__catalog-btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 18px;
  background: #f6f6f7;
  border: 1px solid #9768EB;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  cursor: pointer;
}

.programs-page__catalog-btn:hover {
  background: #f2edfc;
}

.programs-page__tabs {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.programs-page__tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__tab--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__tab--active .programs-page__tab-count {
  background: rgba(255, 255, 255, 0.75);
  color: #9768EB;
}

.programs-page__notice {
  display: flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 44px;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fdf8ec;
  border: 1px solid #f2e3bd;
  border-radius: 6px;
}

.programs-page__notice-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  position: relative;
  top: -1px;
}

.programs-page__notice-text {
  flex: 1 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
}

.programs-page__notice-close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 4px;
  background: none;
  border: 0;
  font-size: 20px;
  line-height: 1;
  color: #d68b00;
  cursor: pointer;
}

.programs-page__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 361px);
  gap: 24px;
  align-items: start;
}

.programs-page__skeleton-grid {
  display: contents;
}

.programs-page__empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
}

.programs-page__empty-title {
  margin: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty-description {
  margin: 0;
  max-width: 420px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty .programs-page__catalog-btn {
  margin-top: 16px;
}

.programs-page__history-table-wrap {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  overflow-x: auto;
}

.programs-page__history-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  table-layout: fixed;
}

.programs-page__history-th {
  height: 40px;
  padding: 0 16px;
  border-bottom: 1px solid #ececec;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: left;
  vertical-align: middle;
}

.programs-page__history-th--name {
  width: 38%;
}

.programs-page__history-th--date {
  width: 16%;
}

.programs-page__history-th--created {
  width: 30%;
}

.programs-page__history-sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.programs-page__history-sort:hover {
  color: #1f1f28;
}

.programs-page__history-sort-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
}

.programs-page__history-sort-icon path {
  fill: #6d6d6d;
}

.programs-page__history-sort-icon--asc .programs-page__history-sort-up,
.programs-page__history-sort-icon--desc .programs-page__history-sort-down {
  fill: #9768eb;
}

.programs-page__history-row {
  height: 72px;
  border-bottom: 1px solid #ececec;
}

.programs-page__history-row:last-child {
  border-bottom: 0;
}

.programs-page__history-td {
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  vertical-align: middle;
}

.programs-page__history-td--name {
  display: flex;
  align-items: center;
  gap: 12px;
}

.programs-page__history-td--date {
  color: #6d6d6d;
}

.programs-page__history-td--created {
  color: #6d6d6d;
}

.programs-page__history-thumb {
  display: block;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
  background: #d9d9d9;
}

.programs-page__history-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 0;
}

.programs-page__history-skeleton-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
}

.programs-page__history-skeleton-thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
}

.programs-page__history-name {
  min-width: 0;
}

.programs-page__history-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  overflow-wrap: break-word;
}

.programs-page__history-genre {
  margin-top: 2px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.programs-page__history-footer {
  padding: 14px 16px;
  border-top: 1px solid #ececec;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__history-footer--cards {
  padding: 4px 4px 0;
  border-top: 0;
}

.programs-page__history-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.programs-page__history-sortbar {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}

.programs-page__history-chip {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__history-chip--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__history-chip-icon {
  flex: 0 0 auto;
  font-size: 12px;
  color: inherit;
}

.programs-page__history-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-sizing: border-box;
  padding: 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
}

.programs-page__history-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.programs-page__history-card .programs-page__history-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 40px;
  overflow: hidden;
}

.programs-page__history-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 4px;
}

.programs-page__history-date {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.programs-page__history-date-label {
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #6d6d6d;
}

.programs-page__history-date-value {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
}

.program-card {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 361px;
  height: 348px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: visible;
}

.program-card__media {
  position: relative;
  flex: 0 0 auto;
  height: 152px;
  overflow: visible;
  background: #e7e7e7;
  border-radius: 6px 6px 0 0;
}

.program-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 2px 8px;
  background: #f2edfc;
  border-radius: 16px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 17px;
  letter-spacing: 0;
  text-align: center;
  color: #533d82;
}

.program-card__menu {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}

.program-card__menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-card__menu-btn:hover {
  color: #1f1f28;
  background: #f2f2f4;
}

.program-card__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  box-sizing: border-box;
  width: 180px;
  min-width: 180px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);
  overflow: hidden;
}

.program-card__menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 14px 16px;
  background: none;
  border: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #f04438;
  text-align: left;
  cursor: pointer;
}

.program-card__menu-item:hover {
  background: #fef3f2;
  color: #f04438;
}

.program-card__menu-item-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  padding: 12px;
  box-sizing: border-box;
  overflow: hidden;
}

.program-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  flex-shrink: 0;
  max-height: 40px;
  overflow: hidden;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__tags {
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.program-card__tag {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: 4px;
  height: 20px;
  padding: 0 8px;
  background: #f2f2f4;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: center;
}

.program-card__tag-icon {
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 1;
  color: inherit;
}

.program-card__tag-icon--img {
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.program-card__meta {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  flex-shrink: 1;
  gap: 4px;
  min-height: 0;
  overflow: hidden;
}

.program-card__meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.program-card__meta-name {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.program-card__meta-date {
  flex: 0 0 auto;
  white-space: nowrap;
}

.program-card__meta-icon {
  flex: 0 0 auto;
  width: 14px;
  font-size: 12px;
  text-align: center;
  color: #6d6d6d;
}

.program-card__meta-icon--img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.program-card__meta-icon--svg {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 14px;
}

.program-card__meta-icon--svg svg {
  display: block;
  width: 14px;
  height: 14px;
}

.program-card__meta-dot {
  flex: 0 0 auto;
  margin: 0 -2px;
  font-size: 12px;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid #ececec;
}

.program-card__schedule-label {
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__days {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.program-card__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  background: #f2f2f4;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-card__actions {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}

.program-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  gap: 8px;
  width: 100%;
  height: 44px;
  padding: 0 16px 0 12px;
  background: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #fff;
  cursor: pointer;
}

.program-card__cta:hover {
  opacity: 0.9;
}

.program-card__cta--ghost {
  background: #fff;
  color: #9768EB;
}

.program-card__cta--ghost:hover {
  background: #f2edfc;
  opacity: 1;
}

.program-card__cta-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card--skeleton {
  pointer-events: none;
}

.program-card--skeleton .program-card__media {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.program-card__skeleton-title {
  height: 16px;
  width: 72%;
  max-width: none;
}

.program-card__skeleton-tag {
  height: 20px;
  width: 72px;
  border-radius: 4px;
}

.program-card__skeleton-meta {
  height: 12px;
  width: 58%;
  max-width: none;
}

.program-card__skeleton-cta {
  height: 44px;
  width: 100%;
  max-width: none;
  border-radius: 4px;
  margin-top: auto;
}

@media (max-width: 1100px) {
  .programs-page {
    padding: 20px 20px 40px;
  }

  .programs-page__grid {
    grid-template-columns: repeat(auto-fill, 361px);
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .programs-page {
    padding: 16px 16px 32px;
  }

  .programs-page__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .programs-page__title {
    font-size: 24px;
    line-height: 32px;
  }

  .programs-page__catalog-btn {
    width: 100%;
  }

  .programs-page__tabs {
    flex-wrap: nowrap;
    gap: 8px;
  }

  .programs-page__tab {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    padding: 0 10px;
    gap: 6px;
    font-size: 12px;
  }

  .programs-page__tab-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .programs-page__tab-count {
    flex: 0 0 auto;
    min-width: 20px;
    padding: 0 5px;
  }

  .programs-page__grid {
    grid-template-columns: 361px;
    justify-content: center;
  }

  .programs-page__empty {
    padding: 56px 16px;
  }
}

.programs-toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 900;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  height: 44px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 8px 8px 8px 16px;
  border-radius: 4px;
  background: #35354b;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

.programs-toast__check {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
  margin-right: -20px;
}

.programs-toast__message {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.programs-toast__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
}

.programs-toast__close img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.programs-toast__close:hover {
  background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 768px) {
  .programs-toast {
    bottom: 16px;
    max-width: calc(100vw - 24px);
    gap: 16px;
  }

  .programs-toast__check {
    margin-right: 0;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.program-delete {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  padding: 32px 32px 24px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.program-delete__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.program-delete__close:hover {
  background: transparent;
  color: #000000;
}

.program-delete__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.program-delete__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 24px;
}

.program-delete__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.program-delete__btn--ghost {
  gap: 10px;
  min-width: 88px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #b0b0b0;
  background-color: #ffffff;
  color: #000000;
}

.program-delete__btn--ghost:hover {
  background-color: #f7f7f8;
}

.program-delete__btn--danger {
  gap: 12px;
  min-width: 94px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.program-delete__btn--danger:hover {
  background-color: #d92d20;
}

@media (max-width: 480px) {
  .program-delete {
    padding: 20px;
  }

  .program-delete__close {
    top: 16px;
    right: 16px;
  }

  .program-delete__actions {
    margin-top: 20px;
  }
}

.program-catalog {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-catalog button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-catalog button + button {
  margin-left: 0;
}

.program-catalog input[type='text'] {
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
}

.program-catalog__breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.program-catalog__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__crumb:hover {
  color: #1f1f28;
}

.program-catalog__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-catalog__crumb--current:hover {
  color: #9768eb;
}

.program-catalog__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-catalog__title {
  margin: 0 0 20px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.program-catalog__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.program-catalog__filters {
  display: flex;
  align-items: center;
  gap: 12px;
}

.program-catalog__filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 4px 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__filter--active {
  padding-left: 12px;
  border-color: #7355b5;
  background: #f2edfc;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  color: #9768eb;
}

.program-catalog__filter-icon {
  font-size: 14px;
}

.program-catalog__filter-icon--img {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  background-color: #6c6c7c;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.program-catalog__filter--active .program-catalog__filter-icon--img {
  background-color: #7355b5;
}

.program-catalog__search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  width: 215px;
  height: 36px;
  padding: 8px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
}

.program-catalog__search--inline {
  flex: 1 1 auto;
  width: auto;
  margin: 12px 20px;
}

.program-catalog__search-icon {
  flex: 0 0 auto;
  font-size: 13px;
  color: #6d6d6d;
}

.program-catalog__search-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  line-height: 20px;
  color: #1f1f28;
}

.program-catalog__search-input::-webkit-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input::-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-ms-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:focus {
  outline: none;
}

.program-catalog__search-clear {
  flex: 0 0 auto;
  padding: 0 2px;
  background: none;
  border: 0;
  font-size: 18px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__groups,
.program-catalog__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__sections {
  margin-top: 12px;
}

.program-catalog__group {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-catalog__group--open {
  border-color: #9768eb;
}

.program-catalog__group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: auto;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__group--open .program-catalog__group-header {
  background: #f7f7f8;
}

.program-catalog__group-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-catalog__group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.program-catalog__group-chevron {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__group-body {
  border-top: 1px solid #ececec;
}

.program-catalog__subgroup-title {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.program-catalog__row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 12px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__row + .program-catalog__row {
  border-top: 1px solid #ececec;
}

.program-catalog__row:hover {
  background: #fafafa;
}

.program-catalog__thumb {
  display: block;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 4px;
  background: #d9d9d9;
}

.program-catalog__main {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.program-catalog__name {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  overflow-wrap: break-word;
  word-break: break-word;
}

.program-catalog__badge {
  flex: 0 0 auto;
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  color: #17945a;
}

.program-catalog__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.program-catalog__meta-sep {
  font-size: 10px;
}

.program-catalog__row-chevron {
  flex: 0 0 auto;
  font-size: 12px;
  color: #6d6d6d;
}

.program-catalog__skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__skeleton-group {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 20px;
}

.program-catalog__skeleton-title {
  flex: 0 1 auto;
  width: 180px;
  height: 16px;
  margin: 2px 0;
}

.program-catalog__skeleton-title--short {
  width: 128px;
}

.program-catalog__skeleton-count {
  flex: 0 0 auto;
  width: 22px;
  height: 20px;
  border-radius: 11px;
}

.program-catalog__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-left: auto;
}

.program-catalog__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__action {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
  cursor: pointer;
}

.program-catalog__action:hover {
  border-color: #9768eb;
}

.program-catalog__action-icon,
.program-catalog__action-plus {
  flex: 0 0 auto;
  font-size: 14px;
  color: #9768eb;
}

.program-catalog__action-plus {
  margin-left: auto;
}

.program-catalog__action-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.program-catalog__action-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
}

.program-catalog__action-subtitle {
  font-size: 12px;
  line-height: 16px;
  color: #6d6d6d;
}

@media (max-width: 1100px) {
  .program-catalog {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-catalog {
    padding: 16px 16px 32px;
  }

  .program-catalog__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-catalog__toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .program-catalog__filters {
    flex-wrap: wrap;
  }

  .program-catalog__search {
    flex: 1 1 auto;
  }

  .program-catalog__main {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .program-catalog__meta {
    flex-wrap: wrap;
  }

  .program-catalog__groups .program-catalog__row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    grid-template-areas: 'thumb main chevron' 'thumb meta chevron';
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
  }

  .program-catalog__groups .program-catalog__thumb {
    grid-area: thumb;
    align-self: start;
  }

  .program-catalog__groups .program-catalog__main {
    grid-area: main;
  }

  .program-catalog__groups .program-catalog__meta {
    grid-area: meta;
    justify-content: flex-start;
  }

  .program-catalog__groups .program-catalog__row-chevron {
    grid-area: chevron;
  }
}

.program-detail {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-detail button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-detail button + button {
  margin-left: 0;
}

.program-detail__breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.program-detail__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__crumb:hover {
  color: #1f1f28;
}

.program-detail__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-detail__crumb--current:hover {
  color: #9768eb;
}

.program-detail__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-detail__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 10px;
}

.program-detail__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.program-detail__header-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex: 0 0 auto;
  gap: 12px;
}

.program-detail__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}

.program-detail__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.program-detail__chip--warn {
  color: #c42a3b;
  font-weight: 600;
}

.program-detail__chip--current {
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 12px;
  font-weight: 600;
  color: #17945a;
}

.program-detail__chip-icon {
  flex: 0 0 auto;
}

.program-detail__description {
  margin-bottom: 20px;
  font-size: 15px;
  line-height: 24px;
  color: #1f1f28;
}

.program-detail__description p {
  margin: 0 0 12px;
}

.program-detail__description p:last-child {
  margin-bottom: 0;
}

.program-detail__notice {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fffaf0;
  border: 1px solid #fde8be;
  border-radius: 8px;
}

.program-detail__notice-icon {
  flex: 0 0 auto;
}

.program-detail__notice-text {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #d68b00;
}

.program-detail__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 60px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__schedule-label {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-detail__days {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  margin-right: 24px;
}

.program-detail__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  background: #f2f2f4;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  color: #6d6d6d;
}

.program-detail__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-detail__schedule-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__schedule-edit:hover {
  color: #855ad4;
}

.program-detail__schedule-edit-icon {
  flex: 0 0 auto;
}

.program-detail__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 183px;
  height: 44px;
  box-sizing: border-box;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__button:hover {
  background: #f2edfc;
}

.program-detail__button--primary {
  background: #9768eb;
  color: #fff;
}

.program-detail__button--primary:hover {
  background: #855ad4;
}

.program-detail__button-icon {
  flex: 0 0 auto;
}

.program-detail__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
}

.program-detail__stat {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 220px;
  min-width: 0;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__stat-icon {
  flex: 0 0 auto;
  padding: 10px;
  background: #f2f2f4;
  border-radius: 8px;
  box-sizing: content-box;
}

.program-detail__stat-body {
  min-width: 0;
}

.program-detail__stat-label {
  margin-bottom: 2px;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  color: #6d6d6d;
}

.program-detail__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 26px;
  color: #1f1f28;
}

.program-detail__tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ececec;
}

.program-detail__tab {
  padding: 12px 16px;
  background: none;
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__tab:hover {
  color: #1f1f28;
}

.program-detail__tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-detail__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-detail__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-detail__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-detail__section-title {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #1f1f28;
}

.program-detail__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-detail__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-detail__section-body {
  border-top: 1px solid #ececec;
}

.program-detail__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
}

.program-detail__exercise + .program-detail__exercise {
  border-top: 1px solid #ececec;
}

.program-detail__exercise-info {
  min-width: 0;
}

.program-detail__exercise-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.program-detail__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-detail__exercise-attributes > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.program-detail__exercise-attributes > span + span::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-right: 4px;
  border-radius: 50%;
  background: #d1d1d1;
  transform: translateY(1px);
}

.program-detail__attribute-label {
  font-weight: 600;
}

.program-detail__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1f1f28;
  cursor: pointer;
}

.program-detail__exercise-action:hover {
  background: #f2f2f4;
}

.program-detail__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-detail__delete {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #c42a3b;
  cursor: pointer;
}

.program-detail__delete:hover {
  text-decoration: underline;
}

.program-detail__skeleton-chip {
  width: 96px;
  height: 16px;
  margin: 2px 0;
}

.program-detail__skeleton-line {
  width: 100%;
  height: 14px;
  margin: 5px 0;
}

.program-detail__skeleton-line--short {
  width: 60%;
}

.program-detail__skeleton-stat-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 8px;
}

.program-detail__skeleton-stat-label {
  width: 64px;
  height: 12px;
  margin: 3px 0 5px;
}

.program-detail__skeleton-stat-value {
  width: 96px;
  height: 18px;
  margin: 4px 0;
}

.program-detail__skeleton-tab {
  display: inline-flex;
  padding: 12px 16px 14px;
}

.program-detail__skeleton-tab-label {
  width: 72px;
  height: 14px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title {
  width: 180px;
  height: 16px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title--short {
  width: 128px;
}

.program-detail__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-right: 11px;
}

@media (max-width: 1100px) {
  .program-detail {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-detail {
    padding: 16px 16px 32px;
  }

  .program-detail__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-detail__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .program-detail__stat:only-child {
    grid-column: 1 / -1;
  }

  .program-detail__stat {
    padding: 16px;
  }

  .program-detail__schedule {
    height: auto;
    flex-wrap: wrap;
    padding: 14px 16px;
  }

  .program-detail__days {
    margin-right: 0;
  }

  .program-detail__tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .program-detail__tab {
    flex: 0 0 auto;
  }

  .program-detail__exercise {
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .program-detail {
    padding: 16px 12px 32px;
  }

  .program-detail__stats {
    gap: 10px;
  }

  .program-detail__stat {
    gap: 10px;
    padding: 12px 10px;
  }

  .program-detail__stat-icon {
    padding: 7px;
  }

  .program-detail__stat-label {
    font-size: 12px;
  }

  .program-detail__stat-value {
    font-size: 16px;
    line-height: 22px;
  }
}

.daily-program-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.daily-program {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.daily-program button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-program button + button {
  margin-left: 0;
}

.daily-program__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.daily-program__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.daily-program__identity {
  min-width: 0;
}

.daily-program__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #1f1f28;
}

.daily-program__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.daily-program__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #e7e7e7;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__pill-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.daily-program__metric {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__metric-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.daily-program__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-program__button:hover {
  background: #f2edfc;
}

.daily-program__button--primary {
  background: #9768eb;
  color: #fff;
}

.daily-program__button--primary:hover {
  background: #855ad4;
}

.daily-program__button--done {
  background: #d9d4e2;
  border-color: #d9d4e2;
  color: #fff;
}

.daily-program__button--done:hover {
  background: #d9d4e2;
}

.daily-program__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.daily-program__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.daily-program__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.daily-program__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__section-chevron {
  flex: 0 0 auto;
  display: block;
  width: 36px;
  font-size: 14px;
  line-height: 1;
  text-align: center;
  color: #6d6d6d;
}

.daily-program__section-body {
  border-top: 1px solid #ececec;
}

.daily-program__technique {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-program__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.daily-program__exercise + .daily-program__exercise {
  border-top: 1px solid #ececec;
}

.daily-program__exercise:hover {
  background: #f2edfc;
}

.daily-program__exercise:hover .daily-program__exercise-action {
  color: #9768eb;
}

.daily-program__exercise-info {
  display: block;
  min-width: 0;
}

.daily-program__exercise-name {
  display: block;
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.daily-program__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.daily-program__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #1f1f28;
}

.daily-program__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.daily-program__footer {
  display: flex;
  align-items: center;
}

.daily-program__footer .daily-program__button {
  flex: 1 1 auto;
  padding: 14px 24px;
  font-size: 15px;
}

@media (max-width: 640px) {
  .daily-program {
    padding: 20px 16px 40px;
  }

  .daily-program__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .daily-program__thumb {
    width: 100%;
    height: auto;
  }

  .daily-program__meta {
    gap: 8px 12px;
  }
}

@media (max-width: 480px) {
  .daily-program {
    padding: 16px 12px 32px;
  }

  .daily-program__section-header {
    padding: 16px;
  }

  .daily-program__exercise {
    padding: 0 16px;
  }

  .daily-program__technique {
    padding: 12px 16px 4px;
  }
}

.schedule-steps {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 28px;
}

.schedule-steps__step {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-steps__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}

.schedule-steps__label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.14px;
  color: #9d9d9d;
}

.schedule-steps__step--active .schedule-steps__marker {
  background: #f2edfc;
  color: #32254f;
}

.schedule-steps__step--active .schedule-steps__label {
  color: #32254f;
}

.schedule-steps__step--complete .schedule-steps__marker {
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 11px;
}

.schedule-steps__step--complete .schedule-steps__label {
  color: #6d6d6d;
}

@media only screen and (max-width: 560px) {
  .schedule-steps {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 10px;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

.view-flex.program-summary-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-summary {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-summary button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-summary button + button {
  margin-left: 0;
}

.program-summary__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.program-summary__identity {
  min-width: 0;
}

.program-summary__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.program-summary__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-summary__chip--type {
  padding: 4px 10px;
  border-radius: 4px;
  background: #e7e7e7;
}

.program-summary__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-summary__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  margin-bottom: 16px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-summary__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-summary__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__section {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-summary__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-summary__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-summary__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-summary__section-body {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
}

.program-summary__exercise + .program-summary__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise-info {
  min-width: 0;
}

.program-summary__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-summary__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-summary__exercise-play {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__exercise-play:hover {
  background: #f2f2f4;
}

.program-summary__exercise-play-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-summary__body {
  position: relative;
}

.program-summary__skeleton {
  pointer-events: none;
}

.program-summary__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-summary__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__skeleton-thumb {
  flex: 0 0 auto;
  width: 136px;
  height: 88px;
  border-radius: 6px;
}

.program-summary__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-summary__skeleton-title {
  height: 24px;
  width: 72%;
  max-width: none;
}

.program-summary__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__skeleton-chip {
  flex: 0 0 auto;
  height: 14px;
  max-width: none;
  border-radius: 4px;
}

.program-summary__skeleton-chip--type {
  height: 24px;
  width: 88px;
}

.program-summary__skeleton-chip--weeks {
  width: 72px;
}

.program-summary__skeleton-chip--frequency {
  width: 104px;
}

.program-summary__skeleton-tabs {
  display: block;
  height: 36px;
  width: 258px;
  max-width: 100%;
  border-radius: 8px;
  margin-bottom: 16px;
}

.program-summary__skeleton-sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__skeleton-section {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 56px;
  padding: 0 20px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__skeleton-section-title {
  height: 16px;
  width: 55%;
  max-width: none;
}

.program-summary__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__skeleton-button {
  height: 46px;
  width: 110px;
  max-width: none;
  border-radius: 6px;
}

.program-summary__skeleton-button--primary {
  width: 140px;
}

.program-summary__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-summary__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 640px) {
  .program-summary {
    padding: 20px 16px 40px;
  }

  .program-summary__header,
  .program-summary__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-summary__skeleton-thumb {
    width: 100%;
    height: 88px;
  }

  .program-summary__thumb {
    width: 100%;
    height: auto;
  }

  .program-summary__title {
    font-size: 24px;
  }

  .program-summary__tabs {
    display: flex;
    width: 100%;
    overflow-x: auto;
  }
}

.view-flex.program-build-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-build {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-build button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-build button + button {
  margin-left: 0;
}

.program-build__body {
  position: relative;
}

.program-build__skeleton {
  pointer-events: none;
}

.program-build__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-build__skeleton-type-tabs {
  display: block;
  height: 46px;
  width: 340px;
  max-width: 100%;
  margin-bottom: 28px;
  border-radius: 6px;
}

.program-build__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__skeleton-thumb {
  flex: 0 0 auto;
  width: 136px;
  height: 88px;
  border-radius: 6px;
}

.program-build__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-build__skeleton-title {
  height: 36px;
  width: 72%;
  max-width: none;
}

.program-build__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__skeleton-chip {
  flex: 0 0 auto;
  height: 26px;
  max-width: none;
  border-radius: 4px;
}

.program-build__skeleton-chip--type {
  width: 104px;
}

.program-build__skeleton-chip--weeks {
  width: 80px;
}

.program-build__skeleton-chip--frequency {
  width: 116px;
}

.program-build__skeleton-tabs {
  display: block;
  height: 36px;
  width: 265px;
  max-width: 100%;
  margin-bottom: 24px;
  border-radius: 8px;
}

.program-build__skeleton-strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__skeleton-strategy-icon {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.program-build__skeleton-strategy-name {
  height: 20px;
  width: 148px;
  max-width: none;
}

.program-build__skeleton-techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-build__skeleton-technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__skeleton-technique-header {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-technique-title {
  flex: 1 1 auto;
  min-width: 0;
  height: 16px;
  max-width: none;
}

.program-build__skeleton-add-exercise {
  flex: 0 0 auto;
  width: 138px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-kebab {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 6px;
}

.program-build__skeleton-technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-exercise + .program-build__skeleton-exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-reorder {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.program-build__skeleton-exercise-info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.program-build__skeleton-exercise-name {
  height: 14px;
  width: 46%;
  max-width: none;
}

.program-build__skeleton-exercise-name--short {
  width: 34%;
}

.program-build__skeleton-exercise-attributes {
  height: 12px;
  width: 128px;
  max-width: none;
}

.program-build__skeleton-exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__skeleton-exercise-action {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__skeleton-button {
  height: 46px;
  width: 112px;
  max-width: none;
  border-radius: 6px;
}

.program-build__skeleton-button--primary {
  width: 142px;
}

.program-build__type-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 28px;
  border-bottom: 1px solid #e7e7e7;
}

.program-build__type-tab {
  padding: 12px 16px;
  border: 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__type-tab:hover {
  color: #120d1c;
}

.program-build__type-tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-build__type-tab--disabled {
  opacity: 0.4;
  cursor: default;
}

.program-build__type-tab--disabled:hover {
  color: #6d6d6d;
}

.program-build__type-tab-tag {
  margin-left: 4px;
  font-weight: inherit;
  color: inherit;
}

.program-build__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.program-build__identity {
  min-width: 0;
}

.program-build__title {
  margin: 0 0 10px;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  color: #120d1c;
}

.program-build__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 4px;
  background: #f2f2f4;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-build__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-build__session-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.program-build__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-build__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__copy-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.program-build__strategy-group {
  margin-bottom: 32px;
}

.program-build__strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__strategy-icon {
  flex: 0 0 auto;
  font-size: 20px;
  color: #9768eb;
}

.program-build__strategy-image {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__strategy-name {
  font-size: 20px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-build__technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__technique-header {
  position: relative;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__technique-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__add-exercise {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 36px;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-exercise:hover {
  background: #f2edfc;
}

.program-build__menu {
  position: relative;
  flex: 0 0 auto;
}

.program-build__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__kebab:hover {
  background: #f2f2f4;
  color: #120d1c;
}

.program-build__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  min-width: 168px;
  padding: 6px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 20px 0 rgba(16, 24, 40, 0.12);
}

.program-build__menu-list.hidden {
  display: none;
}

.program-build__menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  color: #120d1c;
  cursor: pointer;
}

.program-build__menu-item:hover {
  background: #f2f2f4;
}

.program-build__menu-item--danger {
  color: #c0392b;
}

.program-build__technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__exercise + .program-build__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__reorder {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  width: 20px;
}

.program-build__reorder-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__reorder-button:hover {
  color: #120d1c;
}

.program-build__exercise-info {
  flex: 1 1 auto;
  min-width: 0;
}

.program-build__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-build__exercise-attributes > span + span::before {
  content: '\2022';
  margin-right: 8px;
  color: #e7e7e7;
}

.program-build__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-build__exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__exercise-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-build__exercise-action:hover {
  background: #f2f2f4;
}

.program-build__exercise-action--danger:hover {
  background: #fef3f2;
}

.program-build__exercise-action-icon {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__exercise-action-icon--play {
  width: 16px;
  height: 16px;
}

.program-build__empty {
  padding: 20px;
  font-size: 13px;
  font-style: italic;
  color: #6d6d6d;
}

.program-build__add-section {
  display: block;
  margin-top: 12px;
  margin-left: auto;
  padding: 10px 20px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-section:hover {
  background: #f2edfc;
}

.program-build__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-build__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-build__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 768px) {
  .program-build {
    padding: 20px 16px 40px;
  }

  .program-build__type-tabs,
  .program-build__tabs {
    width: 100%;
    overflow-x: auto;
  }

  .program-build__type-tabs {
    justify-content: center;
    justify-content: safe center;
  }

  .program-build__skeleton-type-tabs {
    margin-left: auto;
    margin-right: auto;
  }

  .program-build__tabs {
    display: flex;
  }

  .program-build__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__thumb {
    width: 100%;
    height: auto;
  }

  .program-build__title {
    font-size: 24px;
  }

  .program-build__technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__technique-title {
    flex: 1 0 100%;
  }

  .program-build__add-exercise {
    flex: 1 1 auto;
    justify-content: center;
  }

  .program-build__exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__skeleton-thumb {
    width: 100%;
    height: 180px;
  }

  .program-build__skeleton-title {
    height: 29px;
  }

  .program-build__skeleton-technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__skeleton-technique-title {
    flex: 1 0 100%;
  }

  .program-build__skeleton-add-exercise {
    flex: 1 1 auto;
    width: auto;
  }

  .program-build__skeleton-exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    gap: 12px;
    padding: 16px 20px;
  }

  .program-build__skeleton-exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__skeleton-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-button {
    width: auto;
  }

  .program-build__skeleton-button--primary {
    width: auto;
  }
}

@media (max-width: 480px) {
  .program-build__type-tab {
    flex: 0 0 auto;
    padding: 12px 8px;
    font-size: 13px;
  }

  .program-build__type-tabs {
    flex-wrap: nowrap;
  }
}

.view-flex.program-schedule-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-schedule {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-schedule--narrow {
  max-width: 688px;
}

.program-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-schedule button + button {
  margin-left: 0;
}

.program-schedule__title {
  margin: 0 0 24px;
  font-family: "Nudista", sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0;
  color: #120d1c;
}

.program-schedule__field {
  margin-bottom: 16px;
}

.program-schedule__label {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #6d6d6d;
}

.program-schedule__date-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-schedule__date {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__date .date-input {
  position: relative;
  box-sizing: border-box;
  width: 320px;
  max-width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-bottom: 0;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
}

.program-schedule__date .date-input input {
  box-sizing: border-box;
  width: 100%;
  height: 38px;
  min-height: 0;
  max-height: none;
  padding: 0 44px 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-family: "Nudista", sans-serif;
  font-size: 15px;
  line-height: 38px;
  text-indent: 0;
  color: #120d1c;
  outline: 0;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 38px;
  min-height: 0;
  max-height: none;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon i {
  display: none;
}

.program-schedule__date.date-disabled .date-input {
  background: #f6f6f7;
}

.program-schedule__date.date-disabled .date-input .input-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3C%2Fsvg%3E");
}

.program-schedule__ends-slot {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 14px;
}

.program-schedule__ends {
  font-size: 12px;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-schedule__skeleton-ends.home-skeleton-block {
  display: inline-block;
  flex: 0 0 auto;
  width: 148px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__skeleton-meta-date {
  flex: 0 0 auto;
  width: 88px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__callout-title {
  margin-bottom: 6px;
  font-size: 16px;
  color: #120d1c;
}

.program-schedule__callout-title strong {
  font-weight: 600;
}

.program-schedule__callout-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__skeleton-callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__skeleton-callout-title {
  display: block;
  width: 58%;
  max-width: 360px;
  height: 16px;
  margin-bottom: 6px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.program-schedule__skeleton-callout-text {
  display: block;
  width: 100%;
  height: 21px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-text--short {
  width: 72%;
}

.program-schedule__prompt {
  margin-bottom: 14px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0;
  color: #32254f;
}

.program-schedule__sessions {
  margin-bottom: 16px;
}

.program-schedule__session-group-label {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #6d6d6d;
}

.program-schedule__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.program-schedule__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 97px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__chip:hover {
  border-color: #c8baee;
}

.program-schedule__chip--active {
  border-color: #533d82;
  background: #533d82;
  color: #ffffff;
}

.program-schedule__chip--active:hover {
  border-color: #533d82;
}

.program-schedule__grid-scroll {
  margin: 16px 0 32px;
  overflow-x: auto;
}

.program-schedule__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  height: 168px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-schedule__grid-day {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.program-schedule__grid-day + .program-schedule__grid-day {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-head {
  padding: 10px 8px;
  box-sizing: border-box;
  border-bottom: 1px solid #e7e7e7;
  background: #d1d1d1;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-day > .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  height: 40px;
  padding: 0 6px;
}

.program-schedule__grid-cell {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  padding: 6px 5px;
  overflow-y: auto;
}

.program-schedule__placed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  height: 28px;
  padding: 0 6px;
  border-radius: 4px;
  background: #f2edfc;
  font-size: 12px;
  font-weight: 600;
  color: #32254f;
}

.program-schedule__placed > span {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__placed-remove {
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  line-height: 1;
  color: #32254f;
  cursor: pointer;
}

.program-schedule__placed-remove:hover {
  color: #120d1c;
}

.program-schedule__add {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  width: 100%;
  height: 28px;
  padding: 0 6px;
  border: 1px dashed #c8baee;
  border-radius: 4px;
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__add > span:last-child {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__add:hover {
  border-color: #9768eb;
  background: #f9f8ff;
}

.program-schedule__add-plus {
  flex: 0 0 auto;
  font-size: 13px;
  line-height: 1;
}

.program-schedule__meta-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 14px;
  line-height: 1;
}

.program-schedule__meta-date {
  font-weight: 500;
  color: #120d1c;
}

.program-schedule__meta-sep {
  color: #c4c4c8;
}

.program-schedule__meta-ends {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  padding: 4px;
  margin: -4px 0;
  border: 0;
  background: transparent;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__edit:hover {
  color: #855ad4;
}

.program-schedule__section-title {
  margin-top: 16px;
  margin-bottom: 4px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  color: #120d1c;
}

.program-schedule__section-help {
  margin: 0 0 20px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__review {
  display: grid;
  grid-template-columns: 370px 246px;
  gap: 24px;
  margin: 16px 0 32px;
}

.program-schedule__calendar-scroll {
  min-width: 0;
  overflow-x: auto;
}

.program-schedule__calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 370px;
  max-width: 100%;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.program-schedule__calendar .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 13px;
  padding: 0 2px;
  font-size: 11px;
  line-height: 1;
}

.program-schedule__calendar .program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 0;
}

.program-schedule__calendar-cell {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  min-height: 58px;
  padding: 6px 4px;
  border-top: 1px solid #e7e7e7;
  border-left: 1px solid #e7e7e7;
  cursor: pointer;
}

.program-schedule__calendar-cell:nth-child(7n + 1) {
  border-left: 0;
}

.program-schedule__calendar-cell:hover {
  background: #f9f8ff;
}

.program-schedule__calendar-cell--outside {
  background: #f6f6f7;
  cursor: default;
}

.program-schedule__calendar-cell--outside:hover {
  background: #f6f6f7;
}

.program-schedule__calendar-day {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__calendar-cell--outside .program-schedule__calendar-day {
  color: #b0b0b0;
}

.program-schedule__calendar-month {
  display: block;
  margin-left: 0;
}

.program-schedule__calendar-cell--selected {
  box-shadow: inset 0 -2px 0 0 #9768eb;
}

.program-schedule__dots {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 6px;
}

.program-schedule__dot {
  display: block;
  box-sizing: border-box;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #9768eb;
}

.program-schedule__dot--other {
  background: #b0b0b0;
}

.program-schedule__dot--done {
  border: 1px solid #9768eb;
  background: transparent;
}

.program-schedule__dot--other.program-schedule__dot--done {
  border-color: #b0b0b0;
}

.program-schedule__day-panel {
  min-width: 0;
}

.program-schedule__day-panel-date {
  margin-bottom: 12px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-panel-label {
  margin: 16px 0 8px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-card {
  position: relative;
  margin-bottom: 12px;
  padding: 14px 36px 14px 16px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-schedule__day-card--other {
  background: #e7e7e7;
  border-color: #d1d1d1;
  box-shadow: none;
}

.program-schedule__day-card--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__day-card-remove {
  position: absolute;
  top: 10px;
  right: 10px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 16px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-schedule__day-card-remove:hover {
  color: #120d1c;
}

.program-schedule__day-card-title {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-schedule__day-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 14px;
  overflow: hidden;
  font-size: 13px;
  color: #6d6d6d;
}

.program-schedule__day-card-type {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 5px;
  white-space: nowrap;
}

.program-schedule__day-card-type::before {
  content: "\2022";
  position: absolute;
  top: 50%;
  right: calc(100% + 5px);
  transform: translateY(-50%);
  line-height: 1;
  color: #c4c4c8;
}

.program-schedule__day-card-icon {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__day-card-done {
  color: #b0b0b0;
}

@media (max-width: 768px) {
  .program-schedule__review {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .program-schedule__day-panel {
    max-width: 420px;
  }
}

.program-schedule__error {
  margin-bottom: 16px;
  padding: 10px 14px;
  border-radius: 6px;
  background: #fdecec;
  font-size: 14px;
  color: #f04438;
}

.program-schedule__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  gap: 16px;
}

.program-schedule__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: 8px;
  height: 48px;
  padding: 0 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__button--primary {
  width: 143px;
  padding: 0 16px;
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-schedule__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.program-schedule__button--wide {
  width: 175px;
}

@media (max-width: 768px) {
  .program-schedule__grid-scroll {
    overflow-x: visible;
  }

  .program-schedule__grid {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    height: auto;
  }

  .program-schedule__grid-day {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
  }

  .program-schedule__grid-day + .program-schedule__grid-day {
    border-left: 0;
    border-top: 1px solid #e7e7e7;
  }

  .program-schedule__grid-day > .program-schedule__grid-head {
    display: block;
    flex: 0 0 48px;
    height: auto;
    padding: 0;
    border-bottom: 0;
    background: transparent;
    font-weight: 600;
    text-align: left;
    color: #120d1c;
  }

  .program-schedule__grid-cell {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    overflow-y: visible;
    min-width: 0;
    min-height: 0;
    padding: 0;
  }

  .program-schedule__add {
    width: auto;
  }

  .program-schedule__calendar-scroll {
    overflow-x: visible;
  }
}

@media (max-width: 640px) {
  .program-schedule {
    padding: 20px 16px 40px;
  }

  .program-schedule__title {
    font-size: 24px;
  }

  .program-schedule__date-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

.main-view:has(.today-session) > .menu-content {
  display: none;
}

.main-view > div:has(.today-session),
.main-view > div > div:has(> .today-session) {
  flex: 0 0 auto;
  min-width: 0;
}

.today-session {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex: 0 0 auto;
  height: 48px;
  background: #ffffff;
  border-bottom: 1px solid #e7e7e7;
  font-family: 'Nudista', sans-serif;
}

.today-session__tabs {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.today-session__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-right: 1px solid #e1e1e6;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  font-family: 'Nudista', sans-serif;
}

.today-session__tab:hover {
  background: #fbfafd;
}

.today-session__tab--active {
  border-bottom-color: #9768eb;
  background: #f2edfc;
}

.today-session__tab--active:hover {
  background: #f2edfc;
}

.today-session__tab--active .today-session__badge:not(.today-session__badge--done) {
  background: #9768eb;
  color: #ffffff;
}

.today-session__tab--active .today-session__tab-label {
  color: #32254f;
}

.today-session__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #000000;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-session__tab-label {
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-session__tab--complete .today-session__tab-label {
  color: #6d6d6d;
}

.today-session__exit {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  color: #6d6d6d;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__exit:hover {
  color: #000000;
  background: transparent;
}

.today-session__exit-icon {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
}

.today-session__exit-label {
  position: relative;
  top: 1px;
}

.today-session__tip {
  position: absolute;
  top: calc(100% + 10px);
  left: 24px;
  z-index: 880;
  width: 320px;
  max-width: calc(100vw - 48px);
  padding: 20px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.16);
}

.today-session__tip:before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 24px;
  border: 8px solid transparent;
  border-bottom-color: #ffffff;
  border-top-width: 0;
}

.today-session__tip-title {
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  color: #000000;
}

.today-session__tip-body {
  margin-bottom: 20px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.today-session__tip-btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 10px 20px;
  height: auto;
  border: 0;
  border-radius: 6px;
  background: #9768eb;
  box-shadow: none;
  cursor: pointer;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__tip-btn:hover {
  background: #855ad4;
}

@media (max-width: 900px) {
  .today-session__tab,
  .today-session__exit {
    padding: 0 16px;
  }
}

@media (max-width: 768px) {
  .today-session__tabs {
    padding-left: 8px;
  }

  .today-session__tab {
    gap: 8px;
    padding: 0 14px;
  }

  .today-session__exit {
    padding: 0 14px;
  }

  .today-session__exit-label {
    display: none;
  }

  .today-session__tip {
    left: 16px;
    width: auto;
    right: 16px;
    max-width: none;
  }
}

.today-exit {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 528px;
  max-width: calc(100vw - 32px);
  padding: 32px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.today-exit__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.today-exit__close:hover {
  background: transparent;
  color: #000000;
}

.today-exit__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-exit__body {
  width: 464px;
  max-width: 100%;
  margin: 24px 0 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  color: #4f4f4f;
}

.today-exit__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 40px;
}

.today-exit__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
}

.today-exit__btn--ghost {
  gap: 10px;
  min-height: 48px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  color: #000000;
}

.today-exit__btn--ghost:hover {
  background-color: #f7f7f8;
}

.today-exit__btn--primary {
  gap: 12px;
  height: 48px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.today-exit__btn--primary:hover {
  background-color: #855ad4;
}

@media (max-width: 480px) {
  .today-exit {
    padding: 20px;
  }

  .today-exit__close {
    top: 16px;
    right: 16px;
  }

  .today-exit__actions {
    flex-wrap: wrap;
    margin-top: 28px;
  }
}

.view-flex.rr-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.rr-test {
  font-family: 'Nudista', sans-serif;
}

.rr-test button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.rr-test button + button {
  margin-left: 0;
}

.rr-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.rr-test__title {
  margin: 0 0 32px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.rr-test__steps {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  margin-bottom: 36px;
}

.rr-test__step {
  flex: 1 1 0;
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #e0e0e0;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #b0b0b0;
}

.rr-test__step--reached {
  border-bottom-color: #9768eb;
  color: #120d1c;
}

.rr-test__step--current {
  font-weight: 600;
}

.rr-test__section {
  margin-bottom: 36px;
}

.rr-test__section-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.rr-test__question + .rr-test__question {
  margin-top: 28px;
}

.rr-test__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 44px;
}

.rr-test__footer--single .rr-test__button {
  flex: 1 1 auto;
}

.rr-test__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 28px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
}

.rr-test__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.rr-test__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.rr-test__button[disabled],
.rr-test__button[disabled]:hover {
  border-color: #c5b8f0;
  background: #c5b8f0;
  color: #ffffff;
  cursor: default;
}

.rr-test__button-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .rr-test__page {
    padding: 32px 20px 48px;
  }

  .rr-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .rr-test__step {
    font-size: 14px;
  }

  .rr-test__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .rr-test__button {
    width: 100%;
  }
}

.rr-option-group__prompt {
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.rr-option-group__hint {
  margin-left: 6px;
  font-weight: 400;
  color: #6d6d6d;
}

.rr-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 6px 0;
  font-weight: 400;
  cursor: pointer;
}

.rr-option--inline {
  display: inline-flex;
  padding: 0;
}

.rr-option--disabled {
  cursor: default;
}

.rr-option--disabled .rr-option__check {
  border-color: #d1d1d1;
}

.rr-option--disabled .rr-option__radio {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__text {
  color: #b0b0b0;
}

.rr-option__text {
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
}

.rr-option__radio {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;
}

.rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option__check {
  flex: 0 0 auto;
  position: relative;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 2px solid #9768eb;
  border-radius: 5px;
  background: #ffffff;
}

.rr-option__check--checked {
  background: #9768eb;
}

.rr-option__check--checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 6px;
  width: 4px;
  height: 9px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.rr-sleep {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rr-time__label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 400;
  line-height: 18px;
  color: #6d6d6d;
}

.rr-time__row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rr-time__select {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
}

.rr-time__select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  width: 100%;
  height: 44px;
  padding: 0 36px 0 14px;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
  outline: none;
}

.rr-time__select select:focus {
  border-color: #9768eb;
}

.rr-time__select::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 14px;
  width: 12px;
  height: 8px;
  margin-top: -4px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%228%22 viewBox%3D%220 0 12 8%22 fill%3D%22none%22%3E%3Cpath d%3D%22M1 1.5L6 6.5L11 1.5%22 stroke%3D%22%236D6D6D%22 stroke-width%3D%221.5%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  pointer-events: none;
}

.rr-time__meridiem {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 16px;
}

@media (max-width: 480px) {
  .rr-time__row {
    flex-wrap: wrap;
  }

  .rr-time__meridiem {
    flex: 1 0 100%;
  }
}

.view-flex.r5-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #ffffff;
}

.r5-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.r5-test__title {
  margin: 0 0 32px;
  font-family: 'Nudista', sans-serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 36px;
  color: #120d1c;
}

.r5-test__question + .r5-test__question {
  margin-top: 40px;
}

.r5-test field-set-select {
  display: block;
}

.r5-test__question-title {
  margin: 0 0 11px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.r5-test__question-title span {
  color: #9768EB;
}

.r5-test .r5-test__question--bodymap {
  margin-top: 64px;
}

.r5-test .r5-body-wrapper table {
  margin-left: auto;
  margin-right: auto;
}

.r5-test__footer {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

.r5-test__footer button {
  text-transform: none;
  letter-spacing: 0;
  font-size: 16px;
}

.r5-test__footer button.primary {
  font-weight: 600;
}

@media (max-width: 768px) {
  .r5-test__page {
    padding: 32px 20px 48px;
  }

  .r5-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .r5-test__footer button {
    width: 100%;
  }
}

.view-flex.daily-results-page {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.view-flex.daily-results-page > .container {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.daily-results {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.daily-results button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-results button + button {
  margin-left: 0;
}

.daily-results__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.daily-results__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.daily-results__title {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.daily-results__score-label {
  margin-bottom: 36px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__gauge {
  margin-bottom: 44px;
}

.daily-results__gauge svg {
  width: 114px;
  height: 114px;
}

.daily-results__gauge .outline,
.daily-results__gauge .progress {
  stroke-width: 10;
}

.daily-results__gauge .text {
  font-size: 63px;
  font-weight: 600;
  fill: #000000;
}

.daily-results__card {
  padding: 20px;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.daily-results__banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border-radius: 8px;
  background: #f9f8ff;
}

.daily-results__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.daily-results__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.daily-results__trends-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 24px 0 12px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__trends-dot {
  color: #b0b0b0;
}

.daily-results__columns {
  display: flex;
  align-items: flex-start;
}

.daily-results__columns .daily-results__column + .daily-results__column {
  border-left: 1px solid #f0f0f0;
}

.daily-results__columns--flat {
  margin-top: 24px;
}

.daily-results__columns--single {
  justify-content: center;
  text-align: center;
}

.daily-results__columns--single .daily-results__column {
  flex: 0 1 240px;
  max-width: 100%;
  padding: 0;
}

.daily-results__columns--single .daily-results__column-value {
  justify-content: center;
}

.daily-results__column {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 16px;
}

.daily-results__column:first-child {
  padding-left: 0;
}

.daily-results__column:last-child {
  padding-right: 0;
}

.daily-results__column-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__column-value {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.daily-results__column-score {
  font-size: 30px;
  font-weight: 400;
  line-height: 38px;
  color: #120d1c;
}

.daily-results__spark {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 44px;
  margin-top: 8px;
}

.daily-results__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.daily-results__change--up {
  color: #20b769;
}

.daily-results__change--down {
  color: #c42a3b;
}

.daily-results__trend-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.daily-results__notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  font-size: 14px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__soreness {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__soreness-label {
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__bodymap table {
  margin: 0 auto;
  border: 0;
  background: none;
}

.daily-results__bodymap table td {
  padding: 0 12px;
  border: 0;
  background: none;
  vertical-align: top;
}

.daily-results__bodymap-figure {
  max-width: 128px;
  max-height: 272px;
}

.daily-results__disclosure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-results__disclosure:hover {
  color: #855ad4;
}

.daily-results__chevron {
  font-size: 12px;
}

.daily-results__changes {
  margin-top: 4px;
  padding-top: 20px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__changes-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__change-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: #fafafa;
}

.daily-results__change-row + .daily-results__change-row {
  border-top: 1px solid #f0f0f0;
}

.daily-results__change-row:first-child {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

.daily-results__change-row:last-child {
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

.daily-results__change-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.daily-results__change-detail {
  flex: 0 1 auto;
  font-size: 14px;
  line-height: 20px;
  text-align: right;
  color: #6d6d6d;
}

.daily-results__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.daily-results__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.daily-results__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .daily-results {
    padding: 32px 20px 48px;
  }

  .daily-results__title {
    font-size: 24px;
    line-height: 30px;
  }

  .daily-results__columns {
    flex-direction: column;
    gap: 16px;
  }

  .daily-results__column {
    padding: 0;
  }

  .daily-results__columns .daily-results__column + .daily-results__column {
    border-left: 0;
    border-top: 1px solid #f0f0f0;
    padding-top: 16px;
  }

  .daily-results__cta {
    width: 100%;
  }
}

.view-layout > div:has(> .session-complete) {
  flex: 1 1 auto;
  min-width: 0;
}

.session-complete {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.session-complete button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.session-complete__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.session-complete__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.session-complete__title {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.session-complete__streak {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 36px;
  font-size: 48px;
  font-weight: 600;
  line-height: 56px;
  color: #000000;
}

.session-complete__streak-flame {
  flex: 0 0 auto;
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.session-complete__card {
  height: 243px;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.session-complete__banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f9f8ff;
  color: #9768eb;
}

.session-complete__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
}

.session-complete__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  color: #120d1c;
}

.session-complete__progress {
  margin-top: 20px;
}

.session-complete__progress-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.session-complete__progress-week {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.session-complete__progress-count {
  margin-left: auto;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__bar {
  overflow: hidden;
  height: 8px;
  border-radius: 4px;
  background: #e9ecef;
}

.session-complete__bar-fill {
  height: 100%;
  border-radius: 4px;
  background: #20b769;
  transition: width 0.3s ease;
}

.session-complete__stats {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.session-complete__stat {
  flex: 1 1 0;
  min-width: 0;
  height: 77px;
  padding: 12px 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f6f6f6;
}

.session-complete__stat-label {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  color: #000000;
}

.session-complete__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.session-complete__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.session-complete__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .session-complete {
    padding: 32px 20px 48px;
  }

  .session-complete__streak {
    gap: 12px;
    font-size: 34px;
    line-height: 42px;
  }

  .session-complete__streak-flame {
    width: 36px;
    height: 36px;
  }

  .session-complete__card {
    height: auto;
  }

  .session-complete__banner {
    height: auto;
    padding: 12px 16px;
  }

  .session-complete__stats {
    flex-direction: column;
  }

  .session-complete__stat {
    height: auto;
  }

  .session-complete__cta {
    width: 100%;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL3Nhc3MvZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYmFzZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9fZGVzaWduX3Rva2Vucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbG9hZGluZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9tZW51LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fZGFzaGJvYXJkX2xpc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYXNoYm9hcmRfZ3JpZC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZmlsZV9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYXRobGV0ZV9zaWRlYmFyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfd2VsY29tZV9oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3Jlc3NfaW5zaWdodHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdG9kYXlfYXNrcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19teV9zY2hlZHVsZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19ob21lX3NrZWxldG9uLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3VwY29taW5nX3Nlc3Npb24uc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYm9keW1hcF9jYXJkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfdXBjb21pbmdfY2FuY2VsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfcHJvZmlsZV9wYWdlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fY2F0YWxvZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX3doaXRlYm9hcmQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYWxlbmRhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2NoYXJ0aW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbm90ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190b29sdGlwLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdXBsb2FkaW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2V4ZXJjaXNlX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYXRhbG9nX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19sb2dpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3Byb2ZpbGVfZm9ybS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19tb2RhbF9hdGhsZXRlX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfc2VsZWN0X2F0aGxldGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdGVybXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW5fbWFpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jbGluaWNhbF9yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0cy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3BlcmZvcm1fdGVzdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnRfdGFicy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19kZXRhaWxzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfZGV0YWlscy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyZXNzX3N1bW1hcnkuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19vdmVydmlldy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfY29tcGxldGlvbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NlbGVjdF9waWxsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2RhdGVfcmFuZ2Vfc2VsZWN0LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Rlc3RfYXJjaGl2ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYWxlbmRhcnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2FkbWluMl9taXNjLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19hZG1pbjJfc2lkZWJhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGluczIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW4yX3RhYmxlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZWFtLXRsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19yZXBvcnRzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Fzc2Vzc21lbnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYXJkcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2NhdGFsb2dfcGFnZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2RldGFpbC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV9wcm9ncmFtLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fc3VtbWFyeS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NjaGVkdWxlX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3RvZGF5X3Nlc3Npb25faGVhZGVyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3JyX2RhaWx5X3Rlc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcjVfZGFpbHlfdGVzdC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV90ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fc2Vzc2lvbl9jb21wbGV0ZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Jhc2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9sb2FkaW5nXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9tZW51XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9kYXNoYm9hcmRfbGlzdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFzaGJvYXJkX2dyaWRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9hdGhsZXRlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9maWxlX2F0aGxldGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2F0aGxldGVfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV93ZWxjb21lX2hlYWRlclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfaW5zaWdodHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RvZGF5X2Fza3NcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL215X3NjaGVkdWxlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ob21lX3NrZWxldG9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS91cGNvbWluZ19zZXNzaW9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ib2R5bWFwX2NhcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX2NhbmNlbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV9wcm9maWxlX3BhZ2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9lZGl0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX3doaXRlYm9hcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhbGVuZGFyXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9jaGFydGluZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbm90ZXNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3VwbG9hZGluZ1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9leGVyY2lzZV9uYXZcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhdGFsb2dfbmF2XCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2xvZ2luXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9tb2RhbF9wcm9maWxlX2Zvcm1cIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX2F0aGxldGVfZWRpdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbW9kYWxfc2VsZWN0X2F0aGxldGVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXJtc1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbl9tYWluXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X3Jlc3VsdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NsaW5pY2FsX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3BlcmZvcm1fdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfcmVwb3J0X3RhYnNcIjtcbi8vIEFmdGVyIHByb2dyZXNzX3JlcG9ydDogX3Byb2dyZXNzX2RldGFpbHMuc2NzcyB1c2VzIGl0cyBAbWl4aW4gY2hhbmdlLWluZGljYXRvci5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX2RldGFpbHNcIjtcbi8vIEl0cyBQcm9ncmFtcy10YWIgc2libGluZzsgc2hhcmVzIHRoZSBjYXJkIHNoZWxsLCBzZWUgdGhhdCBmaWxlJ3MgaGVhZGVyLlxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfZGV0YWlsc1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfc3VtbWFyeVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfb3ZlcnZpZXdcIjtcbi8vIFRoZSBQcm9ncmFtcyB0YWIncyB0d28gY2FyZHMsIHdoaWNoIHJlcGxhY2VkIHRoYXQgT3ZlcnZpZXcgY2FyZCdzIFByb2dyYW1zXG4vLyBicmFuY2guIHByb2dyYW1zX292ZXJ2aWV3IGRlY2xhcmVzIC5wcm9ncmFtcy1vdmVydmlldy1yb3csIHRoZSBmbGV4IHJvdyB0aGF0XG4vLyBob2xkcyBib3RoLCBzbyBpdCBoYXMgdG8gY29tZSBiZWZvcmUgaXRzIHNpYmxpbmcuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtc19vdmVydmlld1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfY29tcGxldGlvblwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2VsZWN0X3BpbGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhdGVfcmFuZ2Vfc2VsZWN0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X2FyY2hpdmVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9oZWFkZXJcIjtcblxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcmVzcG9uc2l2ZW5lc3NfdHdlYWtzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FsZW5kYXJzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2FkbWluMl9taXNjXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbjJfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYWRtaW4yX3RhYmxlXCI7XG5cblxuLy8gdGhpcyBpcyBuZXcuLi5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RlYW0tdGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JlcG9ydHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Fzc2Vzc21lbnRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FyZHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ19wYWdlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2RldGFpbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFpbHlfcHJvZ3JhbVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9zdW1tYXJ5XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2J1aWxkXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9zY2hlZHVsZV9idWlsZFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdG9kYXlfc2Vzc2lvbl9oZWFkZXJcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JyX2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3I1X2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhaWx5X3Rlc3RfcmVzdWx0c1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2Vzc2lvbl9jb21wbGV0ZVwiOyIsIi8vIGRlc2lnbl90b2tlbnMgaG9sZHMgdGhlIHBhbGV0dGUgc2hhcmVkIHdpdGggdGhlIHNpYmxpbmcgYXBwIHJlcG8ncyB0YWlsd2luZFxuLy8gY29uZmlnLiBJdCBjb21lcyBmaXJzdCBzbyBldmVyeSBsYXRlciBwYXJ0aWFsIGluIHRoaXMgYnVuZGxlIGNhbiB1c2UgaXQ7XG4vLyB2YXJpYWJsZXMga2VlcHMgdGhlIG9sZGVyIGJyYW5kIG5hbWVzICgkYmx1ZS8kcmVkLyRncmVlbikgdGhhdCBwcmVkYXRlIGl0LlxuQGltcG9ydCBcIi4uL2Rlc2lnbl90b2tlbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGluaGVyaXQpO1xuICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcbn1cblxuaHRtbCB7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJi5kYXJrcm9vbTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNyk7XG4gIH1cblxuICAuZGFya3Jvb20tYmFubmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICA+IC5iYW5uZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjgwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAmW3R5cGU9J3RleHQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICZbdHlwZT0ncGFzc3dvcmQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICYucmVxdWlyZWQge1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICB9XG59XG5cbmJ1dHRvbiB7XG4gIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNnB4KTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG4gIGNvbG9yOiAkYmx1ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICYuc2hvcnQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICB9XG5cbiAgJi5zbWFsbCB7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xuICB9XG5cbiAgJi5tZWRpdW0ge1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTUwcHgpO1xuICB9XG5cbiAgJi5wcmltYXJ5LCAmLmJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gIFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJi5yZXN1bWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNEMTQwNEI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuYnV0dG9uICsgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLy8gaU9TIFNhZmFyaSBhdXRvLXpvb21zIHRoZSBwYWdlIHdoZW5ldmVyIGEgZm9jdXNlZCBmb3JtIGNvbnRyb2wgaXMgdW5kZXIgMTZweCxcbi8vIGFuZCBodG1se2ZvbnQtc2l6ZToxM3B4fSBhYm92ZSBwdXRzIGV2ZXJ5IHVuc3R5bGVkIGNvbnRyb2wgYmVsb3cgdGhhdC4gU2NvcGVkXG4vLyB0byBtb2JpbGUgcmF0aGVyIHRoYW4gcmFpc2luZyB0aGUgcm9vdCBzaXplLCB3aGljaCB0aGUgd2hvbGUgYXBwIGlzIHNpemVkIG9mZi5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmlucHV0LWNoZWNrYm94IHtcbiAgY29sb3I6ICRibHVlO1xuICBmb250LXNpemU6IDIwcHg7XG5cbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjZGNkY2Q7XG4gIH1cbn1cblxuLmZvb3Rlci1jb250ZW50IHtcbiAgLypcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAqL1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMUUxRTY7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGNvbG9yOiAjMzIyNTRGO1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzk3NjhFQjtcbiAgfVxufVxuXG5bbmdcXDpjbG9ha10sIFtuZy1jbG9ha10sIC5uZy1jbG9hayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoaW5pdGlhbCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDkwcHgpO1xuXG4gIC5sb2dvIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg5MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE0MHB4KTtcbiAgfVxuXG4gIC53aGl0ZS1maWVsZCB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuXG4gICAgaS5pY29uLXNob3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICBtYXJnaW46IDBweCAzMHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1hcmdpbjogLTFweCA4cHggMHB4IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkZGFya19ibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50LWF0aGxldGUge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG5cbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuICsgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDdweCAwIDI1cHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCAyNXB4IDAgN3B4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIGkuZmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1jb250ZW50IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICYucmVzcC1tZW51IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmJvZHktY29udGVudCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnJlZC1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogI2M0MmEzYjsgIH1cbi55ZWxsb3ctYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7IH1cbi5ncmVlbi1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogIzIwYjc2OTsgfVxuLmJsdWUtdGV4dCB7IGNvbG9yOiAjOTc2OEVCOyB9XG4ucmVkLXRleHQgeyBjb2xvcjogI2M0MmEzYjsgfVxuLmdyZXktdGV4dCB7IGNvbG9yOiAjODA4MDgwOyB9XG4ubGlnaHQtZ3JleS10ZXh0IHsgY29sb3I6ICNhN2E3YTc7IH1cbi55ZWxsb3ctdGV4dCB7IGNvbG9yOiAjZGZjMDNmOyB9XG4uZ3JlZW4tdGV4dCB7IGNvbG9yOiAjMjBiNzY5OyB9XG5cbi53aGl0ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyZXliZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG59XG5cbi5kcmtncmV5Ymcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xufVxuXG4uYmx1ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NjhFQjtcbn1cblxuLm1haW4tdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4udmlldy1mbGV4IHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG59XG5cbi52aWV3LXN0YXRpYyB7XG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xufVxuXG4udmlldy1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctc3RhY2sge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDI0cHgpO1xuXG4gICYuY2VudGVyZWQgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG4gICYubWlkZGxlIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7IH1cblxuICAmLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAmLmNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4uY29sdW1uLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG5cbiAgJi5mdWxsIHsgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7IH1cbiAgJi50b3AgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpOyB9XG4gICYuYm90dG9tIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7IH1cbiAgJi5jZW50ZXIgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5taWRkbGUgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyB9XG4gICYuZGl2aWRlZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pOyB9XG4gICYuc3BhY2VkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYXJvdW5kKTsgfVxuICAmLnN0YXJ0IHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG59XG5cbi5yb3ctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcblxuICAmLmZ1bGwgeyBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTsgfVxuICAmLnRvcCB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7IH1cbiAgJi5ib3R0b20geyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTsgfVxuICAmLmNlbnRlciB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTsgfVxuICAmLm1pZGRsZSB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5zcGFjZWQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpOyB9XG4gICYuc3RhcnQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTsgfVxuICAmLmVuZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTsgfVxuICAmLndyYXAgeyBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7IH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHJhbmdlIGlucHV0IGF0dGVtcHRcbmlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzk3NjhFQiksIGNvbG9yLXN0b3AoMCwgI2U4ZThlOCkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I0YjRiNDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1vdXRlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbXMtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDE2cHggMDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotbXMtdGh1bWIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tcy10b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5NzY4RUI7XG4gICAgYm9yZGVyOiAwLjJweCBzb2xpZCAjOTc2OEVCO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGJvcmRlcjogMC4ycHggc29saWQgI2U4ZThlODtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIH1cblxuICAmOmZvY3VzOjotbXMtZmlsbC1sb3dlciB7XG4gICAgYmFja2dyb3VuZDogIzk3NjhFQjtcbiAgfVxuXG4gICY6Zm9jdXM6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICB9XG59XG5cbi5wcm9ncmFtLWV4ZXJjaXNlLmRhaWx5LWV4ZXJjaXNlIHtcbiAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAyMHB4O1xuICBnYXA6IDEwcHg7XG4gIC5kYWlseS1leGVyY2lzZS1hY3Rpb25zIHtcbiAgICBtaW4td2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogNTRweCAhaW1wb3J0YW50O1xuICB9XG4gIC5pbmZvIC5hdHRyaWJ1dGVzIHtcbiAgICBnYXA6IDEwcHg7XG4gICAgPiBkaXYge1xuICAgICAgbWFyZ2luOiAwIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlc2lnbiB0b2tlbnMg4oCUIGdlbmVyYXRlZCBmcm9tIC4uLy4uL2FwcC90YWlsd2luZC5jb25maWcuanMgKHRoZW1lLmV4dGVuZCkuXG4vL1xuLy8gVGhhdCB0YWlsd2luZCBjb25maWcgaXMgdGhlIGNhbm9uaWNhbCBkZXNpZ24gc3lzdGVtLCBzaGFyZWQgd2l0aCB0aGUgc2libGluZ1xuLy8gQW5ndWxhciBhcHAuIERvIG5vdCBjaGFuZ2UgdmFsdWVzIGhlcmU6IGNoYW5nZSB0aGVtIHRoZXJlIGFuZCByZWdlbmVyYXRlLCBzb1xuLy8gYm90aCBmcm9udC1lbmRzIHN0YXkgaW4gc3RlcC5cbi8vXG4vLyBPbmx5IHRoZSB0b2tlbnMgdGhpcyByZXBvIGFjdHVhbGx5IHVzZXMgYXJlIGxpc3RlZC4gQm90aCBTQ1NTIGJ1bmRsZXMgaW1wb3J0XG4vLyB0aGlzIGZpbGUgKHNhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Jhc2Uuc2NzcyBhbmQgZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnNcbi8vIC5zY3NzKSwgc28gZXZlcnkgcGFydGlhbCBpbiBlaXRoZXIgYnVuZGxlIGhhcyB0aGVzZSBpbiBzY29wZS5cbi8vXG4vLyBCZWZvcmUgdGhpcyBmaWxlIGV4aXN0ZWQsIHRoZSByZWRlc2lnbiBoYW5kLWNvcGllZCB0aGVzZSB2YWx1ZXMgaW50byBhXG4vLyBwcml2YXRlICR2YXJpYWJsZSBibG9jayBwZXIgZmlsZSDigJQgMjM5IGRlY2xhcmF0aW9ucyBhY3Jvc3MgMjggZmlsZXNcbi8vIHJlLWRlcml2aW5nIHRoZSBzYW1lIH4yMCBjb2xvcnMsIHdpdGggJHB1cnBsZS01MDAgYWxvbmUgcmVkZWNsYXJlZCAyOCB0aW1lc1xuLy8gdW5kZXIgMjggZGlmZmVyZW50IG5hbWVzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFB1cnBsZSDigJQgYnJhbmRcbiRwdXJwbGUtNTA6ICAgI2Y5ZjhmZjtcbiRwdXJwbGUtMTAwOiAgI2YyZWRmYztcbiRwdXJwbGUtMjAwOiAgI2UwZDVmNTtcbiRwdXJwbGUtMzAwOiAgI2M4YmFlZTtcbiRwdXJwbGUtNTAwOiAgIzk3NjhlYjtcbiRwdXJwbGUtNjAwOiAgIzczNTViNTtcbiRwdXJwbGUtNzAwOiAgIzUzM2Q4MjtcbiRwdXJwbGUtOTAwOiAgIzMyMjU0ZjtcblxuLy8gTmV1dHJhbHNcbiRibGFjay0xMDA6ICAgI2Y2ZjZmNjtcbiRibGFjay0yMDA6ICAgI2U3ZTdlNztcbiRibGFjay0zMDA6ICAgI2QxZDFkMTtcbiRibGFjay00MDA6ICAgI2IwYjBiMDtcbiRibGFjay01MDA6ICAgIzlkOWQ5ZDtcbiRibGFjay02MDA6ICAgIzZkNmQ2ZDtcbiRibGFjay03MDA6ICAgIzRmNGY0ZjtcbiRibGFjay04MDA6ICAgIzEyMGQxYztcbiRibGFjay05MDA6ICAgIzAwMDAwMDtcbiRidG4tYm9yZGVyOiAgI2IwYjBiMDsgIC8vIHRhaWx3aW5kIGFsaWFzIG9mIGJsYWNrLTQwMCwga2VwdCBmb3IgaW50ZW50IGF0IHVzZSBzaXRlc1xuJG11dGVkOiAgICAgICAjODg4ODg4O1xuJHBhZ2UtYmc6ICAgICAjZjZmNmY3O1xuJHJvdy1ob3ZlcjogICAjZmFmYWZhO1xuXG4vLyBTdGF0dXNcbi8vXG4vLyBOT1RFOiBuYW1lZCAtNTAwIHJhdGhlciB0aGFuICRncmVlbi8kcmVkIGJlY2F1c2UgdGhvc2UgdHdvIG5hbWVzIGFyZSBhbHJlYWR5XG4vLyB0YWtlbiwgaW4gQk9USCBidW5kbGVzJyBfdmFyaWFibGVzLnNjc3MsIGJ5IHRoZSBvbGRlciBicmFuZCBwYWxldHRlIHdpdGhcbi8vIERJRkZFUkVOVCB2YWx1ZXMgKCRncmVlbiAjMjBiNzY5LCAkcmVkICNjNDJhM2IpLiBUaGUgcmVkZXNpZ24gdXNlcyBib3RoIHNldHMuXG4vLyBSZWNvbmNpbGluZyB0aGF0IGRyaWZ0IGlzIGEgZGVzaWduIGRlY2lzaW9uLCBub3QgYSByZWZhY3RvciDigJQgc2VlIGJlbG93LlxuJGdyZWVuLTUwMDogICAjMTJiNzZhO1xuJGdyZWVuLTUwOiAgICAjZWJmYmYzO1xuJHJlZC01MDA6ICAgICAjZjA0NDM4O1xuJHJlZC02MDA6ICAgICAjZDkyZDIwO1xuJGFtYmVyOiAgICAgICAjZDY4YjAwO1xuJGFtYmVyLTUwOiAgICAjZmZmN2U0O1xuJGFtYmVyLTEwMDogICAjZmRlOGJlO1xuXG4vLyBHcmV5cyAodGhlIG5ld2VyIGdyYXktKiByYW1wLCB1c2VkIGJ5IHBvcnRlZCBhcHAtcmVwbyBjb21wb25lbnRzKVxuJGdyYXktMjAwOiAgICAjZWFlY2YwO1xuJGdyYXktNTAwOiAgICAjNjY3MDg1O1xuJGdyYXktNzAwOiAgICAjMzQ0MDU0O1xuJGdyYXktOTAwOiAgICAjMTAxODI4O1xuXG4vLyBDaHJvbWUgLyBzdXJmYWNlc1xuJGhlYWRlci1iZzogICAgICAjMWExYTJlO1xuJHNpZGViYXItdGl0bGU6ICAjMzUzNTRiO1xuJHJvb20tc3VyZmFjZTogICAjMzUzNTRiOyAgLy8gdGFpbHdpbmQgYWxpYXMgb2Ygc2lkZWJhci10aXRsZSAoZGFyay10aGVtZSBuYW1pbmcpXG4kcm9vbS1tdXRlZDogICAgICNlMWUxZTY7XG4kdG9vbHRpcDogICAgICAgICMxYzFiM2E7XG5cbi8vIEVsZXZhdGlvblxuLy8gU3BlbGxlZCBleGFjdGx5IGFzIHRoZSAxMyBleGlzdGluZyBoYW5kLXdyaXR0ZW4gY29waWVzIHdlcmUsIHNvIHN1YnN0aXR1dGluZ1xuLy8gdGhlIHRva2VuIGxlYXZlcyBjb21waWxlZCBDU1MgYnl0ZS1pZGVudGljYWwuXG4kc2hhZG93LWNhcmQ6IDAgMXB4IDNweCAwIHJnYmEoMTYsIDI0LCA0MCwgMC4wNCk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGl2ZXJnZW5jZXMg4oCUIHZhbHVlcyB1c2VkIHdpZGVseSBpbiB0aGlzIHJlcG8gdGhhdCB0aGUgZGVzaWduIHN5c3RlbSBkb2VzIE5PVFxuLy8gZGVmaW5lLiBIb2lzdGVkIGhlcmUgc28gdGhlIGRyaWZ0IGlzIHZpc2libGUgaW4gb25lIHBsYWNlIGluc3RlYWQgb2YgYmVpbmdcbi8vIHJlLWludmVudGVkIHBlciBmaWxlLiBEbyBub3QgXCJmaXhcIiB0aGVzZSBieSBzbmFwcGluZyB0aGVtIHRvIGEgbmVhcmJ5IHRva2VuOlxuLy8gdGhhdCBjaGFuZ2VzIHJlbmRlcmVkIG91dHB1dCBhbmQgbmVlZHMgYSBkZXNpZ24gY2FsbCBmaXJzdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBIHB1cnBsZSBob3ZlciBzdGF0ZS4gVHdvIGNvbXBldGluZyB2YWx1ZXMgYXJlIGluIHVzZTsgbmVpdGhlciBpcyBjYW5vbmljYWwuXG4vLyAkcHVycGxlLTYwMCAoIzczNTViNSkgaXMgYWxzbyB1c2VkIGFzIGEgaG92ZXIgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIGFuZFxuLy8gX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3MuXG4keC1wdXJwbGUtaG92ZXI6ICM4NTVhZDQ7ICAvLyBkZWNsYXJlZCBpbiAxMSBmaWxlc1xuXG4vLyBBIGhhaXJsaW5lIGJvcmRlciwgb25lIHN0ZXAgbGlnaHRlciB0aGFuICRibGFjay0yMDAuXG4keC1ib3JkZXItZmFpbnQ6ICNlY2VjZWM7ICAvLyBkZWNsYXJlZCBpbiAxNCBmaWxlc1xuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLm1vZGFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5NiwgMTk2LCAxOTYsIC43KTtcblxuICAmLm5nLWVudGVyLCAmLm5nLWxlYXZlIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICB9XG5cbiAgJi5uZy1lbnRlciwgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSwgJi5uZy1sZWF2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubW9kYWwtdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLm1vZGFsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIC8vIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgIC1vLXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG5cbiAgICAmLm5nLWxlYXZlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgfVxuXG4gICAgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyIHtcbiAgICAubW9kYWwge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgLm1vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsLWFuaW1hdGUtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgLy8gQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDc3MHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA+IC5tb2RhbC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246IC4xMjVzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMTI1cyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcblxuICAgICYubmctbGVhdmUge1xuICAgICAgJi5zbGlkZS1sZWZ0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgIH1cblxuICAgICYubmctbGVhdmUubmctbGVhdmUtYWN0aXZlLCAmLm5nLWhpZGUtYWRkIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLCAmLm5nLWhpZGUtcmVtb3ZlIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgICAmLnNsaWRlLWxlZnQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgICAgJi5zbGlkZS1yaWdodCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogOHB4IDhweCAyMHB4IDBweCAjNGE0YTRhO1xuXG4gICYubGFyZ2Uge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG5cbiAgICBidXR0b24ubGluayB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgaS5sZWZ0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGVydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmLmNvbmZpcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgaS5mYSB7XG4gICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvcGFjaXR5OiAuMjtcbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG5cbiAgICBidXR0b246bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmxvYWRpbmctdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgIFxuXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgLjUpO1xuXG4gIC5sb2FkaW5nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuXG4gICAgLmZhLXNwaW5uZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgfVxuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmF0aGxldGUtc2VsZWN0aW9uIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUxO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtaW4taGVpZ2h0OiA0NHB4O1xuICBtYXgtaGVpZ2h0OiA0NHB4O1xuXG4gID4gZGl2LFxuICA+IC5hdGhsZXRlLXNlbGVjdGlvbl9fdGFiIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTBlMGUxO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICMxMjBkMWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmVkZmM7XG4gICAgICBjb2xvcjogIzEyMGQxYztcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NzY4ZWI7XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBmb250OiA2MDAgMTRweC8yMHB4IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIG1hcmdpbjogMCA4cHggMCAwO1xuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gZGl2LnRlYW0tbmF2IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM2YzZjN2M7XG4gICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMGUwZTE7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAjNmM2YzdjO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmODtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnRlYW0tbmF2X19pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxufVxuXG5cbi5hdGhsZXRlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cbi5hdGhsZXRlLW1lbnUge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0OHB4KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLmF0aGxldGUtc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGlnaHRfZ3JleTtcbiAgICB3aWR0aDogMTQwcHg7XG5cbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgd2lkdGg6IDk1JTtcbiAgICB9XG5cbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAxMDBweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtdG9nZ2xlLXZpZXcge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMTAwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTAwcHgpO1xuICAgIGZvbnQtc2l6ZTogMjNweDtcblxuICAgICYgPiBpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgY29sb3I6ICRsaWdodF9ncmV5O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUgIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5hdGhsZXRlLWZpbHRlci1zb3J0IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAmID4gLmF0aGxldGUtc29ydC1ib3gge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1pbi13aWR0aDogMTEwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IDExMHB4O1xuICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAzNSU7XG4gICAgICAgICAgcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3B0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MnB4O1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmMWYxO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDY4LCA2NywgNzYsIDAuMjUpO1xuICAgICAgICBtaW4td2lkdGg6IDEzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAub3B0aW9ucy1pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTRweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZmRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAub3B0aW9ucy1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAuc29ydC1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtY2lyY2xlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLm5vdC1hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtc29ydC1hc2Mge1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mYS1zb3J0LWRlc2Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IHtcbiAgICAuYXRobGV0ZS1tZW51IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICBcbiAgICAgIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXNlYXJjaCB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgXG4gICAgICAuYXRobGV0ZS10b2dnbGUtdmlldyB7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICB9XG4gIFxuICAgICAgLmF0aGxldGUtZmlsdGVyLXNvcnQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiA0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIFxuICAgICAgICAmLm1vYmlsZS1vcGVuIHtcbiAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgICYgPiAuYXRobGV0ZS1zb3J0LWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBkaXYubGFiZWwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHggMCAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIC5sYWJlbC1wbGFjZWhvbGRlcltkYXRhLWZpZWxkLW5hbWVdIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHghaW1wb3J0YW50O1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJ0FsbCc7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAubGFiZWxbZGF0YS1zb3J0LXZhbHVlXSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1maWVsZC1uYW1lKSAnOic7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zb3J0LXZhbHVlKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAub3B0aW9ucyB7XG4gICAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXJlc2V0LXZpZXcge1xuICAgICAgICBvcmRlcjogNTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuYXRobGV0ZS1tZW51LS1maWx0ZXJzLW9wZW4ge1xuICAgICAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAubGFiZWxbZGF0YS1maWVsZC1uYW1lXTpub3QoLmxhYmVsLXBsYWNlaG9sZGVyKTpub3QoW2RhdGEtc29ydC12YWx1ZV0pOjpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgfVxuXG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1saXN0LXZpZXcge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcblxuICAuYXRobGV0ZS1saXN0LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuYXRobGV0ZS1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdCB7XG4gICAgICBAaW5jbHVkZSBmbGV4KC41KTtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1sYXN0LWFjdGl2aXR5IHtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICBmb250LXNpemU6IDIwcHg7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTNweCk7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjOTM5NDk3O1xuICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICBtaW4td2lkdGg6IDE3MHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hdGhsZXRlLXN0YXQge1xuICAgICAgQGluY2x1ZGUgZmxleCguNSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMjVweDtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbGFzdC1hY3Rpdml0eSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbWluLXdpZHRoOiAxNzBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQyNDI0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmMGVmO1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQtc2lkZSB7XG4gICAgQGluY2x1ZGUgZmxleCguMSk7XG4gIH1cbn1cblxuLmF0aGxldGUtZGFzaGJvYXJkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICRkYXNoYm9hcmQtd2lkdGg6IDk5MHB4O1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1tZW51IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBtaW4taGVpZ2h0OiA4NXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB3aWR0aDogJGRhc2hib2FyZC13aWR0aDtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDM1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG5cbiAgICAgICAgJiA+IGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICRhdGhsZXRlRGFzaGJvYXJkR2FwOiAyMHB4O1xuICAuYXRobGV0ZS1kYXNoYm9hcmQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6ICRhdGhsZXRlRGFzaGJvYXJkR2FwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hdGhsZXRlLWluZm8tYm94IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uLWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gI3skYXRobGV0ZURhc2hib2FyZEdhcCAqIDJ9KSAvIDMpO1xuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtYWRkLXNsb3Qge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgYnV0dG9uIGkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hdGhsZXRlLWluZm8tYm94ID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbi5hdGhsZXRlLWRhc2hib2FyZC1hY3Rpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIC5hY3Rpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgICAuYWN0aW9uLWljb24sIC5hY3Rpb24tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkbGlnaHRfZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbi1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgICAuYWN0aW9uLXRleHQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1pbmZvLWJveCB7XG5cbiAgLmJpby1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIDQwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6Izk3NjhFQjs7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuYXRobGV0ZS1udW1iZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1udW1iZXIgKyAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE3LDM4LDc1LC44NSk7XG4gICAgfVxuICB9XG5cbiAgLmJpby1ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICBwYWRkaW5nOiAxN3B4O1xuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIH1cbiAgICAuYXRobGV0ZS1wcm9maWxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1heC13aWR0aDogMTIwcHg7XG5cbiAgICAgIC5wcm9maWxlLXBpYy10aHVtYiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBoZWlnaHQ6IDEzMHB4O1xuICAgICAgICAvLyBtYXJnaW46IDVweCAxMHB4ICRhdGhsZXRQcm9maWxlU3ViUGljR2FwO1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtcG9zaXRpb24ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS13ZWlnaHQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdHMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgLy8gbWFyZ2luLXRvcDogMTRweDtcbiAgICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogMjBweDtcblxuICAgICAgLmF0aGxldGUtc2NvcmUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtc2NvcmUtdGwtZGF0YSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIH1cblxuXG4gICAgICAudGVzdC10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICB9XG4gICAgICAudGVzdC1zY29yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmlvLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgNTBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgNTAlKTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICAgIGkge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAmLmljb24tdGVzdCAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOEU4RTg7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdiArIGRpdiB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNFOEU4RTg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4ucHJvZmlsZS1tZW51IHtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xufVxuXG4ubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuXG4ubWVudS1pdGVtIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gIGNvbG9yOiAjYTBhNGE4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gICYuYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICNlZmVmZWY7XG4gIH1cblxuICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhMGE0YTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHNwYW4ubWFya2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzBweDtcbiAgICB3aWR0aDogMjNweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5wcm9maWxlLWRldGFpbCB7XG4gICYucHJvZmlsZS1kZXRhaWwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbG9jay13aWR0aCgyMTBweCk7XG5cbiAgLmRhdGEtZW1waGFzaXMge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAucHJvZmlsZS1waWMge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDE3NXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDIwMHB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJi5pbnZpc2libGUge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWRhdGEtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLnByb2ZpbGUtZGF0YSA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLmdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlEQUQ5O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgbWFyZ2luOiA2cHggMCAwO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuZ3JvdXAtaWNvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtc2F2ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5wcm9maWxlLWRhdGEtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWRhdGEge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWdyb3VwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnJlc3AtbW9udGgtdmlldyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLnJlc3Atc2NvcmUtdG9kYXkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgYm9keSAucHJvZmlsZS1zdW1tYXJ5ID4gLnJvdy1jb250YWluZXIuZGl2aWRlZC5yZXNwLXNjb3JlLXRvZGF5ID4gZGl2ICsgZGl2IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IC5wcm9maWxlLXN1bW1hcnkge1xuICAgIHBhZGRpbmctbGVmdDogMHB4IWltcG9ydGFudDtcbiAgfVxufVxuXG4ucHJvZmlsZS1zdW1tYXJ5IHtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg3ODBweCk7XG5cbiAgLm1vYmlsZS1waWMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDIwMCAvIDE3NTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC5wcm9maWxlLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGl2aXR5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgJjpudGgtY2hpbGQobisyKTpiZWZvcmUge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICBtYXJnaW46IDAgOXB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmx1ZS10ZXh0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAuc2NvcmUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnNjb3JlLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgzODBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZmVmZWY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgLnByb2ZpbGUtc2NvcmUge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODVweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMzMHB4KTtcblxuICAgICAgJi5sYWJlbC1vbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLXNjb3JlLWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLW5hbWUge1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMjVweDtcblxuXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAjQUVBRUFFO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLWRhdGUge1xuXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgY29sb3I6ICNBRUFFQUU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb2ZpbGUtc2NvcmUtZ3JhcGgtY2FudmFzIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzMwcHgpO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1zY29yZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAucHJvZmlsZS10bC1jaGFuZ2Uge1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBcbiAgICB9XG4gIH1cblxuICAudG9kYXktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnRvZGF5LXByb2dyYW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2Lmljb24tY2hlY2tib3gtY2hlY2tlZCAge1xuICAgICAgY29sb3I6ICNBRkIwQUU7XG4gICAgICAmLmJsdWUtY2hlY2sge1xuICAgICAgICBjb2xvcjogIzk3NjhFQjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZ3JhbSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIC5saWdodC1ncmV5LXRleHQgIHtcbiAgICAgICAgY29sb3I6ICNBRkIxQjM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRvZGF5LW5vdGljZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG5cbiAgICAubm90aWNlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAvLyBtb3JlIHJlc3BvbnNpdmUgdG8gbm8gZml4IGhlaWdodHNcbiAgICAgIC8vIGFuZCBpbnN0ZWFkIHVzZSBwYWRkaW5nL21hcmdpbnMuLlxuICAgICAgLy8gbWluLWhlaWdodDogMjZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgPiBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYueWVsbG93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7XG5cbiAgICAgIC5ub3RpY2Uge1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIH1cblxuICAgICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NlYjc0ZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1pc2Mgc2VjdGlvbiBzcGFjaW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uc3BhY2VkLXRvcC1sYXJnZSAge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnNwYWNlZC1ib3R0b20tbWVkaXVtICB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cblxuLmJ1cmdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzJlMmUyZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5tZW51LW1vYmlsZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ubWVudS1kZXNrdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1lbnUtbW9iaWxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAjMWMxYzFjO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHotaW5kZXg6IDEwMDA7XG5cbiAgLm1lbnUtaXRlbSB7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyDQstCw0LbQu9C40LLQvlxuICB9XG59XG5cbi5tZW51LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi8qIE1PQklMRSBCUkVBS1BPSU5UICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1lbnUtZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5idXJnZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLm1lbnUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuXG4gIC5wcm9maWxlLW1lbnUge1xuICAgIHdpZHRoOiB1bnNldCFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXgtaGVpZ2h0OiA1OXB4O1xuICAgIGhlaWdodDogNTlweDtcbiAgICBtaW4taGVpZ2h0OiA1OXB4O1xuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLmF0aGxldGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA4cHggMCA0cHg7XG4gIH1cblxuICAmX19idXJnZXIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMyZTJlMmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cblxuICAmX19kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMxYzFjMWM7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXRobGV0ZSBuYXZpZ2F0aW9uIOKAlCB2ZXJ0aWNhbCBsZWZ0IHNpZGViYXJcbiAgIE1hdGNoZXMgdGhlIHByYWN0aXRpb25lci9hZG1pbiBzaWRlYmFyIHN0eWxlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kYXRobGV0ZS1zaWRlYmFyLXdpZHRoOiAyNDBweDtcbiRhdGhsZXRlLXNpZGViYXItY29sbGFwc2VkLXdpZHRoOiA3MHB4O1xuJGF0aGxldGUtaGVhZGVyLWhlaWdodDogNjBweDtcbiRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlOiA2MHB4O1xuLy8gU2Vjb25kYXJ5IGhlYWRlciAoYmFjay1hcnJvdyArIG1lbWJlciBuYW1lcyBiYXIpIOKAlCBmdWxsLXdpZHRoLCBzaXRzIGRpcmVjdGx5XG4vLyB1bmRlciB0aGUgbWFpbiBoZWFkZXI7IHRoZSBzaWRlYmFyIHJhaWwgYmVnaW5zIGJlbG93IGl0LlxuJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDogNDRweDtcblxuLy8gQ29sb3JzIHB1bGxlZCBmcm9tIHRoZSBwcmFjdGl0aW9uZXIgc2lkZWJhciBkZXNpZ24gc3lzdGVtXG4kYXRobGV0ZS1zaWRlYmFyLWJnOiAjZmZmZmZmO1xuXG4vLyBUaGUgbWVudV9iYXIgaW5jbHVkZSB3cmFwcGVyIGJlY29tZXMgdGhlIGZpeGVkIHNpZGViYXIgcmFpbFxuLy8gKG9ubHkgd2hlbiB0aGUgYXRobGV0ZSBtZW51IGFjdHVhbGx5IGhhcyBpdGVtcyB0byBzaG93KS5cbi8vIERlZmF1bHQ6IGZsdXNoIGJlbG93IHRoZSBtYWluIGhlYWRlciAoYXRobGV0ZSB2aWV3IGhhcyBubyBzZWxlY3Rpb24gYmFyKS5cbi5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0O1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gIG1heC13aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZS1zaWRlYmFyLWJnO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICB6LWluZGV4OiA5MDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2UsIG1pbi13aWR0aCAwLjI1cyBlYXNlLCBtYXgtd2lkdGggMC4yNXMgZWFzZTtcbn1cblxuLy8gUHJhY3RpdGlvbmVyIHZpZXc6IGRyb3AgdGhlIHJhaWwgYmVsb3cgdGhlIHNlbGVjdGlvbiBiYXIgd2hlbiBpdCByZW5kZXJzLlxuLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0ICsgJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBLZWVwIHRoZSBoZWFkZXIgcGlubmVkIHNvIHRoZSBmaXhlZCBzaWRlYmFyIG9mZnNldCBzdGF5cyB2YWxpZCB3aGlsZSBzY3JvbGxpbmcuXG4vLyBwYWRkaW5nLXRvcCByZXNlcnZlcyBzcGFjZSBzbyBjb250ZW50IGRvZXMgbm90IGp1bXAgdW5kZXIgdGhlIGZpeGVkIGhlYWRlci5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykge1xuICBwYWRkaW5nLXRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcblxuICA+IC5oZWFkZXItY29udGVudCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDkxMDsgLy8gYWJvdmUgc2lkZWJhciAoOTAwKVxuICB9XG5cbiAgLy8gUGluIHRoZSBzZWNvbmRhcnkgaGVhZGVyIHRvIGEga25vd24gaGVpZ2h0IHNvIHRoZSByYWlsJ3MgYHRvcGAgb2Zmc2V0IGxpbmVzXG4gIC8vIHVwIGV4YWN0bHkgYmVuZWF0aCBpdCAobm8gZ2FwLCBubyBvdmVybGFwKS5cbiAgPiAuaGVhZGVyLWNvbnRlbnQgKyAqIC5hdGhsZXRlLXNlbGVjdGlvbiB7XG4gICAgaGVpZ2h0OiAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRhdGhsZXRlLXN1YmhlYWRlci1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgdmlldzogYWxzbyBwaW4gdGhlIHNlbGVjdGlvbi1iYXIgd3JhcHBlciB3aGlsZSBzY3JvbGxpbmcuXG4ubWFpbi12aWV3OmhhcyguYXRobGV0ZS1zZWxlY3Rpb24pOmhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIHtcbiAgcGFkZGluZy10b3A6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuXG4gIC8vIFNpdHMgYmVsb3cgdGhlIGhlYWRlciAoOTEwKSBhbmQgdGhlIHJhaWwgKDkwMCAvIDkyMCBvbiBtb2JpbGUpLiBOb3RoaW5nIGV2ZXJcbiAgLy8gb3ZlcmxhcHMgaXQgdmVydGljYWxseSDigJQgdGhlIHJhaWwgc3RhcnRzIGJlbmVhdGggdGhpcyBiYXIg4oCUIGFuZCBwb3NpdGlvbjogZml4ZWRcbiAgLy8gYWxvbmUgc3RpbGwgcGFpbnRzIGl0IGFib3ZlIGFsbCBpbi1mbG93IGNvbnRlbnQuXG4gID4gLmhlYWRlci1jb250ZW50ICsgKiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDg5NTtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQgcmFpbCAoaWNvbi1vbmx5KVxuLm1lbnUtY29udGVudDpoYXMoLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSB7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWluLXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbn1cblxuLy8gQ29udHJvbGxlciByb290IGZpbGxzIHRoZSByYWlsIGFzIGEgdmVydGljYWwgY29sdW1uXG4ucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICAvLyBUaGUgcm9vdCBhbHNvIGNhcnJpZXMgLnZpZXctY29udGFpbmVyLCB3aGljaCBwaWNrcyB1cCBhIDE1cHggc2lkZSBndXR0ZXJcbiAgLy8gYmVsb3cgMTA1NHB4IChyZXNwb25kKG1kKSBpbiBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzKS4gT24gYSA3MHB4IHJhaWwgdGhhdFxuICAvLyBzcXVlZXplcyB0aGUgaGVhZGVyIGFuZCBpdGVtIGJveGVzIGludG8gbmFycm93IHBpbGxzLlxuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgLnNpZGViYXItaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gbGVmdCAyNHB4IGFsaWducyB0aGUgdGl0bGUgd2l0aCB0aGUgaXRlbSBpY29uczsgcmlnaHQgMTJweCBhbGlnbnMgdGhlXG4gICAgLy8gdG9nZ2xlIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlLWJnO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIC8vIFN0YXkgdmlzaWJsZSBpZiB0aGUgbmF2IGxpc3Qgb3ZlcmZsb3dzIGFuZCB0aGUgcmFpbCBzY3JvbGxzIGludGVybmFsbHlcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7XG4gICAgLy8gZ3JvdyB0byBmaWxsIHNvIHRoZSB0b2dnbGUgaXMgcHVzaGVkIHRvIHRoZSBmYXIgcmlnaHQgcmVnYXJkbGVzcyBvZiB0aGVcbiAgICAvLyBiYXNlIC5wcm9maWxlLW1lbnUgZmxleCBydWxlc1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuc2lkZWJhci1oZWFkZXJfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAvLyBuZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHRoZSBhcnJvdyBnbHlwaCBoYXMgd2hpdGVzcGFjZSBvbiBpdHMgcmlnaHQgaW5zaWRlIHRoZSB2aWV3Qm94OyBwdWxsIHRoZVxuICAgIC8vIGJ1dHRvbiByaWdodCBzbyB0aGUgdmlzdWFsIGFycm93IGxpbmVzIHVwIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgfVxuXG4gIC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtYXJnaW46IDAgMCA0cHggMDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogJHNpZGViYXItdGl0bGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRzaWRlYmFyLXRpdGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5ldXRyYWxpemUgdGhlIG9sZCBob3Jpem9udGFsIHNwYWNpbmcgcnVsZVxuICAubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiAgLm1lbnUtaXRlbV9faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtX19sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgdHJpZ2dlciDigJQgaGlkZGVuIG9uIGRlc2t0b3BcbiAgLnNpZGViYXItYnVyZ2VyIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgbWVtYmVyLXZpZXc6IHByb2ZpbGUgYmxvY2sgKyBhZG1pbiBmb290ZXJcbi5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLnByb2ZpbGUtbWVudS0tcHJhY3RpdGlvbmVyIHtcbiAgLnNpZGViYXItbWVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdGhsZXRlLXNpZGViYXItYmc7XG4gIH1cblxuICAuc2lkZWJhci1tZW1iZXJfX2F2YXRhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZS1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLnNpZGViYXItbWVtYmVyX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9fc3VidGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjOGU4ZTkzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF0aGxldGUtc2lkZWJhci1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gbmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCkgfVxuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIC8vIG5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHggfVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2UtYmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItZm9vdGVyX19hZG1pbi1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQ6IGhpZGUgbGFiZWxzICsgdGl0bGUsIGNlbnRlciBpY29uc1xuLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkIHtcbiAgLnNpZGViYXItaGVhZGVyIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1lbnUtaXRlbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWl0ZW1fX2xhYmVsIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIge1xuICAgIC5zaWRlYmFyLW1lbWJlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgLnNpZGViYXItbWVtYmVyX19pbmZvIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnNpZGViYXItZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgIH1cblxuICAgIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tbGFiZWwgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgZ2FwOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQdXNoIHBhZ2UgY29udGVudCBpbnRvIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHRoZSByYWlsLlxuLy8gU2NvcGVkIHZpYSA6aGFzKCkgc28gcGFnZXMgd2l0aG91dCB0aGUgYXRobGV0ZSBzaWRlYmFyIGFyZSB1bnRvdWNoZWQsXG4vLyBhbmQgbWFyZ2lucyByZXNldCBhdXRvbWF0aWNhbGx5IHdoZW4gbmF2aWdhdGluZyBhd2F5LlxuLy8gTk9URTogdGhlIHNlY29uZGFyeSBoZWFkZXIgKGAuaGVhZGVyLWNvbnRlbnQgKyAqYCkgaXMgaW50ZW50aW9uYWxseSBOT1Rcbi8vIHB1c2hlZCDigJQgaXQgc3BhbnMgZnVsbCB3aWR0aCBhdCB0aGUgZmFyIGxlZnQsIGFib3ZlIHRoZSByYWlsLiBUaGUgcmFpbCdzXG4vLyBgdG9wYCBvZmZzZXQgKGFib3ZlKSBkcm9wcyBpdCBiZWxvdyB0aGUgc2Vjb25kYXJ5IGhlYWRlciBpbnN0ZWFkLlxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gID4gLm1lbnUtY29udGVudCB+ICoge1xuICAgIG1hcmdpbi1sZWZ0OiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMjVzIGVhc2U7XG4gIH1cbn1cblxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICA+IC5tZW51LWNvbnRlbnQgfiAqIHtcbiAgICBtYXJnaW4tbGVmdDogJGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGg7XG4gIH1cbn1cblxuLyogVGhlIHNjcmltIG9ubHkgZXhpc3RzIGluIHRoZSBvZmYtY2FudmFzIHRpZXIgYmVsb3cuICovXG4uc2lkZWJhci1zY3JpbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1vYmlsZTogc2lkZWJhciBzbGlkZXMgaW4gZnJvbSB0aGUgbGVmdCwgdG9nZ2xlZCBieSBhIGZpeGVkIGJ1cmdlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC8vIFNpdHMgYWZ0ZXIgdGhlIGRyYXdlcidzIHJpZ2h0IGVkZ2Ugc28gdGhlIHJhaWwgaXRzZWxmIHN0YXlzIGNyaXNwLlxuICAvLyB6LWluZGV4OiAtMSBrZWVwcyBpdCB1bmRlciB0aGUgZHJhd2VyJ3Mgb3duIGNoaWxkcmVuIHdoaWxlIHRoZSBwYXJlbnQnc1xuICAvLyB6LWluZGV4ICg5MjAsIGJlbG93KSBrZWVwcyBpdCBvdmVyIHRoZSBwYWdlLlxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3BlbiAuc2lkZWJhci1zY3JpbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgbGVmdDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB9XG5cbiAgLy8gT25seSBvbmUgbW9iaWxlIG5hdiB0cmlnZ2VyOiBhdGhsZXRlX3NlbGVjdGlvbl9iYXIuaHRtbCBpbnN0YW50aWF0ZXMgYVxuICAvLyBzZWNvbmQgTWVudUJhckNvbnRyb2xsZXIgd2l0aCBpdHMgb3duIGJ1cmdlciwgd2hpY2ggZHVwbGljYXRlZCB0aGlzIG9uZVxuICAvLyB3aGVyZXZlciB0aGUgc2lkZWJhciByZW5kZXJzLlxuICAubWFpbi12aWV3OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUHJhY3RpdGlvbmVyIHZpZXcgc3RhY2tzIGEgNDRweCB0YWIgYmFyIHVuZGVyIHRoZSA2MHB4IGhlYWRlci4gVGhlIGJ1cmdlciBzaXRzXG4gIC8vIGluIHRoZSBoZWFkZXIgaXRzZWxmIChiZWxvdyksIHNvIHRoaXMgYmFyIG9ubHkgbmVlZHMgaXRzIHNjcmltIG9mZnNldCBmaXhlZC5cbiAgLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gICAgLy8gTWF0Y2ggdGhlIGRyYXdlcidzIHRvcCBzbyB0aGUgdGFiIGJhciBpcyBub3QgZGltbWVkLlxuICAgIC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLW1vYmlsZS1vcGVuIC5zaWRlYmFyLXNjcmltIHtcbiAgICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGUgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBmaXhlZCBidXJnZXIgb3ZlcmxheXMgdGhlIGhlYWRlcidzIGxlZnQgZWRnZTsgcmVzZXJ2ZSB0aGF0IHdpZHRoIHNvIGhlYWRlclxuICAvLyBjb250ZW50IHN0YXJ0cyBjbGVhciBvZiBpdCAtLSB0aGUgbWVtYmVyIGhlYWRlcidzIFZpc29yIG1hcmsgYW5kIHRoZVxuICAvLyBwcmFjdGl0aW9uZXIgdGVhbSBzd2l0Y2hlciB3b3VsZCBib3RoIG90aGVyd2lzZSBiZSBjb3ZlcmVkLlxuICAvLyBUYXJnZXRzIHRoZSBpbm5lciBkYXJrIGVsZW1lbnQsIG5vdCB0aGUgcGxhaW4gLmhlYWRlci1jb250ZW50IHdyYXBwZXIgdGhlIHZpZXdzXG4gIC8vIHB1dCBhcm91bmQgdGhlIGluY2x1ZGUg4oCUIHBhZGRpbmcgb24gdGhlIHdyYXBwZXIgd291bGQgaW5zZXQgdGhlIGRhcmsgYmFyIGl0c2VsZi5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgLmhlYWRlci1jb250ZW50LS1hdGhsZXRlLFxuICAgIC5oZWFkZXItY29udGVudC0tcHJhYyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICBsZWZ0OiAtJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDJweCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC4yNXMgZWFzZTtcblxuICAgIC8vIFRoZSBidXJnZXIgaXMgYSBjaGlsZCBvZiB0aGlzIGZpeGVkLCB6LWluZGV4ZWQgZWxlbWVudCwgc28gaXRzIG93biB6LWluZGV4IGlzXG4gICAgLy8gbG9jYWwgdG8gdGhpcyBjb250ZXh0LiBMaWZ0IHRoZSBjb250ZXh0IGFib3ZlIHRoZSBoZWFkZXIgKDkxMCkgc28gdGhlIGJ1cmdlclxuICAgIC8vIGNhbiBwYWludCBpbiB0aGUgaGVhZGVyJ3MgbGVmdCBjZWxsLiBUaGUgZHJhd2VyIGl0c2VsZiBzdGFydHMgYXQgdGhlIGhlYWRlcidzXG4gICAgLy8gYm90dG9tIGVkZ2UsIHNvIGl0IG5ldmVyIG92ZXJsYXBzIHRoZSBoZWFkZXIgcmVnYXJkbGVzcyBvZiBwYWludCBvcmRlci5cbiAgICB6LWluZGV4OiA5MjA7XG4gIH1cblxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3Blbikge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAvLyBUaGUgZGVza3RvcCBjb2xsYXBzZSBwcmVmZXJlbmNlIGlzIHBlcnNpc3RlZCBpbiBsb2NhbFN0b3JhZ2VcbiAgLy8gKGF0aGxldGVOYXZDb2xsYXBzZWQpLCBhbmQgaXRzIDcwcHggd2lkdGggcnVsZSBvdXQtc3BlY2lmaWVzIHRoZSBtb2JpbGVcbiAgLy8gd2lkdGggYWJvdmUuIEFuIG9mZi1jYW52YXMgZHJhd2VyIGhhcyBubyByZWFzb24gdG8gYmUgaWNvbi1vbmx5LCBhbmQgYXQgNzBweFxuICAvLyB0aGUgbGFiZWxzIGJlbG93IHdlcmUgcmVuZGVyZWQgYnV0IGNsaXBwZWQgYnkgb3ZlcmZsb3cteDogaGlkZGVuLlxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1jb2xsYXBzZWQpIHtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICB9XG5cbiAgLy8gQ29udGVudCBzcGFucyBmdWxsIHdpZHRoIG9uIG1vYmlsZS4gVGhlIC5pcy1jb2xsYXBzZWQgdmFyaWFudCBpcyBsaXN0ZWRcbiAgLy8gZXhwbGljaXRseSBiZWNhdXNlIHRoZSBkZXNrdG9wIHJ1bGUgdGhhdCBpbmRlbnRzIGNvbnRlbnQgYnkgNzBweCBjYXJyaWVzIHRoZVxuICAvLyBzYW1lIHNwZWNpZmljaXR5LCBhbmQgd291bGQgb3RoZXJ3aXNlIHdpbiBieSBtYXRjaGluZyBhIGxvbmdlciBzZWxlY3Rvci5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICAgID4gLmhlYWRlci1jb250ZW50ICsgKjpub3QoLm1lbnUtY29udGVudCksXG4gICAgPiAubWVudS1jb250ZW50IH4gKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gICAgLy8gSGlkZSB0aGUgZGVza3RvcCBjb2xsYXBzZSBoZWFkZXIsIHNob3cgdGhlIG9mZi1jYW52YXMgYnVyZ2VyXG4gICAgLnNpZGViYXItaGVhZGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gU2VhdGVkIGluIHRoZSBkYXJrIGhlYWRlcidzIHRvcC1sZWZ0IGNlbGwgcmF0aGVyIHRoYW4gZmxvYXRpbmcgb3ZlciBjb250ZW50LlxuICAgIC5zaWRlYmFyLWJ1cmdlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgIGhlaWdodDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHotaW5kZXg6IDk1MDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBPbiBtb2JpbGUgdGhlIHJhaWwgaXMgYWx3YXlzIGZ1bGwgd2lkdGgsIHNvIGtlZXAgbGFiZWxzIHZpc2libGVcbiAgICAmLmlzLWNvbGxhcHNlZCB7XG4gICAgICAubWVudS1pdGVtIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAubWVudS1pdGVtX19sYWJlbCB7IGRpc3BsYXk6IGlubGluZTsgfVxuICAgIH1cblxuICAgICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIuaXMtY29sbGFwc2VkIHtcbiAgICAgIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWxhYmVsIHsgZGlzcGxheTogaW5saW5lOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEF0aGxldGUgd2VsY29tZSBoZWFkZXIgKGhvbWUgcGFnZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHdlbGNvbWUtbGFzdC10ZXN0OiAjN2I1Y2M4O1xuJHdlbGNvbWUtc3RyZWFrOiAjZjA4YTI0O1xuJHdlbGNvbWUtdHJhaW5pbmc6ICMyMGI3Njk7XG5cbi52aWV3LWxheW91dDpoYXMoLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0OmhhcygudG9kYXktYXNrcykge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBuZy1pbmNsdWRlIGluamVjdHMgYW4gdW5zdHlsZWQgd3JhcHBlciBiZXR3ZWVuIC52aWV3LWxheW91dCBhbmQgdGhlIGNhcmQsIGFuZFxuLy8gYXMgYSBmbGV4IGl0ZW0gaXRzIGF1dG9tYXRpYyBtaW5pbXVtIHNpemUgcmVzb2x2ZXMgdG8gdGhlIGNhcmQncyBtaW4tY29udGVudFxuLy8gd2lkdGguIEEgZml4ZWQgY2FyZCB3aWR0aCB0aGVyZWZvcmUgYmVjYW1lIGEgZmxvb3IgdGhlIHJvdyBjb3VsZCBub3Qgc2hyaW5rXG4vLyBiZWxvdywgb3ZlcmZsb3dpbmcgdGhlIHZpZXdwb3J0IG9uIG1vYmlsZS4gbWluLXdpZHRoOiAwIHJlbW92ZXMgdGhlIGZsb29yO1xuLy8gZmxleC93aWR0aCBrZWVwIHRoZSB3cmFwcGVyIHNwYW5uaW5nIHRoZSByb3cgc28gdGhlIGNhcmQgc3RpbGwgZmlsbHMgaXQuXG4udmlldy1sYXlvdXQgPiBkaXY6aGFzKD4gLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0ID4gZGl2Omhhcyg+IC50b2RheS1hc2tzKSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmlldy1sYXlvdXQuYXRobGV0ZS1ob21lLXJvdyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDQwcHggMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3Byb2ZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgJl9fYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDk2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX3RpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuXG4gICAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiAjOTc2OGViO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbi1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIFNwYWNpbmcgaXMgdGhlIGxhc3QtdGVzdCByb3cncyBnYXAgYW5kIG5vdGhpbmcgZWxzZS4gQSBtYXJnaW4gaGVyZSB3b3VsZCBsYW5kIG9uXG4gIC8vIG9uZSBzaWRlIG9mIHRoZSBzZWNvbmQgZG90IG9ubHkgYW5kIHJlaW50cm9kdWNlIHRoZSB1bmV2ZW4gc2VwYXJhdG9ycy5cbiAgJl9fdGFrZS10ZXN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19sYXN0LXRlc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5NzY4ZWI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1kYXRlIHtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAjZDFkMWQxO1xuICB9XG5cbiAgJl9fc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAzNnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gRXZlcnkgdGlsZSBnZXRzIHRoZSBzYW1lIDMycHggaWNvbiBib3ggZXZlbiB0aG91Z2ggdGhlIGdseXBocyBpbnNpZGUgZGlmZmVyIGluXG4gIC8vIHNpemUuIFRoZSB0aWxlcyBhcmUgdG9wLWFsaWduZWQgY29sdW1ucywgc28gYW4gaWNvbiBib3ggdGhhdCBpcyA0cHggc2hvcnRlclxuICAvLyBwdXNoZWQgdGhhdCB0aWxlJ3MgdmFsdWUgYW5kIGxhYmVsIG9udG8gdGhlaXIgb3duIHJvd3MuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBzdmcsXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJi0tc3RyZWFrIHtcbiAgICAgIGNvbG9yOiAkd2VsY29tZS1zdHJlYWs7XG4gICAgfVxuXG4gICAgJi0tdHJhaW5pbmcge1xuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1za2VsIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gIH1cblxuICAmX19yaW5nLXRyYWNrIHtcbiAgICBmaWxsOiBub25lO1xuICAgIHN0cm9rZTogI2U1ZTVlNTtcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgfVxuXG4gICZfX3JpbmctcHJvZ3Jlc3Mge1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiAkd2VsY29tZS10cmFpbmluZztcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZTtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc3RhdC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19zdGF0LXN1YmxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX3NrZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlY2VmO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAgICYtLXZhbHVlIHtcbiAgICAgIHdpZHRoOiA0LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsIHtcbiAgICAgIHdpZHRoOiA3LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsLXdpZGUge1xuICAgICAgd2lkdGg6IDExZW07XG4gICAgfVxuXG4gICAgJi0tc3VibGFiZWwge1xuICAgICAgd2lkdGg6IDVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gICZfX2F2YXRhci0tc2tlbGV0b24ge1xuICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgYW5pbWF0aW9uOiBob21lLXNrZWxldG9uLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWJhZGdlIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAuYXRobGV0ZS13ZWxjb21lLWhlYWRlciB7XG4gICAgJl9faW5uZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTZweCAyNHB4IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBnYXA6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAwO1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggMTZweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA1NnB4O1xuICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgIH1cblxuICAgIC8vIFN0YXlzIGEgcm93OiBzdGFja2luZyB0aGUgdGhyZWUgdGlsZXMgaW50byBhIGNvbHVtbiBhZGRlZCB+MjEwcHggb2YgaGVpZ2h0LlxuICAgICZfX3N0YXRzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5hdGhsZXRlLXdlbGNvbWUtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICBnYXA6IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fcHJvZmlsZSB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNHB4O1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLFxuICAgICZfX3N0YXQtaWNvbi0tc3RyZWFrLFxuICAgICZfX3N0YXQtaWNvbi0tcHJvZ3JhbXMge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgIHN2ZyxcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLS10cmFpbmluZyBzdmcge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdC12YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0LWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cblxuICAgICZfX3N0YXQtc3VibGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGl0bGUge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcm9ncmVzcyBJbnNpZ2h0cyAoYXRobGV0ZSBob21lKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kaW5zaWdodHMtbGluazogJGJsdWU7XG4kaW5zaWdodHMtdXA6ICMyMGI3Njk7XG4kaW5zaWdodHMtZG93bjogI2M0MmEzYjtcblxuLnByb2dyZXNzLWluc2lnaHRzIHtcbiAgcGFkZGluZzogMTZweCAyNHB4IDA7XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9XG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ5MnB4O1xuICAgIGhlaWdodDogMTQ1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6aGFzKC5wcm9ncmVzcy1pbnNpZ2h0c19fZW1wdHkpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDE0NXB4O1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkaW5zaWdodHMtbGluaztcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19saW5rLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xuICAgIHdpZHRoOiA0NTJweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNkQ2RDZEO1xuICB9XG5cbiAgJl9fZW1wdHktY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDE2NnB4O1xuICAgIG1pbi13aWR0aDogMTY2cHg7XG4gICAgbWF4LXdpZHRoOiAxNjZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjk7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FyZHMsXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMCAwIDgzcHg7XG4gICAgaGVpZ2h0OiA4M3B4O1xuICAgIG1pbi1oZWlnaHQ6IDgzcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0cmljIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzZENkQ2RDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAmX19zY29yZS1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX2NoYW5nZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkaW5zaWdodHMtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJGluc2lnaHRzLWRvd247XG4gICAgfVxuICB9XG5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1pbnNpZ2h0cyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3Jlc3MtaW5zaWdodHMge1xuICAgIHBhZGRpbmc6IDEycHggMTJweCAwO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJl9fY2FyZCB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB9XG5cbiAgICAmX19tZXRyaWMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19lbXB0eS1jdGEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRvZGF5IGFza3MgKGF0aGxldGUgaG9tZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHRvZGF5LWFza3MtYWxlcnQtYmc6ICNmZmZhZjA7XG4kdG9kYXktYXNrcy1wcmV2aWV3LWdyZWVuOiAjN2NiYzZlO1xuJHRvZGF5LWFza3MtcHJldmlldy1ncmVlbi1saWdodDogI2M4ZTZiODtcblxuLnRvZGF5LWFza3Mge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuXG4gICZfX3BhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDE2cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgfVxuXG4gICZfX3BhbmVsOmhhcygudG9kYXktYXNrc19fZXhwYW5kYWJsZSk6bm90KDpoYXMoLnRvZGF5LWFza3NfX2FsZXJ0LXJvdykpICZfX2hlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gICZfX2NoZXZyb24ge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2FsZXJ0LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMjBweCAxNnB4IDEycHg7XG4gIH1cblxuICAmX19wYW5lbDpoYXMoLnRvZGF5LWFza3NfX2V4cGFuZGFibGUpICZfX2FsZXJ0LXJvdyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fYWxlcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDAgMTZweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFtYmVyLTEwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHRvZGF5LWFza3MtYWxlcnQtYmc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZfX2FsZXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgJGFtYmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC5mYSB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAmX19hbGVydC10ZXh0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYW1iZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAmX19hbGVydC1jaGV2cm9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIDQ0cHg7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMjY0cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gUHJlZmVycmVkIDQyMHB4LCBidXQgc2hyaW5rIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNhcmQgb24gYSBuYXJyb3cgZGVza3RvcFxuICAvLyBpbnN0ZWFkIG9mIHBpbm5pbmcgdGhpcyBjb2x1bW4gYW5kIHNxdWVlemluZyBvbmx5IFwiTmV4dCB0byBDb21wbGV0ZVwiLlxuICAmX19saXN0IHtcbiAgICBmbGV4OiAwIDEgNDIwcHg7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gIH1cblxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYtLXNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAudG9kYXktYXNrc19fYmFkZ2U6bm90KC50b2RheS1hc2tzX19iYWRnZS0tZG9uZSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgICAgfVxuXG4gICAgICAudG9kYXktYXNrc19faXRlbS1uYW1lIHtcbiAgICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29tcGxldGVkIHtcbiAgICAgIC50b2RheS1hc2tzX19pdGVtLW5hbWUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlN2Y1ZWU7XG4gICAgICBjb2xvcjogIzEyYjc2YTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtLW5hbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19kZXRhaWwge1xuICAgIC8vIFByZWZlcnJlZCB3aWR0aCBvZiBwYWRkaW5nICsgYWN0aW9uICsgZ2FwICsgcHJldmlldywgc28gdGhpcyBjb2x1bW5cbiAgICAvLyBzaHJpbmtzIHdpdGggdGhlIGxpc3Qgb24gYSBuYXJyb3cgZGVza3RvcCBpbnN0ZWFkIG9mIGFic29yYmluZyB0aGVcbiAgICAvLyBsZWZ0b3ZlciBhZnRlciBhIHBpbm5lZCA0MjBweCBsaXN0LlxuICAgIGZsZXg6IDEgMSA3MjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNTZweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAzMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmY5ZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgIHVybCgnLi4vLi4vaW1hZ2VzL3RvZGF5LWJhY2tncm91bmQucG5nJyksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMjc3Ljg5ZGVnLCAjZmJmOWZmIDExLjk5JSwgI2YwZThmZiAyOS42OCUsICNlY2UyZmYgNDUuOTElLCAjZWVlNmZmIDYxLjI1JSwgI2ZmZmZmZiA5MS44NiUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCwgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIsIGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW4sIG5vcm1hbDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19kb25lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICB9XG5cbiAgJl9fZG9uZS1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gICZfX2RvbmUtZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19kb25lLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgMjEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDI0cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tY29weSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgfVxuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45MjtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICAmX19jdGEtYXJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX3ByZXZpZXcge1xuICAgIGZsZXg6IDAgMSA0MDRweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDQwNHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTYsIDI0LCA0MCwgMC4wMik7XG4gIH1cblxuICAmX19wcmV2aWV3LWFydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDE1NnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4tbGlnaHQgMCUsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4gMTAwJSk7XG5cbiAgICAvLyBUaGUgc2NoZWR1bGUgdGh1bWJuYWlsIGlzIGFuIGV4ZXJjaXNlIHZpZGVvJ3MgcG9zdGVyIGZyYW1lLCBhbmQgdGhvc2UgYXJlIG5vdFxuICAgIC8vIGFsbCBvbmUgcmF0aW8sIHNvIHRoZSBmaXhlZCAxNTZweCBiYW5kIGNyb3BwZWQgd2hpY2hldmVyIGVkZ2UgZGlkIG5vdCBtYXRjaC5cbiAgICAvLyBMZXR0aW5nIHRoZSBwaWN0dXJlIHNldCB0aGUgaGVpZ2h0IHNob3dzIGl0IHdob2xlOyAudG9kYXktYXNrc19fcHJldmlldyBjbGlwc1xuICAgIC8vIHdpdGggb3ZlcmZsb3c6IGhpZGRlbiwgc28gdGhlIGNhcmQncyByb3VuZGVkIGNvcm5lcnMgYXJlIHVuYWZmZWN0ZWQuIFNhbWUgY2FsbFxuICAgIC8vIGFzIC5kYWlseS1wcm9ncmFtX190aHVtYi4gVGhlIHJlYWRpbmVzcyBwbGFjZWhvbGRlciBpcyBhdXRob3JlZCBhdCA4MDh4MzEyLFxuICAgIC8vIHdoaWNoIGxhbmRzIGJhY2sgb24gMTU2cHggaW4gdGhlIDQwNHB4IGNhcmQsIHNvIHRoYXQgdmFyaWFudCBpcyB1bmNoYW5nZWQuXG4gICAgJi0tcGhvdG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19wcmV2aWV3LXBob3RvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAmX19wcmV2aWV3LWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAxMjUsIDUwLCAwLjM1KTtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG4gICAgfVxuICB9XG5cbiAgJl9fcHJldmlldy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHggMTJweDtcbiAgfVxuXG4gICZfX3ByZXZpZXctbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxMjBkMWM7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIH1cblxuICAvLyBQbGFpbiBkZXNjcmlwdGlvbiB1bmRlciB0aGUgbmFtZSwgZm9yIGFza3Mgd2hvc2UgY2F0ZWdvcnkgaXMgcHJvc2UgcmF0aGVyIHRoYW4gYSB0YWcuXG4gICZfX3ByZXZpZXctc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgJl9fcHJldmlldy10YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX19wcmV2aWV3LXRhZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mYSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAmX19wcmV2aWV3LXRhZy1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAvLyBSYXN0ZXIgdmFyaWFudCAodGhlIHByYWN0aXRpb25lci10aWVyIGJhZGdlKSAtIHNpemVkIGhlcmUgc28gYSBnbG9iYWwgYGltZ2BcbiAgICAvLyBydWxlIGluIGVpdGhlciBidW5kbGUgY2Fubm90IHN0cmV0Y2ggaXQuXG4gICAgJi0taW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQod2lkZS1kb3duKSB7XG4gIC50b2RheS1hc2tzIHtcbiAgICAmX19kZXRhaWwge1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnRvZGF5LWFza3Mge1xuICAgICZfX2JvZHkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgcGFkZGluZzogMjRweCAyMHB4O1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cblxuICAgIC8vIFN0YWNrZWQgbGF5b3V0OiBkcm9wIHRoZSBkZXNrdG9wIGZsZXgtYmFzaXMgc28gaXQgaXMgbm90IHRyZWF0ZWQgYXMgaGVpZ2h0LlxuICAgICZfX2FjdGlvbiB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fcHJldmlldyB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDQwNHB4O1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudG9kYXktYXNrcyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDA7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIH1cblxuICAgIC8vIE9uY2UgdGhlIGJvZHkgc3RhY2tzLCB0aGUgYWN0aW9uIGNvbHVtbiBpcyB0aGUgY2FyZCdzIG9ubHkgbGVmdC1hbGlnbmVkXG4gICAgLy8gYmxvY2ssIHNvIGV5ZWJyb3csIHRpdGxlLCBhbmQgQ1RBIGFyZSBjZW50ZXJlZCB0byBtYXRjaCB0aGUgcGFuZWwgYWJvdmVcbiAgICAvLyBhbmQgdGhlIHByZXZpZXcgYmVsb3cuIERlc2t0b3Aga2VlcHMgdGhlIGZsZXgtc3RhcnQgY29sdW1uLlxuICAgICZfX2FjdGlvbixcbiAgICAmX19hY3Rpb24tY29weSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2FsZXJ0LXJvdyB7XG4gICAgICBwYWRkaW5nOiAwIDE2cHggMTJweCA4cHg7XG4gICAgfVxuXG4gICAgJl9fYWxlcnQtdGV4dCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnRvZGF5LWFza3Mge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweCAwO1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICB9XG5cbiAgICAvLyBSZWxlYXNlIHRoZSAyNjRweCBmbG9vciBub3cgdGhhdCB0aGUgYm9keSBpcyBzdGFja2VkLlxuICAgICZfX2JvZHkge1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIGdhcDogMTRweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWNvcHkge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19wcmV2aWV3IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNeSBTY2hlZHVsZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kbXktc2NoZWR1bGUtdGl0bGU6ICMxYTFhMWE7XG4kbXktc2NoZWR1bGUtbXV0ZWQ6ICM4YThhOGE7XG4kbXktc2NoZWR1bGUtYm9yZGVyOiAjZThlOGU4O1xuJG15LXNjaGVkdWxlLWFjY2VudDogIzViM2E5ZTtcbiRteS1zY2hlZHVsZS1hY2NlbnQtYm9yZGVyOiAjOGE3MGQ2O1xuJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc6ICNmM2YzZjQ7XG4kbXktc2NoZWR1bGUtY29udHJvbC1ib3JkZXI6ICNkOGQ4ZDg7XG5cbi5hdGhsZXRlLWhvbWUtcm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZzogMTZweCAwIDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTE0OHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNocmlua2FibGU6IHRoZSByb3cgbmVlZHMgMTE0OHB4ICg1ODggKyA0OTIgKyAyMCBnYXAgKyA0OCBwYWRkaW5nKSBhbmQgdGhlXG4gIC8vIHNpZGViYXIgZWF0cyBhbm90aGVyIDI0MHB4LCBzbyBmbGV4LXNocmluazogMCBvdmVyZmxvd2VkIGJldHdlZW4gdGhlXG4gIC8vIGNvbGxhcHNlIGJyZWFrcG9pbnQgYW5kIH4xMzg4cHguXG4gICZfX2NhbGVuZGFyIHtcbiAgICBmbGV4OiAxIDEgNTg4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2luc2lnaHRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXg6IDEgMSA0OTJweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLm15LXNjaGVkdWxlLXdyYXAge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSByb3cncyBjb2x1bW5zIG93biB0aGUgd2lkdGggaGVyZSAoNTg4LzQ5MiBvbiBkZXNrdG9wLCAxMDAlIG9uY2VcbiAgLy8gc3RhY2tlZCksIHNvIHRoZSBjYXJkcyBtdXN0IG5vdCByZS1jYXAgdGhlbXNlbHZlcy5cbiAgLm15LXNjaGVkdWxlIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAucHJvZ3Jlc3MtaW5zaWdodHMge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAucHJvZ3Jlc3MtaW5zaWdodHNfX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAudXBjb21pbmctc2Vzc2lvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC51cGNvbWluZy1zZXNzaW9uX19wYW5lbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLmJvZHltYXAtY2FyZCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5ib2R5bWFwLWNhcmRfX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgICZfX2lubmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJl9fY2FsZW5kYXIsXG4gICAgJl9faW5zaWdodHMge1xuICAgICAgZmxleDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlbGVhc2UgdGhlIGRlc2t0b3AgaGVpZ2h0IGxvY2s7IHdpZHRoIGlzIGFscmVhZHkgZmx1aWQuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAyOHB4O1xuXG4gICAgLy8gVGhlIHJvdyBvd25zIHRoZSBndXR0ZXIgb25jZSBzdGFja2VkLiBLZWVwaW5nIHRoZSBpbm5lciBwYWRkaW5nIGhlcmVcbiAgICAvLyB3b3VsZCBpbnNldCBNeSBTY2hlZHVsZSBhbmQgUHJvZ3Jlc3MgSW5zaWdodHMgYW4gZXh0cmEgMjRweCBwZXIgc2lkZSxcbiAgICAvLyBsZWF2aW5nIHRoZW0gbmFycm93ZXIgdGhhbiBldmVyeSBvdGhlciBjYXJkIG9uIHRoZSBwYWdlLlxuICAgICZfX2lubmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweCAyNHB4O1xuICB9XG59XG5cbi5teS1zY2hlZHVsZS13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogOHB4IDI0cHggMzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm15LXNjaGVkdWxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAyNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgaGVpZ2h0OiA1MjBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9XG4gIC8vIERvIG5vdCBzZXQgaGVpZ2h0OiBhdXRvIGhlcmUg4oCUIGl0IG91dC1zcGVjaWZpZXMgY29tcG9uZW50IGhlaWdodCBsb2Nrcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fZWRpdC1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19lZGl0LWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweCA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcblxuICAgICYtLW1vbnRoIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cblxuICAmX193ZWVrLFxuICAmX19tb250aCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gICZfX3RvZGF5LWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbXktc2NoZWR1bGUtY29udHJvbC1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkbXktc2NoZWR1bGUtY29udHJvbC1iZywgMyUpO1xuICAgIH1cbiAgfVxuXG4gICZfX25hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG5cbiAgICAmLS1jb21wYWN0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICZfX25hdi1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgbWF4LWhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX3JhbmdlIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fcmFuZ2UtZW1waGFzaXMge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAmX19yYW5nZS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTMzcHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBnYXA6IDJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTdlN2U3O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX190b2dnbGUtYnRuIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tb250aC1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgJl9fbW9udGgtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgfVxuXG4gICZfX2RheS1zdHJpcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fZGF5LWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gICAgbWluLWhlaWdodDogOTBweDtcbiAgICBtYXgtaGVpZ2h0OiA5MHB4O1xuICAgIHBhZGRpbmc6IDEycHggMnB4IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3JkZXItY29sb3I6ICRteS1zY2hlZHVsZS1hY2NlbnQtYm9yZGVyO1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KC5pcy1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICB9XG4gIH1cblxuICAmX19kYXktbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS1tdXRlZDtcbiAgfVxuXG4gICZfX2RheS1udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxuXG4gICZfX2RheS1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgbWluLWhlaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgfVxuXG4gICZfX2RvdCB7XG4gICAgd2lkdGg6IDVweDtcbiAgICBoZWlnaHQ6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWFjY2VudDtcbiAgfVxuXG4gICZfX2RheS1zdW1tYXJ5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnktZGF0ZSB7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnktd2Vla2RheSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX2RheS1zdW1tYXJ5LXJlc3Qge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAmX19kYXktc3VtbWFyeS1tZXRhIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX190cmFpbmluZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAmX190cmFpbmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbXktc2NoZWR1bGUtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkbXktc2NoZWR1bGUtYm9yZGVyLCA4JSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgIH1cbiAgfVxuXG4gICZfX3RyYWluaW5nLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgNDhweDtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICB9XG5cbiAgJl9fdHJhaW5pbmctdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3RyYWluaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fdHJhaW5pbmctbmFtZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX19lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDM2cHggMTZweCAyMHB4O1xuXG4gICAgJi0tbW9kYWwge1xuICAgICAgcGFkZGluZzogMjhweCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5LW1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX19lbXB0eS1jdGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYmx1ZSwgNiUpO1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5LWN0YS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAvLyBJY29uIGFzc2V0IGlzIHB1cnBsZTsgaW52ZXJ0IHRvIHdoaXRlIG9uIHRoZSBmaWxsZWQgQ1RBXG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbiAgfVxuXG4gICZfX2VtcHR5LWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuICAgIH1cbiAgfVxuXG4gICZfX2Zvb3Rlci1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTJweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbW9udGgtbGFiZWxzLFxuICAmX19tb250aC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gICZfX21vbnRoLWxhYmVscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fbW9udGgtbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fbW9udGgtY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTZweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1lbXB0eSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLmlzLXNlbGVjdGVkIC5teS1zY2hlZHVsZV9fbW9udGgtZGF5LW51bWJlcixcbiAgICAmLmlzLXRvZGF5IC5teS1zY2hlZHVsZV9fbW9udGgtZGF5LW51bWJlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbXktc2NoZWR1bGUtY29udHJvbC1iZztcbiAgICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gICAgfVxuXG4gICAgJi5pcy1zZWxlY3RlZCAubXktc2NoZWR1bGVfX21vbnRoLWRheS1udW1iZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLWFjY2VudDtcbiAgICB9XG4gIH1cblxuICAmX19tb250aC1kYXktbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgfVxuXG4gICZfX21vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTIwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjRweDtcbiAgfVxuXG4gICZfX21vZGFsLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgfVxuXG4gICZfX21vZGFsLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDY0OHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggMjJweCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAwLjAzKSxcbiAgICAgIDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAwLjA4KTtcbiAgfVxuXG4gICZfX21vZGFsLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRteS1zY2hlZHVsZS1ib3JkZXI7XG4gIH1cblxuICAmX19tb2RhbC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gIH1cblxuICAmX19tb2RhbC1jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWluLWhlaWdodDogMjhweDtcbiAgICBtYXgtaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAubXktc2NoZWR1bGUtd3JhcCB7XG4gICAgcGFkZGluZzogOHB4IDE2cHggMjhweDtcbiAgfVxuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgcGFkZGluZzogMjBweDtcblxuICAgIC8vIFdyYXBwaW5nIGlzIHBvaW50bGVzcyB3aGlsZSB0aGUgcm93IGlzIGZyb3plbiBhdCAzNnB4OiB0aGUgb3ZlcmZsb3cganVzdFxuICAgIC8vIGVzY2FwZXMgdGhlIGNhcmQuIExldCBpdCBncm93IGluc3RlYWQuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fZGF5LW5hbWUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgICZfX2RheS1zdHJpcCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgICZfX2RheS1jZWxsIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZzogMTBweCAxcHggOHB4O1xuICAgIH1cblxuICAgICZfX3RyYWluaW5nLXRodW1iIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAvLyBBbmNob3JzIHRoZSB2aWV3IHRvZ2dsZSwgd2hpY2ggaXMgbGlmdGVkIG91dCBvZiB0aGUgY3JhbXBlZCBjb250cm9scyByb3cuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgZ2FwOiAxNnB4O1xuXG4gICAgLy8gVGl0bGUgYW5kIEVkaXQgU2NoZWR1bGUgc3RhY2sgb24gdGhlIGxlZnQgc28gbmVpdGhlciBydW5zIHVuZGVyIHRoZVxuICAgIC8vIHRvZ2dsZSBub3cgcGlubmVkIHRvIHRoZSBjYXJkJ3MgdG9wLXJpZ2h0IGNvcm5lci5cbiAgICAmX19oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMDhweDtcbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLy8gQm90aCB2aWV3IHZhcmlhbnRzIHJlbmRlciBhIHRvZ2dsZSwgYnV0IG9ubHkgb25lIGF0IGEgdGltZSAobmctaWYpLCBzbyBhXG4gICAgLy8gc2luZ2xlIGFic29sdXRlIHNsb3Qgc2VydmVzIHdlZWsgYW5kIG1vbnRoIHZpZXcgYWxpa2UuXG4gICAgJl9fdG9nZ2xlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTJweDtcbiAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgfVxuXG4gICAgLy8gU2l6ZWQgYnkgdGhlaXIgbGFiZWwsIG5vdCBzdHJldGNoZWQ6IHRoZSBjb250YWluZXIgaXMgYXV0by13aWR0aCBub3cuXG4gICAgJl9fdG9nZ2xlLWJ0biB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgICZfX25hdiB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICByb3ctZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgJl9fcmFuZ2Uge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19tb250aC1uYXYge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcm93LWdhcDogNnB4O1xuICAgIH1cblxuICAgICZfX2RheS1zdHJpcCB7XG4gICAgICBnYXA6IDJweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZGF5LWNlbGwge1xuICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgIHBhZGRpbmc6IDhweCAwIDZweDtcbiAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgICZfX2RheS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG5cbiAgICAmX19kYXktbnVtYmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAvLyA3IGNvbHVtbnMgaGF2ZSB0byBmaXQgfjMyNXB4IG9mIGlubmVyIHdpZHRoXG4gICAgJl9fbW9udGgtY2VsbCB7XG4gICAgICBnYXA6IDJweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICB9XG5cbiAgICAmX19tb250aC1kYXktbnVtYmVyIHtcbiAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICZfX21vbnRoLWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG5cbiAgICAmX190cmFpbmluZy10aHVtYiB7XG4gICAgICBmbGV4LWJhc2lzOiAzNnB4O1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiBTaGFyZWQgZmlyc3QtcGFpbnQgcGxhY2Vob2xkZXJzIGZvciBob21lIGRhc2hib2FyZCBjYXJkcy4gUHVsc2UsIGRvbid0XG4gICBzaG93IGVtcHR5LXN0YXRlIGNvcHkg4oCUIHRoYXQgd291bGQgcmVhZCBhcyBcIm5vdGhpbmcgc2NoZWR1bGVkXCIgdGhlbiBqdW1wLiAqL1xuQGtleWZyYW1lcyBob21lLXNrZWxldG9uLXB1bHNlIHtcbiAgMCUsXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjQ1O1xuICB9XG59XG5cbi5ob21lLXNrZWxldG9uLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYW5pbWF0aW9uOiBob21lLXNrZWxldG9uLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgJi0tYmFkZ2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmLS1saW5lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgfVxuXG4gICYtLWxpbmUtc2hvcnQge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogOTZweDtcbiAgfVxuXG4gICYtLXByZXZpZXcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJi0tdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmLS1kYXkge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogNjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmLS1jYXJkIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxufVxuXG4udG9kYXktYXNrc19fc2tlbGV0b24tcm93LFxuLm15LXNjaGVkdWxlX19za2VsZXRvbi10cmFpbmluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTZweDtcbiAgcGFkZGluZzogMTJweCAyMHB4O1xufVxuXG4udG9kYXktYXNrc19fc2tlbGV0b24tcHJldmlldyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5teS1zY2hlZHVsZV9fc2tlbGV0b24tZGF5cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xufVxuXG4ubXktc2NoZWR1bGVfX3NrZWxldG9uLXRyYWluaW5nIHtcbiAgcGFkZGluZzogMTJweCAwO1xufVxuXG4ucHJvZ3Jlc3MtaW5zaWdodHNfX2NhcmQtLXNrZWxldG9uIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgbWF4LXdpZHRoOiA4OHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFVwY29taW5nIHNlc3Npb24gKGF0aGxldGUgaG9tZSDigJQgcmlnaHQgY29sdW1uIHVuZGVyIFByb2dyZXNzIEluc2lnaHRzKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kdXBjb21pbmctY2FyZC1ib3JkZXI6ICRibGFjay0yMDA7XG4kdXBjb21pbmctbGFiZWw6ICM0ZjRmNGY7XG4kdXBjb21pbmctdmFsdWU6ICMxYTFhMWE7XG4kdXBjb21pbmctcHJpbWFyeTogJGJsdWU7XG4kdXBjb21pbmctZGFuZ2VyOiAjZTg1MDNhO1xuJHVwY29taW5nLW1lbnUtYm9yZGVyOiAjZTBlMGUwO1xuXG4udXBjb21pbmctc2Vzc2lvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ5MnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OTJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHVwY29taW5nLWNhcmQtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgJi0tYm9va2VkLWNvbXBhY3Qge1xuICAgICAgaGVpZ2h0OiAxNzBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDE3MHB4O1xuICAgICAgbWF4LWhlaWdodDogMTcwcHg7XG4gICAgICAvLyBEbyBub3QgY2xpcCB0aGUga2ViYWIgbWVudTsgaXQgaGFuZ3MgYmVsb3cgdGhlIGZpeGVkLWhlaWdodCBjYXJkLlxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgIC8vIENlbnRlciB0aGUgYWNjZW50IGJsb2NrIGluIHRoZSBhcmVhIGJlbG93IHRoZSB0aXRsZSBzbyB0aGUgZ2FwIGZyb21cbiAgICAgIC8vIHRoZSB0aXRsZSBiYXNlbGluZSB0byB0aGUgdG9wIG9mIHRoZSBiYXIgbWF0Y2hlcyB0aGUgZ2FwIGZyb20gdGhlIGJhclxuICAgICAgLy8gdG8gdGhlIGNhcmQgYm90dG9tLlxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX2JvZHktLW5vLWpvaW4ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX3Nlc3Npb24sXG4gICAgICAudXBjb21pbmctc2Vzc2lvbl9fbWVudSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAudXBjb21pbmctc2Vzc2lvbl9fbWVudS1saXN0IHtcbiAgICAgICAgei1pbmRleDogMzA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19saW5rLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDIwcHggMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICR1cGNvbWluZy1sYWJlbDtcbiAgfVxuXG4gICZfX3NjaGVkdWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR1cGNvbWluZy1wcmltYXJ5O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgIH1cbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICYtLW5vLWpvaW4ge1xuICAgICAgZ2FwOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3Nlc3Npb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBGaXhlZCBoZWlnaHQgcGVyIGRlc2lnbjsgc2Vzc2lvbiB0ZXh0IGlzIHZlcnRpY2FsbHkgY2VudGVyZWQgYWdhaW5zdCB0aGUgYmFyLlxuICAmX19hY2NlbnQge1xuICAgIGZsZXg6IDAgMCA0cHg7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDg0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6ICR1cGNvbWluZy1wcmltYXJ5O1xuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gICZfX2hlYWRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICAvLyBSZXNlcnZlIHNwYWNlIGZvciB0aGUga2ViYWIgd2l0aG91dCBncm93aW5nIHRoZSByb3cgdGFsbGVyIHRoYW4gdGhlIHRpdGxlLlxuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG4gIH1cblxuICAmX19uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2RldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX2RldGFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fZGV0YWlsLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgbWF4LXdpZHRoOiAxNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fZGV0YWlsLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHVwY29taW5nLXZhbHVlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19kZXRhaWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkdXBjb21pbmctdmFsdWU7XG4gIH1cblxuICAmX19kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTMwMDtcbiAgfVxuXG4gICZfX2pvaW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjkyO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19rZWJhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgbWF4LXdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR1cGNvbWluZy1tZW51LWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgLy8gSXRlbXMgcnVuIGVkZ2UgdG8gZWRnZSBzbyB0aGUgZGl2aWRlciBzcGFucyB0aGUgZnVsbCB3aWR0aDsgY2xpcCB0aGVtXG4gICAgLy8gYmFjayB0byB0aGUgcmFkaXVzIHNvIGhvdmVyIGRvZXMgbm90IHNxdWFyZSBvZmYgdGhlIGNvcm5lcnMuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICR1cGNvbWluZy12YWx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHVwY29taW5nLW1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgfVxuXG4gICAgJi0tZGFuZ2VyIHtcbiAgICAgIGNvbG9yOiAkdXBjb21pbmctZGFuZ2VyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudXBjb21pbmctc2Vzc2lvbiB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDE0cHggMTZweCAxNnB4O1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMTZweCAyNHB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC51cGNvbWluZy1zZXNzaW9uIHtcbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTJweCAxMnB4IDA7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgcGFkZGluZzogMTJweCAxMnB4IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgcGFkZGluZzogMTZweCAxMnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHJvdy1nYXA6IDJweDtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwtdmFsdWUge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19tZW51LWxpc3Qge1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgbWF4LXdpZHRoOiA4MHZ3O1xuICAgIH1cblxuICAgICZfX3NjaGVkdWxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCb2R5TUFQIGNhcmQgKGF0aGxldGUgaG9tZSDigJQgYmV0d2VlbiBVcGNvbWluZyBTZXNzaW9uIGFuZCBQcm9ncmVzcyBJbnNpZ2h0cylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJGJvZHltYXAtY2FyZC1ib3JkZXI6ICRibGFjay0yMDA7XG4kYm9keW1hcC1sYWJlbDogIzRmNGY0ZjtcbiRib2R5bWFwLW11dGVkOiAjNmQ2ZDZkO1xuJGJvZHltYXAtcHJpbWFyeTogJGJsdWU7XG4kYm9keW1hcC1wb29yOiAjRjA0NDM4O1xuJGJvZHltYXAtbW9kZXJhdGU6ICNFNUE2MzM7XG4kYm9keW1hcC1nb29kOiAjMTJCNzZBO1xuJGJvZHltYXAtcmluZy10cmFjazogI2U4ZThlODtcblxuLmJvZHltYXAtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ5MnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OTJweDtcbiAgICBoZWlnaHQ6IDMxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMxMHB4O1xuICAgIG1heC1oZWlnaHQ6IDMxMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9keW1hcC1jYXJkLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDI4cHggMjRweCAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fZW1wdHktdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICRib2R5bWFwLWxhYmVsO1xuICB9XG5cbiAgJl9fZW1wdHktZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDM0MHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRib2R5bWFwLW11dGVkO1xuICB9XG5cbiAgJl9fc3RhcnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9keW1hcC1wcmltYXJ5O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGJvZHltYXAtcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDE2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICAvLyBSaW5nIHN0YXlzIGxlZnQ7IGxhcmdlciBnYXAga2VlcHMgdGhlIGxlZ2VuZCBhdCBpdHMgY3VycmVudCAoY2VudGVyZWQpIHNwb3QuXG4gICAgZ2FwOiA2NXB4O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fcmluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDE4MHB4O1xuICB9XG5cbiAgJl9fcmluZy1zdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG5cbiAgJl9fcmluZy10cmFjayB7XG4gICAgc3Ryb2tlOiAkYm9keW1hcC1yaW5nLXRyYWNrO1xuICB9XG5cbiAgJl9fcmluZy1wcm9ncmVzcyB7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zNXMgZWFzZTtcbiAgfVxuXG4gICZfX3JpbmctbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fcmluZy10b3RhbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM2ZDZkNmQ7XG4gICAgLy8gRXh0cmEgc3BhY2UgYWJvdmUgdGhlIGxhcmdlIG51bWVyYWwg4oCUIE51ZGlzdGEgZGlnaXRzIHNpdCBoaWdoIGluIHRoZVxuICAgIC8vIGVtIGJveCwgc28gZXF1YWwgQ1NTIGdhcHMgc3RpbGwgbG9vayB0aWdodGVyIGFib3ZlIHRoZSBzY29yZS5cbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fcmluZy1zY29yZSB7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fcmluZy1iYW5kIHtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNmQ2ZDZkO1xuICB9XG5cbiAgJl9fbGVnZW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19sZWdlbmQtZG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJi0tcG9vciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keW1hcC1wb29yO1xuICAgIH1cblxuICAgICYtLW1vZGVyYXRlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5bWFwLW1vZGVyYXRlO1xuICAgIH1cblxuICAgICYtLWdvb2Qge1xuICAgICAgYmFja2dyb3VuZDogJGJvZHltYXAtZ29vZDtcbiAgICB9XG4gIH1cblxuICAmX19sZWdlbmQtbmFtZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJvZHltYXAtbXV0ZWQ7XG4gIH1cblxuICAmX19sZWdlbmQtcmFuZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9faGludCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJvZHltYXAtbXV0ZWQ7XG4gIH1cblxuICAmX191cGRhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRib2R5bWFwLXByaW1hcnk7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmJvZHltYXAtY2FyZCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweCAxNHB4O1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyOHB4O1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgZ2FwOiAxNnB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fbGVnZW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fcmluZyB7XG4gICAgICB3aWR0aDogMTYwcHg7XG4gICAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIH1cblxuICAgICZfX3Jpbmctc2NvcmUge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5ib2R5bWFwLWNhcmQge1xuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDEycHggMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEycHggMTJweDtcbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDEycHggMjRweDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fdXBkYXRlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3N0YXJ0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyogUmVzY2hlZHVsZSAvIGNhbmNlbCBtb2RhbHMgZm9yIHRoZSB1cGNvbWluZyBzZXNzaW9uIGNhcmQgKi9cblxuLy8gUmVzY2hlZHVsZSBwaWNrZXIsIHBvcnRlZCBmcm9tIHRoZSBhcHAncyByZXNjaGVkdWxlLXNlc3Npb24tbW9kYWwgcGx1cyBpdHNcbi8vIGRhdGUtdGltZS1waWNrZXIgLyBjYWxlbmRhci1ncmlkIChUYWlsd2luZCB0aGVyZSwgc28gdGhlc2UgYXJlIHRoZSBkZS1AYXBwbHknZFxuLy8gdG9rZW4gdmFsdWVzKS4gTGlrZSAudXBjb21pbmctY2FuY2VsIGl0IGlzIGEgY3VzdG9tIHJvb3QgcmF0aGVyIHRoYW5cbi8vIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2YgdGhlIGxlZ2FjeSBtb2RhbCBjaHJvbWUgYXBwbGllcy5cbiR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoOiAgICAgICAgICAgIDY0MHB4O1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyOiAgICAgICAgICAgMjRweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZTogICAgIDIwcHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1jYWwtd2lkdGg6ICAgICAgICAyODBweDsgLy8gNyB4IDM0cHggZGF5IGNlbGxzICsgMiB4IDIwcHggcGFuZWwgcGFkZGluZ1xuLy8gVGhlIGFwcCdzIHBpY2tlciBzdGFja3MgYXQgNjQwcHguIFRoYXQgaXMgYSBwcm9wZXJ0eSBvZiB0aGlzIHR3by1wYW5lbCBsYXlvdXQsXG4vLyBub3QgYSBwcm9qZWN0IHRpZXIsIHNvIGl0IGlzIGEgYmFyZSBxdWVyeSByYXRoZXIgdGhhbiByZXNwb25kKCkgLSB0aGUgcmVwbydzXG4vLyB0aWVycyBhcmUgJGJwLW1vYmlsZSA3NjhweCBhbmQgJGJwLXBob25lIDQ4MHB4LCBuZWl0aGVyIG9mIHdoaWNoIGlzIHRoaXMuXG4kdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjazogICAgICAgICAgICA2NDBweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLXZpZXdwb3J0LW1hcmdpbjogIDE2cHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1wdXJwbGUtZGlzYWJsZWQ6ICAjYzNhZGYyO1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ2hvc3QtaG92ZXI6ICAgICAgI2ViZWJlYjtcblxuLy8gZm9udC1hd2Vzb21lJ3MgZmEtc3BpbiBydW5zIDAgLT4gMzU5ZGVnLCB3aGljaCBoaXRjaGVzIG9uY2UgcGVyIHJldm9sdXRpb24uXG4vLyBMb2NhbCBrZXlmcmFtZXMgc28gYm90aCBzcGlubmVycyB0dXJuIGNsZWFubHkuXG5Aa2V5ZnJhbWVzIHVwY29taW5nLXJlc2NoZWR1bGUtc3BpbiB7XG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4udXBjb21pbmctcmVzY2hlZHVsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHVwY29taW5nLXJlc2NoZWR1bGUtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICAvLyBUaGUgYXBwIHVzZXMgZHZoLiBUaGVyZSBpcyBubyBhdXRvcHJlZml4ZXIgaW4gdGhpcyBidWlsZCwgYW5kIGFuXG4gIC8vIHVuc3VwcG9ydGVkIHVuaXQgZHJvcHMgdGhlIHdob2xlIGRlY2xhcmF0aW9uIC0gd2hpY2ggd291bGQgbGVhdmUgdGhlIHBhbmVsXG4gIC8vIHdpdGggbm8gbWF4LWhlaWdodCBhdCBhbGwgLSBzbyB2aCBnb2VzIGZpcnN0IGFzIHRoZSBmYWxsYmFjay5cbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgdGhlIHRpdGxlIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBwYWRkaW5nOiAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyIDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgc2Nyb2xsIGNvbnRhaW5lciByZWZ1c2VzIHRvIHNocmluayBiZWxvdyBpdHMgY29udGVudCBpblxuICAgIC8vIGEgY29sdW1uIGZsZXggcGFyZW50IGFuZCB0aGUgcm9vdCdzIG1heC1oZWlnaHQgZG9lcyBub3RoaW5nLlxuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlciAwO1xuICB9XG5cbiAgJl9fc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gIH1cblxuICAmX19zdW1tYXJ5LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19zdW1tYXJ5LWljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc3VtbWFyeS10ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogMCAtI3skdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXJ9O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0yMDA7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE2cHg7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX190eiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3R6LWljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgJl9fcGlja2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBTdGFja2VkLW9ubHkgc3VtbWFyeSBiYXI7IHRoZSBtZWRpYSBxdWVyeSBiZWxvdyBpcyB3aGF0IHJldmVhbHMgaXQuXG4gICZfX2NvbGxhcHNlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMTJweDtcbiAgfVxuXG4gICZfX2NvbGxhcHNlZC1kYXRlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICB9XG5cbiAgJl9fY29sbGFwc2VkLWNoYW5nZSB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19jYWwge1xuICAgIGZsZXg6IDAgMCAkdXBjb21pbmctcmVzY2hlZHVsZS1jYWwtd2lkdGg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDIwcHg7XG4gIH1cblxuICAmX19jYWwtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmX19jYWwtbW9udGgge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gIH1cblxuICAmX19jYWwtbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fY2FsLWFycm93IHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIH1cblxuICAgIC8vIGJ1dHRvbjpkaXNhYmxlZCBpbiBfYmFzZS5zY3NzIHNldHMgY29sb3VyLCBib3JkZXItY29sb3VyIGFuZCBjdXJzb3I7IGFsbFxuICAgIC8vIHRocmVlIGhhdmUgdG8gYmUgcmVzdGF0ZWQgb3IgaXRzIGdyZXlzIGxlYWsgdGhyb3VnaC5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkYmxhY2stMzAwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gICZfX2RvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX2Rvdy1jZWxsIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkZ3JheS03MDA7XG4gIH1cblxuICAmX193ZWVrcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fd2VlayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC8vIEEgZml4ZWQgaGVpZ2h0IHJhdGhlciB0aGFuIHRoZSBhcHAncyBhc3BlY3QtcmF0aW86IDEvMSAtIGxpYnNhc3MgcGFyc2VzIGFcbiAgLy8gYmFyZSBgMSAvIDFgIGluIGEgdmFsdWUgYXMgZGl2aXNpb24sIGFuZCB0aGUgcHJvcGVydHkgaGFzIG5vIGZhbGxiYWNrIGhlcmUuXG4gICZfX2RheSB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogNDBweDtcbiAgICAvLyBidXR0b24gKyBidXR0b24gaW4gX2Jhc2Uuc2NzcyB3b3VsZCBvdGhlcndpc2UgaW5kZW50IGV2ZXJ5IGNlbGwgYWZ0ZXIgdGhlXG4gICAgLy8gZmlyc3QgaW4gZWFjaCB3ZWVrIHJvdy5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLXBhc3Qge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC8vIFBhc3QgZGF5cyBjYXJyeSBuZy1kaXNhYmxlZCwgYW5kIGJ1dHRvbjpkaXNhYmxlZCBpbiBfYmFzZS5zY3NzICgwLDEsMSlcbiAgICAvLyBvdXRyYW5rcyB0aGlzIGNsYXNzICgwLDEsMCkgLSB3aXRob3V0IHJlc3RhdGluZyBpdCB0aGUgZ3JleWVkIGJvcmRlclxuICAgIC8vIHBhaW50cyBvdmVyIHRoZSB0cmFuc3BhcmVudCBvbmUgYW5kIGJveGVzIGV2ZXJ5IHBhc3QgZGF0ZS5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvLyBFdmVyeSBib29rYWJsZSBkYXkgZ2V0cyB0aGUgdGludGVkIHNxdWFyZS4gRGVjbGFyZWQgYmVmb3JlIGlzLXNlbGVjdGVkIHNvXG4gICAgLy8gdGhlIHNvbGlkIHB1cnBsZSBvZiB0aGUgc2VsZWN0ZWQgZGF5IHdpbnMgb24gdGhlIHNhbWUgc3BlY2lmaWNpdHkuXG4gICAgJi5pcy1hdmFpbGFibGUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTIwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuXG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fZGF5LW51bSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2RheS1udW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG5cbiAgICAmLmlzLW90aGVyICB7IGNvbG9yOiAkYmxhY2stMzAwOyB9XG4gICAgJi5pcy1wYXN0ICAgeyBjb2xvcjogJGJsYWNrLTMwMDsgfVxuICAgICYuaXMtd2Vla2VuZCB7IGNvbG9yOiAkbXV0ZWQ7IH1cbiAgICAmLmlzLXRvZGF5ICB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRtdXRlZDtcbiAgICB9XG4gIH1cblxuICAmX192ZGl2aWRlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGJhY2tncm91bmQ6ICRncmF5LTIwMDtcbiAgfVxuXG4gICZfX3Nsb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xuICB9XG5cbiAgJl9fc2xvdHMtZGF5IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gIH1cblxuICAmX19zcGlubmVyLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzMnB4IDA7XG4gIH1cblxuICAmX19zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyOiAyLjVweCBzb2xpZCAkcHVycGxlLTEwMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB1cGNvbWluZy1yZXNjaGVkdWxlLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cblxuICAmX19zbG90cy1lbXB0eSB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkZ3JheS01MDA7XG4gIH1cblxuICAmX19zbG90cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMzQwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICZfX3Nsb3Qge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLy8gVGhlIGxpc3QgaXMgYSBjb2x1bW4gZmxleCBjb250YWluZXIgd2l0aCBhIG1heC1oZWlnaHQsIHNvIHdpdGhvdXQgdGhpc1xuICAgIC8vIHRoZSBzbG90cyBzaHJpbmsgdG8gZml0IGluc3RlYWQgb2Ygc2Nyb2xsaW5nIC0gYSBsb25nIGRheSdzIHNsb3RzIHdvdWxkXG4gICAgLy8gcmVuZGVyIGFzIHNxdWFzaGVkIHNsaXZlcnMuXG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGFnYWluIC0gdGhpcyBsaXN0IGlzIGEgc2libGluZyBydW4gb2YgYnV0dG9ucy5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19zbG90LWNoZWNrIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX2Vycm9yIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTJweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IDEycHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlcjtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweC5cbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGluIF9iYXNlLnNjc3MgYWRkcyBhIGxlZnQgbWFyZ2luIHRoYXQgd291bGQgc3RhY2sgb24gdGhlXG4gICAgLy8gZ2FwIGFib3ZlLlxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYtLWdob3N0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXBjb21pbmctcmVzY2hlZHVsZS1naG9zdC1ob3ZlcjtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTMwMDtcbiAgICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICAgIH1cblxuICAgICAgLy8gU2FtZSByZXN0YXRlbWVudCBhcyB0aGUgY2FsZW5kYXIgYXJyb3dzOiBfYmFzZS5zY3NzIHdvdWxkIGdyZXkgdGhpcyBvdXQuXG4gICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLXJlc2NoZWR1bGUtcHVycGxlLWRpc2FibGVkO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idG4tc3Bpbm5lciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB1cGNvbWluZy1yZXNjaGVkdWxlLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbn1cblxuLy8gSG92ZXIgYm9yZGVycyBvbmx5IHdoZXJlIGhvdmVyaW5nIGlzIHJlYWwsIHNvIGEgdGFwIG9uIHRvdWNoIGRvZXNuJ3QgbGVhdmUgYVxuLy8gc2xvdCBsb29raW5nIHNlbGVjdGVkLlxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3Nsb3Q6bm90KC5pcy1zZWxlY3RlZCk6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gIH1cbn1cblxuLy8gQWJvdmUgdGhlIHN0YWNrIGJyZWFrcG9pbnQgdGhlIHNlY3Rpb24gaGVhZGVyIGlzIGEgcm93LlxuQG1lZGlhIChtaW4td2lkdGg6ICN7JHVwY29taW5nLXJlc2NoZWR1bGUtc3RhY2sgKyAxcHh9KSB7XG4gIC51cGNvbWluZy1yZXNjaGVkdWxlX19zZWN0aW9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjaykge1xuICAudXBjb21pbmctcmVzY2hlZHVsZSB7XG4gICAgJl9fcGlja2VyICAgICB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAmX19jYWwgICAgICAgIHsgZmxleDogMCAwIGF1dG87IH1cbiAgICAmX192ZGl2aWRlciAgIHsgd2lkdGg6IGF1dG87IGhlaWdodDogMXB4OyB9XG4gICAgJl9fc2xvdHMtbGlzdCB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG5cbiAgICAvLyBPbmNlIGEgZGF5IGlzIHBpY2tlZCB0aGUgY2FsZW5kYXIgZm9sZHMgYXdheSB0byB0aGUgc3VtbWFyeSBiYXIuXG4gICAgJl9fcGlja2VyLmlzLWNvbGxhcHNlZCB7XG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY29sbGFwc2VkIHsgZGlzcGxheTogZmxleDsgfVxuXG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY2FsLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3ZkaXZpZGVyLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3Nsb3RzLWRheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnVwY29taW5nLXJlc2NoZWR1bGUge1xuICAgICZfX3RpdGxlICB7IHBhZGRpbmc6ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMDsgfVxuICAgICZfX2JvZHkgICB7IHBhZGRpbmc6IDE2cHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lIDA7IH1cbiAgICAvLyBNdXN0IHRyYWNrIHRoZSByZWR1Y2VkIGd1dHRlciBvciB0aGUgcnVsZSBzdG9wcyBzaG9ydCBvZiB0aGUgcGFuZWwgZWRnZS5cbiAgICAmX19kaXZpZGVyIHsgbWFyZ2luOiAwIC0jeyR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZX07IH1cbiAgICAmX19lcnJvciAgeyBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAwOyB9XG4gICAgJl9fYWN0aW9ucyB7IHBhZGRpbmc6IDEycHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZTsgfVxuICB9XG59XG4iLCIvLyBDYW5jZWwgY29uZmlybWF0aW9uLCBwb3J0ZWQgZnJvbSB0aGUgYXBwJ3MgY29tcG9uZW50cy9jYW5jZWwtc2Vzc2lvbi1tb2RhbFxuLy8gKFRhaWx3aW5kIHRoZXJlLCBzbyB0aGVzZSBhcmUgdGhlIGRlLUBhcHBseSdkIHRva2VuIHZhbHVlcykuIExpa2Vcbi8vIC5wcm9ncmFtLWRlbGV0ZSBpdCBpcyBhIGN1c3RvbSByb290IHJhdGhlciB0aGFuIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2Zcbi8vIHRoZSBsZWdhY3kgbW9kYWwgY2hyb21lIGFwcGxpZXMgYW5kIG5vdGhpbmcgaGVyZSBoYXMgdG8gdW5kbyBpdC5cbiR1cGNvbWluZy1jYW5jZWwtd2lkdGg6IDUxMnB4O1xuJHVwY29taW5nLWNhbmNlbC1ndXR0ZXI6IDI0cHg7XG4kdXBjb21pbmctY2FuY2VsLWdob3N0LWhvdmVyOiAjZWJlYmViO1xuJHVwY29taW5nLWNhbmNlbC1kYW5nZXItaG92ZXI6ICNjMDM5MmI7XG4kdXBjb21pbmctY2FuY2VsLXZpZXdwb3J0LW1hcmdpbjogMTZweDtcblxuLnVwY29taW5nLWNhbmNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR1cGNvbWluZy1jYW5jZWwtd2lkdGg7XG4gIC8vIC5tb2RhbCBpcyBhIGNvbnRlbnQtc2l6ZWQgZmxleCBpdGVtIGluc2lkZSAubW9kYWwtdmlldywgc28gYSBwZXJjZW50YWdlXG4gIC8vIG1heC13aWR0aCBoYXMgbm8gZGVmaW5pdGUgcGFyZW50IHdpZHRoIHRvIHJlc29sdmUgYWdhaW5zdC4gQSB2aWV3cG9ydCB1bml0XG4gIC8vIGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIHRoZSBjYXJkIG9uIGEgcGhvbmUuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHVwY29taW5nLWNhbmNlbC12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyR1cGNvbWluZy1jYW5jZWwtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgdGhlIHF1ZXN0aW9uIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBwYWRkaW5nOiAkdXBjb21pbmctY2FuY2VsLWd1dHRlciAkdXBjb21pbmctY2FuY2VsLWd1dHRlciAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAkdXBjb21pbmctY2FuY2VsLWd1dHRlcjtcbiAgfVxuXG4gICZfX3Byb21wdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuXG4gICAgLy8gVGhlIGJvbGQgc3BhbnMgY29tZSBmcm9tIHRoZSB0cmFuc2xhdGlvbiBzdHJpbmcsIHNvIHRoZXkgYXJlIHN0eWxlZCBoZXJlXG4gICAgLy8gcmF0aGVyIHRoYW4gaW4gdGhlIHRlbXBsYXRlLlxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAmX19maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19vcHRpb25hbCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkbXV0ZWQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciAudXBjb21pbmctY2FuY2VsX190b29sdGlwLFxuICAgICY6Zm9jdXMtd2l0aGluIC51cGNvbWluZy1jYW5jZWxfX3Rvb2x0aXAge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAmX190b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB6LWluZGV4OiA1MDtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMTBweDsgLy8gdHJhbnNsYXRlWCgtNTAlKSB3aXRob3V0IGEgdHJhbnNmb3JtIG9uIHRoZSBhcnJvdydzIGNvbnRhaW5pbmcgYmxvY2tcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHRvb2x0aXA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0b29sdGlwO1xuICAgIH1cbiAgfVxuXG4gICZfX3JlYXNvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gcm93cz1cIjRcIiBhbG9uZSBkb2VzIG5vdCBzdXJ2aXZlIGhlcmU6IHRoZSBiYXJlIGB0ZXh0YXJlYWAgcnVsZSBpblxuICAgIC8vIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIHBpbnMgaGVpZ2h0OiAxMjdweCwgd2hpY2ggb3ZlcnJpZGVzIHRoZVxuICAgIC8vIGludHJpbnNpYyByb3cgaGVpZ2h0IGFuZCByZW5kZXJzIGFzIGZpdmUgbGluZXMuIEFuIGV4cGxpY2l0IGhlaWdodCBvbiB0aGVcbiAgICAvLyBjbGFzcyBvdXRyYW5rcyBpdC4gRm91ciAyMnB4IGxpbmVzICsgMTBweCBwYWRkaW5nIHRvcC9ib3R0b20gKyAxcHggYm9yZGVyXG4gICAgLy8gdG9wL2JvdHRvbSwgc2l6ZWQgYWdhaW5zdCB0aGUgYm9yZGVyLWJveCBzZXQgYWJvdmUuXG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8vIEZpeGVkIHJhdGhlciB0aGFuIHVuaXRsZXNzIHNvIHRoZSBtb2JpbGUgMTZweCBidW1wIGJlbG93IGRvZXMgbm90IGNoYW5nZVxuICAgIC8vIHRoZSBib3ggaGVpZ2h0LlxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJG11dGVkO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1jYW5jZWwtZ3V0dGVyICR1cGNvbWluZy1jYW5jZWwtZ3V0dGVyO1xuICB9XG5cbiAgJl9fYnRuIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8vIHVuc3R5bGUtYnV0dG9uIGNsZWFycyBtaW4vbWF4LWhlaWdodCBidXQgbm90IGhlaWdodCwgYW5kIHRoZSBnbG9iYWwgYnV0dG9uXG4gICAgLy8gcnVsZSBpbiBfYmFzZS5zY3NzIHBpbnMgaGVpZ2h0OiA1MHB4IC0gd2hpY2ggd291bGQgb3ZlcnJpZGUgdGhlIDQ4cHggaGVyZS5cbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGluIF9iYXNlLnNjc3MgYWRkcyBhIGxlZnQgbWFyZ2luIHRoYXQgd291bGQgc3RhY2sgb24gdGhlXG4gICAgLy8gZ2FwIGFib3ZlLlxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYtLWdob3N0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXBjb21pbmctY2FuY2VsLWdob3N0LWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTUwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLWNhbmNlbC1kYW5nZXItaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC8vIF9iYXNlLnNjc3MgcmFpc2VzIGV2ZXJ5IGNvbnRyb2wgdG8gMTZweCBvbiBtb2JpbGUgc28gaU9TIFNhZmFyaSBzdG9wc1xuICAvLyBhdXRvLXpvb21pbmcgb24gZm9jdXMuIFRoZSBjbGFzcyBhYm92ZSBpcyBtb3JlIHNwZWNpZmljIHRoYW4gdGhhdCBydWxlLCBzb1xuICAvLyB0aGUgZXhlbXB0aW9uIGhhcyB0byBiZSByZXN0YXRlZC5cbiAgLnVwY29taW5nLWNhbmNlbF9fcmVhc29uIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudXBjb21pbmctY2FuY2VsIHtcbiAgICAmX190aXRsZSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMjBweCAyMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBdGhsZXRlIFByb2ZpbGUgcGFnZSAoLyMvcHJvZmlsZSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnZpZXctZmxleC5hdGhsZXRlLXByb2ZpbGUtcGFnZSB7XG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gIC13ZWJraXQtZmxleDogMSAwIGF1dG87XG4gIC1tb3otYm94LWZsZXg6IDE7XG4gIC1tcy1mbGV4OiAxIDAgYXV0bztcbiAgZmxleDogMSAwIGF1dG87XG4gIC8vIEZpZ21hJ3MgcGFnZSBncmV5OyBvdmVycmlkZXMgdGhlIHNoYXJlZCAuZ3JleWJnICgjZWZlZmVmKSBmb3IgdGhpcyBwYWdlIG9ubHkuXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY2Zjc7XG59XG5cbiRhdGhsZXRlLXByb2ZpbGUtYWNjZW50LWhvdmVyOiAjNWY0NDk5O1xuJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI6ICNlNWU1ZTU7XG5cbi5hdGhsZXRlLXByb2ZpbGUge1xuICAvLyBUaGUgdGVhbSBkYXNoYm9hcmQgY2FyZCByZXVzZXMgLmF0aGxldGUtcHJvZmlsZSBmb3IgaXRzIHBob3RvIGNvbHVtblxuICAvLyAoX2Rhc2hib2FyZF9hdGhsZXRlLnNjc3MpLCBzbyB0aGUgcGFnZSBib3ggb25seSBhcHBsaWVzIGluc2lkZSB0aGUgcHJvZmlsZVxuICAvLyBwYWdlIHdyYXBwZXIuIFRoZSBfX2VsZW1lbnQgcnVsZXMgYmVsb3cgc3RheSB1bnNjb3BlZC5cbiAgLmF0aGxldGUtcHJvZmlsZS1wYWdlICYge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAvLyA2NDBweCBjb250ZW50IGNvbHVtbiArIDI0cHggcGFkZGluZyBlYWNoIHNpZGUsIHNvIHRoZSB0YWJzLCBjYXJkcyBhbmRcbiAgICAvLyBTYXZlIGZpbGwgdGhlIGJveCBhbmQgdGhlIHBhZ2UgY2VudHJlcyBvbiB0aGUgc2FtZSBheGlzIGFzIHRoZSBmb290ZXIuXG4gICAgbWF4LXdpZHRoOiA2ODhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHggNDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAqLFxuICAgICo6OmJlZm9yZSxcbiAgICAqOjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gICZfX2JhY2sge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICM5NzY4RUI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8vIGZvbnQtc3R5bGUgcGlucyB0aGUgU2VtaUJvbGQgZmFjZSDigJQgTnVkaXN0YSBhbHNvIHNoaXBzIGEgNjAwIGl0YWxpYy5cbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDhweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyBUaGUgdGl0bGUgY2xlYXJzIDIwcHgsIGJ1dCB0aGUgdGFiIGJ1dHRvbnMgYXJlIDUwcHggdGFsbCAoZ2xvYmFsIGBidXR0b25gKVxuICAgIC8vIHdpdGggMjBweCB0ZXh0IGNlbnRyZWQgaW4gdGhlbSwgc28gfjEycHggb2YgdGhhdCBnYXAgaXMgZGVhZCBzcGFjZSBpbnNpZGVcbiAgICAvLyB0aGUgdGFiLiAzMHB4IGhlcmUgcHV0cyB0aGUgc2FtZSB+MzJweCBvZiBkYXlsaWdodCB1bmRlciB0aGUgYmFjayBsaW5rLlxuICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRhdGhsZXRlLXByb2ZpbGUtYWNjZW50LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2JhY2stYXJyb3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIC8vIE1hdGNoIHRoZSBsYWJlbCdzIGxpbmUgYm94IHRvIHRoZSAyMHB4IGljb24gc28gYWxpZ24taXRlbXM6IGNlbnRlciBsaW5lc1xuICAvLyB0aGUgY2hldnJvbidzIG1pZHBvaW50IHVwIHdpdGggdGhlIHRleHQncyBtaWRwb2ludC5cbiAgJl9fYmFjay1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gTnVkaXN0YSdzIGdseXBocyBzaXQgaGlnaCBpbiB0aGUgbGluZSBib3g7IG51ZGdlIGRvd24gdG8gb3B0aWNhbGx5IGNlbnRyZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgJl9fdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhdGhsZXRlLXByb2ZpbGUtYm9yZGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgLy8gTWF0Y2hlcyB0aGUgNjQwcHggY2FyZHMvYWN0aW9ucyBzbyB0aGUgcnVsZSBlbmRzIGF0IFNhdmUncyByaWdodCBlZGdlLlxuICAgIG1heC13aWR0aDogNjQwcHg7XG4gIH1cblxuICAmX190YWIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIGZsb29ycyB3aWR0aCBhdCAxMTBweCwgd2hpY2ggc3RyZXRjaGVkIHRoZSBhY3RpdmUgdGFiJ3NcbiAgICAvLyB1bmRlcmxpbmUgfjI5cHggcGFzdCBcIlBoeXNpY2FsIEluZm9cIi4gVGhlIHVuZGVybGluZSBpcyB0aGlzIGJvcmRlciwgc29cbiAgICAvLyB0aGUgd2lkdGggaGFzIHRvIGNvbWUgZnJvbSB0aGUgbGFiZWwgcGx1cyB0aGUgNHB4IEZpZ21hIHNob3dzIGVhY2ggc2lkZS5cbiAgICBtaW4td2lkdGg6IDA7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIGFsc28gbG9ja3MgaGVpZ2h0IGF0IDUwcHggKGJvcmRlci1ib3gpIGFuZCBjZW50ZXJzIHRoZVxuICAgIC8vIGxhYmVsIGluIGl0LCBzbyB0aGUgMTJweCB0b3AgcGFkIGxvd2VycyB0aGUgdGV4dCA2cHggd2l0aG91dCBtb3ZpbmdcbiAgICAvLyB0aGUgdW5kZXJsaW5lIG9yIGFueXRoaW5nIGJlbG93IGl0LlxuICAgIHBhZGRpbmc6IDEycHggNHB4IDRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG4gIH1cblxuICAmX19lcnJvciB7XG4gICAgYmFja2dyb3VuZDogI2ZkZWNlYztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgfVxuXG4gICZfX3RvYXN0IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICMzNTM1NEI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC8vIEZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0LCBtYXRjaGluZyB0aGUgcHJvZ3JhbXMgdG9hc3RcbiAgICAvLyAoLnByb2dyYW1zLXRvYXN0IGluIF9wcm9ncmFtX2NhcmRzLnNjc3MpLiBUaGUgcmFpbCBvZmZzZXRzIGZvciB0aGVcbiAgICAvLyBjZW50cmUgbGluZSBsaXZlIGJlbG93IHRoZSBibG9jay5cbiAgICBib3R0b206IDMycHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogMzJweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggMTZweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAvLyBPdmVyIHRoZSBwYWdlIGFuZCBpdHMgc3RpY2t5IGhlYWRlcjsgYmVsb3cgLm1vZGFsLXZpZXcgKDEwMDApLlxuICAgIHotaW5kZXg6IDkwMDtcbiAgfVxuXG4gICZfX3RvYXN0LWNoZWNrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gICZfX3RvYXN0LW1lc3NhZ2Uge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX3RvYXN0LWNsb3NlIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMjhweCAhaW1wb3J0YW50O1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3Bob3RvIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICAmX19hdmF0YXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogOTZweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogOTZweDtcbiAgfVxuXG4gICZfX3Bob3RvLWFjdGlvbnMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmX191cGxvYWQtYnRuIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmNmY2Zjc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTQwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBzZXRzIG1pbi9tYXgtaGVpZ2h0IDUwcHg7IGJvdGggbXVzdCBiZSBvdmVycmlkZGVuLlxuICAgIGhlaWdodDogMzZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMTI1cHg7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzkwOTA5MDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgfVxuICB9XG5cbiAgJl9fZGVsZXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDhweCAycHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgJl9fcGhvdG8taGludCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJl9fZmlsZS1pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAvLyBGaWdtYSBzaXplcyB0aGUgcHJvZmlsZSBjYXJkcyBhdCA2NDAgd2lkZSBvbiBib3RoIHRhYnMuXG4gICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICBwYWRkaW5nOiAyNHB4O1xuXG4gICAgJi0tc3BhY2VkIHtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIFBoeXNpY2FsIEluZm8gY2FyZCBpcyA2NDB4MjA0LlxuICAgICYtLXBoeXNpY2FsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDIwNHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYtLWZ1bGwgLmF0aGxldGUtcHJvZmlsZV9fZmllbGQge1xuICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAmLS1mdWxsIHtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2dyb3VwLXNlbGVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi0tb3BlbiB7XG4gICAgICAuYXRobGV0ZS1wcm9maWxlX19ncm91cC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICB9XG5cbiAgICAgIC5hdGhsZXRlLXByb2ZpbGVfX2dyb3VwLWNhcmV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGZpbGw9JyUyMzczNTVCNScgZD0nTTEuNC42TDYgNS4yIDEwLjYuNiAxMiAyIDYgOCAwIDJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZ3JvdXAtc2VsZWN0LXRyaWdnZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDZweCAzNnB4IDZweCAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCB1cHBlcmNhc2VzOyB0aGUgdGFncyBpbmhlcml0IGl0IHdpdGhvdXQgdGhpcy5cbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX2dyb3VwLXRhZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2dyb3VwLXRhZyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjRjJFREZDO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8vIFRoZSB0cmlnZ2VyIGlzIGEgPGJ1dHRvbj4sIHNvIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaGFuZHMgaXRzIGNoaWxkcmVuXG4gICAgLy8gSGVsdmV0aWNhIGFuZCAxcHggdHJhY2tpbmc7IGJvdGggaGF2ZSB0byBiZSBuYW1lZCBleHBsaWNpdGx5IGhlcmUuXG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gZm9udC1zdHlsZSBwaW5zIHRoZSBTZW1pQm9sZCBmYWNlIOKAlCBOdWRpc3RhIGFsc28gc2hpcHMgYSA2MDAgaXRhbGljLlxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGhlaWdodDogMjRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19ncm91cC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgJl9fZ3JvdXAtY2FyZXQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnJTNFJTNDcGF0aCBmaWxsPSclMjM2ZDZkNmQnIGQ9J00xLjQuNkw2IDUuMiAxMC42LjYgMTIgMiA2IDggMCAyeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgIHdpZHRoOiAxMnB4O1xuICB9XG5cbiAgJl9fZ3JvdXAtZHJvcGRvd24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyA2cHggaW5zZXQgZWFjaCBzaWRlIGxlYXZlcyB0aGUgcm93cyBhdCB0aGUgNTc2cHggRmlnbWEgd2lkdGguXG4gICAgcGFkZGluZzogNnB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19ncm91cC1vcHRpb24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIHBpbnMgbWluL21heC1oZWlnaHQgdG8gNTBweDsgYm90aCBuZWVkIG92ZXJyaWRpbmcuXG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgID4gc3BhbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDExNSwgODUsIDE4MSwgMC4wOCk7XG4gICAgfVxuICB9XG5cbiAgJl9fZ3JvdXAtY2hlY2tib3gge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgJHB1cnBsZS02MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMThweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDE4cHg7XG5cbiAgICAvLyBGaWdtYSBrZWVwcyB0aGUgYm94IG91dGxpbmVkIHdoZW4gY2hlY2tlZCBhbmQgZHJhd3MgdGhlIHRpY2sgaW4gYWNjZW50LFxuICAgIC8vIHJhdGhlciB0aGFuIGZpbGxpbmcgdGhlIGJveCBhbmQgcmV2ZXJzaW5nIHRoZSB0aWNrIG91dCBpbiB3aGl0ZS5cbiAgICAmLS1jaGVja2VkOjphZnRlciB7XG4gICAgICBib3JkZXI6IHNvbGlkICRwdXJwbGUtNjAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gVGhlIG1peGluIGVtaXRzIG9uZSBydWxlIHBlciB2ZW5kb3Igc2VsZWN0b3I7IGdyb3VwaW5nIHRoZW0gd291bGQgbWFrZVxuICAgIC8vIGJyb3dzZXJzIGRyb3AgdGhlIHdob2xlIGxpc3Qgb3ZlciB0aGUgb25lIHBzZXVkby1lbGVtZW50IHRoZXkgZG9uJ3Qga25vdy5cbiAgICAvLyBJdCBwcmVkYXRlcyBzdGFuZGFyZCA6OnBsYWNlaG9sZGVyLCBzbyB0aGF0IGdldHMgaXRzIG93biBydWxlIGJlbG93LlxuICAgIC8vIG9wYWNpdHkgYmVjYXVzZSBGaXJlZm94IGRpbXMgcGxhY2Vob2xkZXJzIGJ5IGRlZmF1bHQuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibGFjay00MDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogI2Y2ZjZmNztcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyBmbGF0cGlja3IncyB2aXNpYmxlIGFsdCBpbnB1dCBpcyByZWFkb25seSBhbmQgb3BlbnMgdGhlIGNhbGVuZGFyIG9uXG4gICAgLy8gY2xpY2ssIHNvIGl0IHNob3VsZCByZWFkIGFzIGNsaWNrYWJsZSBsaWtlIHRoZSBzZWxlY3RzIGJlc2lkZSBpdC5cbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi0taW52YWxpZCB7XG4gICAgICBib3JkZXItY29sb3I6ICRyZWQtNTAwO1xuICAgIH1cblxuICAgICYtLXVuaXQge1xuICAgICAgLy8gRmlnbWEgc2l6ZXMgdGhlIHVuaXQgaW5wdXRzIGF0IDI1OXB4OyBzaHJpbmsgb25seSBpZiB0aGUgY2FyZCBpcyBuYXJyb3dlci5cbiAgICAgIGZsZXg6IDAgMSAyNTlweDtcbiAgICAgIG1heC13aWR0aDogMjU5cHg7XG4gICAgICB3aWR0aDogMjU5cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQmVhdCBnbG9iYWwgaW5wdXRbdHlwZT0ndGV4dCddIHsgYm9yZGVyLXJhZGl1czogMnB4IH0gZnJvbSBfYmFzZS5zY3NzXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXQsXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J2VtYWlsJ10sXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4gIHNlbGVjdC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAvLyBTYW1lIGdsb2JhbCBydWxlIGFsc28gc2V0cyBib3JkZXI6IDFweCBzb2xpZCAkZ3JleSBhbmQgcGFkZGluZzogM3B4LCB3aGljaFxuICAvLyBsZWZ0IHRleHQgZmllbGRzIGRhcmtlci1lZGdlZCBhbmQgZmx1c2ggbGVmdCBuZXh0IHRvIHRoZSBlbWFpbCBmaWVsZC4gVGhlXG4gIC8vIHN0YXRlIG1vZGlmaWVycyBhcmUgcmVwZWF0ZWQgaGVyZSBzbyB0aGV5IHN0aWxsIHdpbiBhdCB0aGlzIHNwZWNpZmljaXR5LlxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J3RleHQnXSxcbiAgaW5wdXQuYXRobGV0ZS1wcm9maWxlX19pbnB1dFt0eXBlPSdlbWFpbCddLFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J251bWJlciddIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIHBhZGRpbmc6IDAgMTJweDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG5cbiAgICAmLmF0aGxldGUtcHJvZmlsZV9faW5wdXQtLWludmFsaWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkLTUwMDtcbiAgICB9XG4gIH1cblxuICAvLyBObyBzcGlubmVyIGFycm93cyBvbiB0aGUgbnVtZXJpYyBmaWVsZHMuXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2VsZWN0LXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3NlbGVjdCB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGZpbGw9JyUyMzZkNmQ2ZCcgZD0nTTEuNC42TDYgNS4yIDEwLjYuNiAxMiAyIDYgOCAwIDJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEycHggY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNztcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyA6OnBsYWNlaG9sZGVyIGRvZXNuJ3QgYXBwbHkgdG8gPHNlbGVjdD4uIG5nTW9kZWwgYWRkcyAubmctZW1wdHkgZm9yIHVzLFxuICAgIC8vIGFuZCBpdCBrZXlzIG9mZiAkaXNFbXB0eSwgc28gYSBsZWdpdGltYXRlIGlkIG9mIDAgc3RpbGwgY291bnRzIGFzIGNob3Nlbi5cbiAgICAmLm5nLWVtcHR5IHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBvcGVuIGRyb3Bkb3duIHN0YXlzIHJlYWRhYmxlIHdoaWxlIHRoZSBjbG9zZWQgY29udHJvbCByZWFkcyBncmV5LlxuICAgIG9wdGlvbiB7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX191bml0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX191bml0LWZpZWxkIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX191bml0IHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gICZfX2ZpZWxkLWVycm9yIHtcbiAgICBjb2xvcjogJHJlZC01MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gICZfX2ZpZWxkLWhpbnQge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLy8gS2VlcHMgU2F2ZSBhbGlnbmVkIHRvIHRoZSByaWdodCBlZGdlIG9mIHRoZSA2NDBweCBjYXJkcy5cbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9fc2F2ZSB7XG4gICAgYmFja2dyb3VuZDogI0MzQURGMjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTQ4cHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcblxuICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogI2IxOWFlNjtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtcHJvZmlsZSB7XG4gICAgLy8gUGFnZSBib3ggb25seTsgc2VlIHRoZSBzY29waW5nIG5vdGUgb24gdGhlIG1haW4gLmF0aGxldGUtcHJvZmlsZSBibG9jay5cbiAgICAuYXRobGV0ZS1wcm9maWxlLXBhZ2UgJiB7XG4gICAgICBwYWRkaW5nOiAyNHB4IDE2cHggNDBweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgJl9fcGhvdG8ge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX2lucHV0LS11bml0IHtcbiAgICAgIG1heC13aWR0aDogMjU5cHg7XG4gICAgICB3aWR0aDogMjU5cHg7XG4gICAgfVxuICB9XG59XG5cbi8vIENlbnRyZSB0aGUgc2F2ZSB0b2FzdCBvbiB0aGUgY29udGVudCBjb2x1bW4gcmF0aGVyIHRoYW4gdGhlIHZpZXdwb3J0LCBzYW1lXG4vLyA6aGFzKCkgY29uZGl0aW9ucyAucHJvZ3JhbXMtdG9hc3QgdXNlcyB0byBhZGQgdGhlIHJhaWwgd2lkdGggYmFjay5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtcHJvZmlsZV9fdG9hc3Qge1xuICBsZWZ0OiBjYWxjKDUwJSArICN7JGF0aGxldGUtc2lkZWJhci13aWR0aH0gLyAyKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAtIDMycHgpO1xufVxuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAuYXRobGV0ZS1wcm9maWxlX190b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aH0gLyAyKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aH0gLSAzMnB4KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0LFxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0LFxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAuYXRobGV0ZS1wcm9maWxlX190b2FzdCB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIGdhcDogMTZweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cbiIsIlxuLmNhdGFsb2ctZmVhdHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmY2ZjZjtcbiAgaGVpZ2h0OiA0MDBweDtcblxuICAuZmVhdHVyZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiB0b3A7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5ydW5uaW5nLW1hbiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvcHJvZ3JhbV9jYXRhbG9nX2JhY2tncm91bmQucG5nJyk7XG4gICAgICBcbiAgICAgIC5mZWF0dXJlLWNvbnRlbnQge1xuICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICB9XG5cbiAgICAgIC5tZXNzYWdlLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZlYXR1cmUtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICBsZWZ0OiA4MHB4O1xuICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuOTU7XG5cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBoMiwgLnRpdGxlLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDU1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIHAsIC5tZXNzYWdlLXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmVhdHVyZS1idXR0b24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAzNXB4O1xuICAgICAgbGVmdDogODBweDtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gIH1cblxuICAubWFya2VycyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubWFya2VyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW46IDZweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MWJhZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nLXNlbGVjdGVkIHtcbiAgcGFkZGluZzogMzVweDtcbiAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICB9XG5cbiAgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIH1cblxuICAgIC5uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICB9XG5cbiAgICAucmV0dXJuLWxpbmsge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGV0YWlsLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuaW5mby1yb3ctaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8tcm93IHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG5cbiAgICAgIC5pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBmb250LXNpemU6MTJweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIH1cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNhbXBsZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICB9XG5cbiAgICAgIC52aWRlby1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIzOXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDQyNXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyMzlweDtcbiAgICAgICAgLy8gQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgLy8gbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvLyB9XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1pc3NpbmctbWVkaWEge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgd2lkdGg6IDk5JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZXhlcmNpc2Utc2VsZWN0ZWQge1xuICBwYWRkaW5nOiAzNXB4O1xuXG4gIC50aXRsZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cbiAgICAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC5yZXR1cm4tbGluayB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGV0YWlsLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuaW5mby1yb3ctaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby1yb3cge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWluLWhlaWdodDogOTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gZGl2ICsgZGl2IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgfVxuXG4gICAgICAuaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIH1cblxuICAgICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1yb3cge1xuICAgICAgZm9udC1zaXplOjEycHg7XG4gICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICB9XG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zYW1wbGUtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICAudmlkZW8tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWRlby1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMzlweDtcbiAgICAgICAgbWF4LXdpZHRoOiA0MjVweDtcbiAgICAgICAgbWluLWhlaWdodDogMjM5cHg7XG4gICAgICAgIC8vIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC8vIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLy8gfVxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICAgIH1cblxuICAgICAgICAubWlzc2luZy1tZWRpYSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICB3aWR0aDogOTklO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmV4ZXJjaXNlLWluZm8tY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCA0MDBweCk7XG4gIH1cblxuICAuc2FtcGxlLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMzUwcHgpO1xuXG4gICAgLmZpbGUtaW5wdXQtd3JhcHBlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG5cbiAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgbWF4LWhlaWdodDogMzVweDtcbiAgICAgIH1cblxuICAgICAgPiBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWZpZWxkcyAge1xuICAgIFxuICAgIC53ZWVrLXNlbGVjdGlvbiB7XG4gICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRibHVlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJsdWU7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGJsdWU7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWJkN2VhO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlucHV0ICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICB0ZXh0LWluZGVudDogM3B4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VsZWN0ICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjRDlEQkRDO1xuICAgICAgICBmb250LXNpemU6IDhweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5wcm9ncmFtLWhlYWRlci1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG4ucHJvZ3JhbS1lZGl0LWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDg1cHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcbn1cblxuLnByb2dyYW0tdHlwZS1zZWxlY3Rpb24ge1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICA+IC50eXBlLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQwcHgpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5waWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGJhY2tncm91bmQ6ICNBRkIxQjQ7XG4gICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogIzc1Nzg3YjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cbiAgPiAudHlwZS1pdGVtICsgLnR5cGUtaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIH1cbiAgPiAuY29weS1jb250cm9scyB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICB9XG59XG5cbi5wcm9ncmFtLXNjaGVkdWxlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDVweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMzBweCk7XG4gIH1cbn1cblxuLnByb2dyYW0tZWRpdCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcblxuICAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAucHJvZ3JhbS1zdHJhdGVneSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICBpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgwIDMwcHgpO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgICAgLnN0cmF0ZWd5LW5hbWUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgYXV0byk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgfVxuICAgICAgLnN0cmF0ZWd5LWFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMCAxODBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIgKyAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAucHJvZ3JhbS10ZWNobmlxdWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogI2VmZWZlZjtcbiAgICAuY291bnRlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIC5uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgXG4gICAgICAuaWNvbi1wbHVzIHtcbiAgICAgICAgZm9udC1zaXplOiA4cHg7XG4gICAgICB9XG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLWV4ZXJjaXNlLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICA+IGRpdiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgbWFyZ2luOiAxcHggMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICYuYWN0aXZlLWl0ZW0ge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAucHJvZ3JhbS1leGVyY2lzZSB7XG4gICAgICAgICAgLmRyYWctaWNvbiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgLnNvcnQtaWNvbnMgLmljb246Zmlyc3QtY2hpbGQge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICAgID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgLnNvcnQtaWNvbnMgLmljb246bGFzdC1jaGlsZCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnByb2dyYW0tbm90ZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIH1cbiAgICAucHJvZ3JhbS1leGVyY2lzZSB7XG4gICAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtaW4td2lkdGg6IDBcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLmRyYWctaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI4cHgpO1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg1cHgpO1xuICAgICAgICBjb2xvcjogI2JiYjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5zb3J0LWljb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBjb2xvcjogI2RlZGVkZTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgICAgIC5hdHRyaWJ1dGVzIHtcbiAgICAgICAgICBnYXA6IDVweCAyNXB4O1xuICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzhweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTgwcHgpO1xuICAgICAgICBjb2xvcjogI2RkZDtcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucHJvZ3JhbS1lZGl0LWZvb3RlciB7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgbWFyZ2luOiAxNXB4IDMwcHg7XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLndoaXRlYm9hcmQge1xuICBtaW4td2lkdGg6IDY0MHB4O1xuICB3aWR0aDogMTAwJTtcblxuICAmID4gc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAxNXB4IDMwcHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtc2NoZWR1bGUge1xuICB3aWR0aDogMTAwJTtcblxuICAud2hpdGVib2FyZC1wcm9ncmFtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZzogMzBweCAwIDE1cHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtcHJvZ3JhbSB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDE0MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgcGFkZGluZzogMzBweCAzMHB4IDE1cHg7XG5cbiAgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICB9XG5cbiAgLm9yaWdpbiB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAuZWRpdCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuXG4ud2hpdGVib2FyZC1kYXRlIHtcbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5kYXRlLWlucHV0IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEzMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgdGV4dC1pbmRlbnQ6IDVweDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgLmlucHV0LWljb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuXG4gICAgICBpLmZhIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kYXRlLWRpc2FibGVkIHtcbiAgICAuaW5wdXQtaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRfZ3JleTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodF9ncmV5O1xuICAgIH1cbiAgfVxuXG59XG5cblxuXG4ud2Vlay1saXN0IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcblxuICAud2Vlay1pdGVtIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC53ZWVrLWNvcHkge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDAlKTtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgfVxufVxuXG4uZGF5LWxpc3Qge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0NXB4KTtcbiAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgLmRheS1pdGVtIHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgIG1pbi13aWR0aDogODBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY1LCAxODcsIDIzMSwgMC41KTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRibHVlO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICAgIH1cbiAgfVxufVxuXG4uZGF5LWxpc3Qtc2NoZWR1bGUge1xuXG4gIC5kYXktaXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAuZHJhZy1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDIwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMHB4KTtcbiAgICAgIGN1cnNvcjogbW92ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubmFtZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5kYXktaXRlbSArIC5kYXktaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLnByb2dyYW0tc2VjdGlvbiB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuXG4gICYuYWNjZXB0LWRyb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIC5hY3Rpb24td2l0aC1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5uYW1lID4gaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5uYW1lIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcblxuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLmFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDExMHB4KTtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBpLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyYW0tc2VjdGlvbi1wbGFjZWhvbGRlciB7XG5cbiAgJiA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgbWFyZ2luOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzcGFuLnRleHQge1xuICAgICAgY29sb3I6ICNiYmI7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyYW0tZXhlcmNpc2UtY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogODZweDtcblxuICAmID4gZGl2IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW46IDJweDtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5hY3RpdmUtaXRlbSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgLnByb2dyYW0tZXhlcmNpc2Uge1xuICAgICAgICAuZHJhZy1pY29uIHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hZGQtZXhlcmNpc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgY29sb3I6ICNhYWE7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjQ0REM0Q3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRkVGRUY7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICNDREQzRDc7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLW5vdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgfVxuXG4gIC5wcm9ncmFtLWV4ZXJjaXNlIHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIG1pbi13aWR0aDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtaW4td2lkdGg6IDBcbiAgICB9XG5cbiAgICAuZHJhZy1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI4cHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NXB4KTtcbiAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pbmZvIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG5cbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cblxuICAgICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICBnYXA6IDVweCAyNXB4O1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgY29sb3I6ICNkZGQ7XG4gICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgfVxuICB9XG59XG5cbi5hY2NlcHQtZHJvcC1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkY2RjZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjUsIDIyNSwgMjI1LCAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMjRweDtcblxuICA+IHNwYW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zb3J0LW9yZGVyLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RjZGNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIC41KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuXG4gID4gc3BhbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNjaGVkdWxlLXNlbGVjdGVkLWF0aGxldGVzIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuICAuYXRobGV0ZS1uYW1lcyB7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAuYXRobGV0ZS1uYW1lcy1tb3JlIHtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG5cbi5idWxrLXNjaGVkdWxlLWRpdmlkZXIge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA0N3B4O1xuICBpIHtcbiAgICBjb2xvcjogI0Q3RDlEQTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtZm9vdGVyIHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNhbGVuZGFyLW1lbnUge1xuICBtYXJnaW46IDIwcHggMDtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgXG4gICAgQGluY2x1ZGUgbGFyZ2UtdGFicy1zdHlsZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsYXJnZS10YWJzLXNwYWNpbmc7XG4gIH1cbn1cblxuLmNhbGVuZGFyLXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhbGVuZGFyLW1vbnRoIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgNjkwcHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDY5MHB4KTtcbiAgbWFyZ2luOiAxcHggMCAwOyBcblxuICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcblxuICAgIFxuICAgIC5mYSAge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTBweDsgICAgICBcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjBweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjBweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnllYXItY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHNlbGVjdC55ZWFyLXNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2UobWVudWxpc3QpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4KC4xIDAgMCk7ICAgICAgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBjb2xvcjogJGdyZXk7XG4gICAgICAgIHRleHQtaW5kZW50OiAwcHg7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7ICAgICAgICBcbiAgICAgICAgICByaWdodDogLTEycHg7XG4gICAgICAgICAgY29sb3I6ICNEOURCREM7XG4gICAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2Vlay1kYXktbGFiZWxzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICAgIGNvbG9yOiAjYzBjMGMwO1xuXG4gICAgJi5sZWZ0IHtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg5OS41cHgpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcblxuICAgICAgLmFjY2VwdC1kcm9wLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoOTcuNXB4KTtcbiAgICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjY2NjO1xuICAgIH1cblxuICAgIGRpdjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2NjYztcbiAgICB9XG4gIH1cblxuICAuY2FsZW5kYXItZGF5cyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG5cbiAgICAuY2FsZW5kYXItZGF5IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg5OS41cHgpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4OyBcblxuICAgICAgJi5kYXktYWN0aXZpdGllcyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEI5NkQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGJsdWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgICYucHJvZ3JhbS1yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi5lbXB0eSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgID4gLm1vbnRoLWFiYnJldiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktY29uY2VybiwgLmNhbGVuZGFyLWRheS1leGlzdGluZyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcblxuICAgICAgICBpIHtcbiAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItZGF5LWNvbmNlcm4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItZGF5LXNjaGVkdWxlZCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5pbnB1dC1jdGwge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIDI4MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDI4MHB4KTtcbiAgICBib3gtc2hhZG93OiA2cHggNnB4IDE4cHggMHB4ICM0YTRhNGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTA7XG4gICAgbWFyZ2luOiAxcHggMDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgJi5yaWdodCB7XG4gICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmNhbGVuZGFyLWhlYWRlciB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNXB4KTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FsZW5kYXItd2Vlay1oZWFkZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjhweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzVweCk7XG4gICAgICAgIGNvbG9yOiAjZGZkZmRmO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiAyLjEyNzVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhbGVuZGFyLWRheXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAuY2FsZW5kYXItZGF5IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzVweCk7XG4gICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICBib3JkZXI6IDIuMTI3NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICYuZW1wdHkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgICAgICBib3JkZXI6IDIuMTI3NXB4IHNvbGlkICM5NzY4RUI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtcmFuZ2Uge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWY1ZmQ7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuY2FsZW5kYXItZGF5LW51bWJlciB7XG4gICAgICAgICAgICBjb2xvcjogIzhkOGQ4ZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguZW1wdHkpIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhbGVuZGFyLWRheS1pbmZvIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICBcbiAgLmRheS1kYXRlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW46IDM1cHggMCAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgID4gLmljb24tY2FsZW5kYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cbiAgfVxuXG4gIC5kYXktcHJvZ3JhbSB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgyOTVweCk7XG4gICAgXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC5saWdodC1ncmV5LXRleHQgIHtcbiAgICAgIGNvbG9yOiAjQTdBOEE3O1xuICAgIH1cblxuICAgICYuYWN0aW9uIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLndlZWstbWFpbi13cmFwcGVyIHtcbiAgcGFkZGluZzogMCFpbXBvcnRhbnQ7XG59XG5cbi53ZWVrLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIG1pbi1oZWlnaHQ6IDQyNXB4O1xuICAvKiBoZWlnaHQ6IDQyNTsgKi9cblxuICAmLnNtYWxsIHtcbiAgICBtaW4taGVpZ2h0OiAyMjVweDtcbiAgICAvKiBoZWlnaHQ6IDIyNXB4OyAqL1xuICB9XG4gIFxuICAud2Vlay1idXR0b24tY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4td2lkdGg6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7ICAgICAgICAgICAgIFxuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuICAgICAgJHdlZWstYnV0dG9uLWVkZ2UtcHVsbDogLTI1cHg7XG4gICAgICAuZmEtYW5nbGUtbGVmdCAge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHdlZWstYnV0dG9uLWVkZ2UtcHVsbDtcbiAgICAgIH1cbiAgICAgIC5mYS1hbmdsZS1yaWdodCAge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR3ZWVrLWJ1dHRvbi1lZGdlLXB1bGw7XG4gICAgICB9IFxuICAgIH0gICBcbiAgfVxuXG4gIC53ZWVrLWRheS1jb2x1bW4ge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcbiAgICBtaW4td2lkdGg6IDE0MHB4O1xuXG4gICAgLmRheS1udW1iZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGZsZXgtc3RhcnQpO1xuICAgICAgY29sb3I6ICNhYWE7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW46IDEwcHggMTVweDtcbiAgICB9XG5cbiAgICAud2Vlay1kYXktaW5mby1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuXG4gICAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhYWE7XG4gICAgICB9XG5cbiAgICAgIC53ZWVrLWRheS1wcm9ncmFtIHtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY29sb3I6ICNiYmI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3Rpb24ge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDtcbiAgICB9XG5cbiAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICAgICAgLmRheS1udW1iZXIge1xuICAgICAgICBjb2xvcjogIzgwODA4MDtcbiAgICAgIH1cblxuICAgICAgLndlZWstZGF5LWluZm8tY29udGFpbmVyIHtcbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLndlZWstZGF5LXByb2dyYW0ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAgICAgICAud2Vlay1kYXktcHJvZ3JhbS10aXRsZTpub3QoLmxpZ2h0LWdyZXktdGV4dCkge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC53ZWVrLWRheS1wcm9ncmFtLW5hbWU6bm90KC5saWdodC1ncmV5LXRleHQpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNoYXJ0LW1lbnUge1xuICBtYXJnaW46IDUwcHggMCAzMHB4IDA7XG5cbiAgLmNoYXJ0LW1lbnUtaXRlbSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgQGluY2x1ZGUgbGFyZ2UtdGFicy1zdHlsZTtcbiAgICBjb2xvcjogI2EwYTRhODtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmxpbmUtY2hhcnQge1xuICBtYXJnaW46IDI1cHggMCAwIDA7XG5cbiAgLmxpbmUtY2hhcnQtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNTBweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCg3MDBweCk7XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI3NXB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNTUwcHgpO1xuICAgIH1cbiAgfVxuXG4gIC5saW5lLWNoYXJ0LW1lbnUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW46IDI1cHggMDtcbiAgfVxufVxuXG4ucHJvZ3JhbS1jaGFydCB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg3MDBweCk7XG4gIG1hcmdpbjogMjVweCAwIDAgMDtcbiAgbWluLWhlaWdodDogMzUwcHg7XG5cbiAgLnByb2dyYW0tY29tcGxldGUge1xuICAgIG1hcmdpbjogNXB4IDE1cHg7XG5cbiAgICAucHJvZ3JhbS1pbmZvIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICAgLnByb2dyYW0tdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAucHJvZ3JhbS1uYW1lIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmljb24ge1xuICAgICAgICBjb2xvcjogI2NkY2RjZDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNhbnZhcyB7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICB3aWR0aDogMzEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5zZWxlY3Rpb24tY29tcG9uZW50IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEwMHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgY29udGVudDogJz4nO1xuICAgIGZvbnQ6IDYwMCAxMnB4ICdDb25zb2xhcycsIG1vbm9zcGFjZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2cHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgcGFkZGluZzogMCAwIDNweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogNnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5jaGFydC1sZWdlbmQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogMCAyMHB4O1xuXG4gICYgPiAuZmEge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuXG4gICAgJi5hdmVyYWdlIHtcbiAgICAgIGNvbG9yOiByZ2JhKDIwNywgMjE4LCAyMjAsIDAuNSk7XG4gICAgfVxuXG4gICAgLy8gc2NvcmVNdWx0aXBsZUxpbmVDaGFydCwgd2hpY2ggaXMgd2hhdCB0ZWFtcmVwb3J0Lmh0bWwgcmVuZGVycywgc3RpbGxcbiAgICAvLyBkcmF3cyB0aGlzIGN5YW4gKFNjb3JlTXVsdGlwbGVMaW5lQ2hhcnQuanM6NjQpLlxuICAgICYuc2NvcmUge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMTgyLCAyMzUsIDAuOSk7XG4gICAgfVxuXG4gICAgLy8gc2NvcmVMaW5lQ2hhcnQgd2VudCB0byB0aGUgcmVkZXNpZ24gcHVycGxlLCBhbmQgdGhlIHR3byBkaXJlY3RpdmVzIHNoYXJlXG4gICAgLy8gdGhpcyBsZWdlbmQsIHNvIHRoZXkgbmVlZCBzZXBhcmF0ZSBrZXlzIHJhdGhlciB0aGFuIG9uZSByZXBhaW50ZWQgcnVsZS5cbiAgICAvLyBVc2VkIGJ5IHRlbXBsYXRlcy9jaGFydF8qX3Rlc3QuaHRtbDsgdGhlIHByb2dyZXNzIHJlcG9ydCdzIE92ZXJ2aWV3IGNhcmRcbiAgICAvLyBoYXMgaXRzIG93biAucHJvZ3Jlc3Mtb3ZlcnZpZXdfX2xlZ2VuZC1kb3QuXG4gICAgJi5zY29yZS1saW5lIHtcbiAgICAgIGNvbG9yOiByZ2JhKDE1MSwgMTA0LCAyMzUsIDAuOSk7XG4gICAgfVxuXG4gICAgJi50ZWFtLWF2ZXJhZ2Uge1xuICAgICAgY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC43NSk7XG4gICAgfVxuXG4gICAgJi5jb21wbGV0ZWQge1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDE4MywgMTA1LCAwLjgpO1xuICAgIH1cblxuICAgICYuc2NoZWR1bGVkIHtcbiAgICAgIGNvbG9yOiByZ2JhKDIyMywgMjIzLCAyMjMsIDEpO1xuICAgIH1cbiAgfVxufVxuXG4uY2hhcnQtZGV0YWlscyB7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gIC5jaGFydC1kYXRlLWhlYWRlciAge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBpICB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBcInNoYXJlXCIgZmVhdHVyZSB3aWxsIGNvbWUgbGF0ZXIuLi5cbiAgICB9XG4gIH1cblxuICAuY2hhcnQtZGF0ZSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjJweCk7XG4gICAgY29sb3I6ICM3NTc3N0E7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5tYWluLXNjb3JlIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cblxuICAudmFsdWUtYmFkZ2Uge1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNnB4O1xuICB9XG5cbiAgLnZhbHVlLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgfVxuXG4gIC52YWx1ZS1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA1NnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB9XG5cbiAgLnZhbHVlLWNoYW5nZS1pY29uIHtcbiAgICAmLmZhLXNvcnQtYXNjIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgJi5mYS1zb3J0LWRlc2Mge1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICB9XG5cbiAgICAmLnVuY2hhbmdlZCB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgfVxuXG4gICAgJi5pbmNyZWFzZSB7XG4gICAgICBjb2xvcjogJGdyZWVuO1xuICAgIH1cblxuICAgICYuZGVjcmVhc2Uge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLnZhbHVlLWNoYW5nZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcblxuICAgICYudW5jaGFuZ2VkIHtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICB9XG5cbiAgICAmLmluY3JlYXNlIHtcbiAgICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgfVxuXG4gICAgJi5kZWNyZWFzZSB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICAuaW5mby1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY2hhcnQtc3RhdHMtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIFxuICAudGVzdC1yZXN1bHRzLWJ1dHRvbi1jb250YWluZXIge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMTVweCAwcHg7XG4gIH1cblxuICAuY2hhcnQtc3RhdHMge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZzogMTVweCAwO1xuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgIC52YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgfVxuICB9XG5cbiAgLmNoYXJ0LXN0YXRzLWdyaWQge1xuICAgIC5jaGFydC1zdGF0cyB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMCA1MCUpO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcblxuICAgICAgJjpudGgtY2hpbGQoLW4rMikge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBpZS1jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIH1cblxuICAucGllLWNoYXJ0IHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICYgPiBkaXYge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAucGllLWNoYXJ0LWNhbnZhcyB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg3MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNzBweCk7XG4gICAgfVxuICB9XG5cbiAgLnJwZS1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAucmVkLXRleHQsIC5ncmVlbi10ZXh0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIH1cblxuICAgIGRpdiArIGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG4gIH1cblxuICAucHJvZ3JhbS13ZWVrIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgfVxuXG4gIC50cm9waGllcyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcblxuXG4gICAgLnRyb3BoeS1pbWFnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXRvcDogLTEzcHg7XG4gICAgICAmLnRyb3BoeS1pbWFnZS0tYmFkZ2UgIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRyb3BoeS1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDI4cHgpO1xuICAgICAgbWFyZ2luLXRvcDogLTExcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIGltZyAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudHJvcGh5LXBsYWNlIHtcbiAgICAgIC8vIEBpbmNsdWRlIGZsZXgoMCAxIGF1dG8pO1xuICAgICAgLy8gQGluY2x1ZGUgZmxleCgxKVxuICAgICAgcGFkZGluZzogMCA2cHg7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgIH1cblxuICAgIC50cm9waHktbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMTUwcHgpO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cblxuICAubm8tZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuQG1peGluIGRheWNvbHdpZHRoICB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICB3aWR0aDogMTAwLzcqMSU7XG59XG5cbi5ub3Rlcy1tZW51IHtcbiAgbWFyZ2luOiAxNXB4IDA7XG5cbiAgLm5vdGVzLW1lbnUtaXRlbSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNhMGE0YTg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLm5vdGVzLW1lbnUtaXRlbSArIC5ub3Rlcy1tZW51LWl0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICB9XG59XG5cbi5ub3Rlcy1jYWxlbmRhciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDQ5MnB4KTtcblxuICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBtYXJnaW46IDFweCAxcHggMCAtMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgLmljb24ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC53ZWVrLWRheS1sYWJlbHMge1xuICAgIG1hcmdpbjogMCAxcHggMCAwO1xuICAgID4gZGl2IHtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoNjBweCk7XG4gICAgICBAaW5jbHVkZSBkYXljb2x3aWR0aDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3c7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5jYWxlbmRhci1kYXlzIHtcbiAgICBtYXJnaW46IDAgMXB4IDVweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgLmNhbGVuZGFyLWRheSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM4cHgpO1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGRheWNvbHdpZHRoO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDYycHg7XG4gICAgICBtYXJnaW46IC0xcHggMHB4IDBweCAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NkY2RjZDtcblxuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjY2RjZGNkO1xuICAgICAgJi5jdXJyZW50LWRheSAge1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vICYuZW1wdHkgeyAgICAgICAgXG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICAvLyB9XG5cbiAgICAgICAmLmRheS1hY3Rpdml0aWVzIHtcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDhiMDA7XG4gICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgLy9ib3JkZXItY29sb3I6ICNjMmQ0NzQ7XG4gICAgICAgICAvL2NvbG9yOiAjZWZlZmVmO1xuICAgICAgICAgLy9jdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAvLyY6aG92ZXIge1xuICAgICAgICAgLy8gIGJhY2tncm91bmQtY29sb3I6ICNjMmQ0NzQ7XG4gICAgICAgICAvLyAgY29sb3I6ICNmZmY7XG4gICAgICAgICAvL31cbiAgICAgICB9XG5cbiAgICAgIC8vICYuY3VycmVudC1kYXkge1xuICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJkNDc0O1xuICAgICAgLy8gICBib3JkZXItYm90dG9tOiA0cHggc29saWQgIzU0N2I0MjtcbiAgICAgIC8vICAgY29sb3I6ICNmZmY7XG4gICAgICAvLyB9XG5cbiAgICAgICY6bm90KC5lbXB0eSk6bm90KC5kYXktYWN0aXZpdGllcykge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYmMtc2VjdGlvbiwgLnRsLXNlY3Rpb24sIC5zb2FwLXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uc29hcC1sYWJlbCB7XG4gICYuZmllbGRzLWhlYWRlci5oaWdoLWxldmVsLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgfVxufVxuXG4uYmMtYm9keWZhdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgd2lkdGg6IDgwcHg7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJSc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA2MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgfVxufVxuXG4uYmMtYWxlcnQge1xuICB3aWR0aDogNzUlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udGwtdG90YWwtbG9hZCB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZGNkY2Q7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG59XG5cbi5iYy1lbnRyeS1oZWFkZXIsIC5iYy1lbnRyeSB7XG4gID4gLmZpZWxkLWxhYmVsICsgLmZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5iYy1pbnB1dCB7IFxuICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgfVxuXG4gIC5iYy1maWxsZXIge1xuICAgIG1pbi13aWR0aDogMTBweDtcbiAgICBtYXgtd2lkdGg6IDEwcHg7XG4gIH1cbn1cblxuLmJjLWZpbGxlci1yZXNwIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2OHB4KSB7XG4gICAgbWluLXdpZHRoOiAwIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGwtZW50cnktaGVhZGVyLCAudGwtZW50cnkge1xuICA+IC5maWVsZC1sYWJlbCArIC5maWVsZC1sYWJlbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIH1cblxuICAudGwtc2VsZWN0IHtcbiAgICBtaW4td2lkdGg6IDIxNXB4O1xuICAgIG1heC13aWR0aDogMjE1cHg7XG4gIH1cblxuICAudGwtaW5wdXQgeyBcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIG1heC13aWR0aDogMTAwcHg7XG4gIH1cblxuICAudGwtZmlsbGVyIHtcbiAgICBtaW4td2lkdGg6IDEwcHg7XG4gICAgbWF4LXdpZHRoOiAxMHB4O1xuICB9XG59XG5cbi5yZXNwLW5vdGVzLWNvbHVtbiB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYmMtZW50cnkge1xuICAuYmMtaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICBwYWRkaW5nOiAwIDI4cHggMCAxM3B4OyBcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG4gIC5iYy1pbnB1dC1iZiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDAhaW1wb3J0YW50O1xuXG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICAgIHBhZGRpbmc6IDAgMjhweCAwIDEzcHg7IFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAuYmMtdW5pdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zNHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5iYy11bml0LWJmIHtcbiAgICBtYXJnaW4tbGVmdDogLTI0cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLnRsLWVudHJ5IHtcbiAgLnRsLXNlbGVjdC1pbnB1dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDVweCAxM3B4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgIC5zZWxlY3QtdG9nZ2xlIHtcbiAgICAgIG1pbi13aWR0aDogMTg1cHg7XG4gICAgICBtYXgtd2lkdGg6IDE4NXB4O1xuXG4gICAgICBpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAub3B0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDM3cHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgIG1pbi13aWR0aDogMjIwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAudGwtaW5wdXQgeyBcbiAgICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICB9XG5cbiAgLnRsLWNhbGN1bGF0ZWQtbG9hZCB7XG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2RjZGNkO1xuICAgIH1cbiAgfVxuXG4gIC50bC1kZWxldGUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi5iYy1mcmVlLWZvcm0sIC50bC1mcmVlLWZvcm0ge1xuICB3aWR0aDogNzUlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5zb2FwLWRhdGUge1xuICA+ICoge1xuICAgIHdpZHRoOiAxNzBweDtcbiAgfVxuXG4gIC5kYXRlLWlucHV0ID4gLmlucHV0LWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLWhlaWdodDogMzVweDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgbWF4LXdpZHRoOiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG4uc29hcC10ZXh0LWNvbnRhaW5lciB7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cblxuLnNvYXAtdHJlYXRtZW50cyB7XG4gIC5jaGVja2JveC1pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG5cbiAgLnNvYXAtdHJlYXRtZW50LW9wdGlvbnMge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAuY2hlY2tib3gtaW5wdXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zb2FwLXRyZWF0bWVudC10ZXh0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgLmJhc2ljLWlucHV0IHtcbiAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cbn1cblxuLnNvYXAtb2JqZWN0aXZlIHtcbiAgJi5maWVsZCBkaXYgdGV4dGFyZWEge1xuICAgIGhlaWdodDogODVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG59XG5cbi5mYS1ub3RlcyB7XG4gICAgbWFyZ2luOiAtMTBweCAwcHggMHB4IDEycHg7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogN3B4O1xufVxuXG4ucmVzcC1mb3JtLXBvc3QtYnV0dG9ucyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NjhweCkge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgbWFyZ2luOiAyMHB4IDAgNjBweCAwIWltcG9ydGFudDtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICA+IGJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi50b29sdGlwSGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRvb2x0aXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1pbi13aWR0aDogMzAwcHg7XG5cdG1heC13aWR0aDogMzYwcHg7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcbiAgd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XG5cdG1pbi1oZWlnaHQ6IDcycHg7XG5cdHRvcDogLTEzMCU7XG5cdGxlZnQ6IDY1cHg7XG5cdHotaW5kZXg6IDEwO1xuXHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdHBhZGRpbmc6IDIwcHggMjVweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LWZhbWlseTogTnVkaXN0YS13ZWI7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYig0Niw0Niw0Nik7XG5cdGNvbG9yOiB3aGl0ZTtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGxldHRlci1zcGFjaW5nOiAuMzVweDtcblxuXHQudHRDb250ZW50IHtcblx0XHRjb2xvcjogIzkyOTM5Mjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHR9O1xuXG5cdC50dFRpdGxlIHtcblx0XHRoZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdH07XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdHBhZGRpbmc6IDE1cHggMThweDtcblx0fVxufVxuXG4udG9vbHRpcC1yaWdodCB7IC8vIHJpZ2h0IGlzIHRoZSBkZWZhdWx0XG5cdEBleHRlbmQgLnRvb2x0aXA7XG59XG5cbi50b29sdGlwLWJvdHRvbSB7XG5cdEBleHRlbmQgLnRvb2x0aXA7XG5cdHRvcDogNTVweDtcblx0bGVmdDogLTEyNXB4O1xufVxuXG4udG9vbHRpcC1sZWZ0IHtcblx0QGV4dGVuZCAudG9vbHRpcDtcblx0bGVmdDogaW5oZXJpdDtcblx0cmlnaHQ6IDQ1cHg7XG59XG5cbi50b29sdGlwOmFmdGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMjBweDtcblx0dG9wOiAxNXB4O1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHJnYig0Niw0Niw0Nik7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMjBweCAyMHB4IDIwcHggMHB4O1xuXHRoZWlnaHQ6IDBweDtcblx0d2lkdGg6IDBweDtcblx0Y29udGVudDogXCIgXCI7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4udG9vbHRpcC1yaWdodDphZnRlciB7XG5cdEBleHRlbmQgLnRvb2x0aXAsIDphZnRlcjtcbn1cblxuLnRvb2x0aXAtYm90dG9tOmFmdGVyIHtcblx0QGV4dGVuZCAudG9vbHRpcCwgOmFmdGVyO1xuXHRsZWZ0OiAxMzBweDtcblx0dG9wOiAtMjBweDtcblx0Ym9yZGVyLWNvbG9yOiByZ2IoNDYsNDYsNDYpIHRyYW5zcGFyZW50O1xuXHRib3JkZXItd2lkdGg6IDBweCAyMHB4IDIwcHggMjBweDtcbn1cblxuLnRvb2x0aXAtbGVmdDphZnRlciB7XG5cdEBleHRlbmQgLnRvb2x0aXAsIDphZnRlcjtcblx0bGVmdDogaW5oZXJpdDtcblx0cmlnaHQ6IC0yMHB4O1xuXHRib3JkZXItd2lkdGg6IDIwcHggMHB4IDIwcHggMjBweDtcbn1cblxuLnRvb2x0aXBDbG9zZSB7XG5cdGZsb2F0OiByaWdodDtcblx0cGFkZGluZzogMHB4IDEwcHggM3B4IDBweDtcblx0Y29sb3I6IGxpZ2h0Ymx1ZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRmb250LXNpemU6IDI0cHg7XG59XG5cbkBtaXhpbiBjaGFydC10b29sdGlwLWNhcmV0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMHB4O1xuXHRoZWlnaHQ6IDBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRjb250ZW50OiAnJztcbn1cblxuLmNoYXJ0LXRvb2x0aXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1pbi13aWR0aDogMjU1cHg7XG5cdG1heC13aWR0aDogMzAwcHg7XG5cdG1pbi1oZWlnaHQ6IDEwMHB4O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuXHR6LWluZGV4OiAxO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdC5oZWFkZXIge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiAjZWZlZmVmO1xuXHR9XG5cblx0LmNvbnRlbnQge1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRtYXJnaW4tdG9wOiA2cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXG5cdFx0PiBkaXYge1xuXHRcdFx0QGluY2x1ZGUgZmxleC1yb3coKTtcblx0XHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0XHRcdG1pbi1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyMHB4O1xuXG5cdFx0XHQ+IGkgeyBtaW4td2lkdGg6IDE2cHg7IH1cblx0XHRcdD4gZGl2IHsgbWFyZ2luLWxlZnQ6IDZweDsgfVxuXG5cdFx0XHQmLmNvbXBsZXRlZCB7IGNvbG9yOiAjMTY4ODRlOyB9XG5cdFx0fVxuXHR9XG5cblx0Ji5oaWRkZW4ge1xuXHRcdHZpc2libGl0eTogaGlkZGVuO1xuXHR9XG5cblx0Ji5ib3R0b206YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMTBweCAxMHB4IDAgMTBweDtcblx0fVxuXG5cdCYuYm90dG9tLWxlZnQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMTBweDtcblx0XHRib3R0b206IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMTBweCAxMHB4IDAgMTBweDtcblx0fVxuXG5cdCYuYm90dG9tLXJpZ2h0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdGJvdHRvbTogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xuXHR9XG5cblx0Ji50b3A6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCAxMHB4IDEwcHggMTBweDtcblx0fVxuXG5cdCYudG9wLWxlZnQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMTBweDtcblx0XHR0b3A6IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCAxMHB4IDEwcHggMTBweDtcblx0fVxuXG5cdCYudG9wLXJpZ2h0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHRvcDogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDEwcHggMTBweCAxMHB4O1xuXHR9XG5cblx0Ji5sZWZ0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogLThweDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyZTJlMmU7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMTBweCAwO1xuXHR9XG5cblx0Ji5yaWdodDphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAtOHB4O1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzJlMmUyZTtcblx0XHRib3JkZXItd2lkdGg6IDEwcHggMCAxMHB4IDEwcHg7XG5cdH1cbn1cblxuLmZhIHsgLy8gdGhpcyBmb250IGF3ZXNvbWUgc3R5bGUgKHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkpIGlzIGJyZWFraW5nIHotaW5kZXggYmVoYXZpb3IgYW5kIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGFueSB2aXN1YWwgZWZmZWN0LiAgU28gSSdtIHR1cm5pbmcgaXQgb2ZmLlxuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLnVwbG9hZC1jb250YWluZXIge1xuICAudXBsb2FkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDIwMHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDQwMHB4KTtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2RkZDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICNiYmI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgID4gLnVwbG9hZC1tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgPiAudXBsb2FkLXByZXZpZXcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgfVxuICB9XG5cbiAgPiBpbnB1dFt0eXBlPSdmaWxlJ10ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH0gIFxufVxuXG5kaXYuaW1hZ2UtY29udHJvbFxue1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyODBweCk7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIC5pbWFnZS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gIH1cbiAgLnNpbGVudC1maWxlLWlucHV0IHtcbiAgICB3aWR0aDogMjQwcHg7XG4gIH0gICAgICAgICAgICAgICAgXG59XG5cbi5pbWFnZS1idXR0b25zIHtcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyNXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg1cHgpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxufVxuXG4uYWN0aXZlLXVwbG9hZCB7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzUwcHgpO1xuICBcbiAgLmZpbGUtaW5mbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLmZpbGUtaW5mby1zaXplIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cblxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMThweCk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7XG5cbiAgICA+IC5wcm9ncmVzcy1iYXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMThweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogI2VmZWZlZjtcbiAgICAgIHRleHQtaW5kZW50OiA2cHg7XG5cbiAgICAgICYuc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgfVxuXG4gICAgICAmLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FmMGEyZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufSIsIi5leGVyY2lzZV9jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4KDEgMCA0MDBweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmV4ZXJjaXNlX25hdiB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDQwMHB4KTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg0MDBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcblxuICAuc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYmJiO1xuXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgaGVpZ2h0OiA0OXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LWluZGVudDogMTVweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9J3Jlc2V0J10ge1xuICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNjBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICBpLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGNvbG9yOiAjYmJiO1xuICAgIH1cbiAgfVxuXG4gIC5hZGQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIGkuZmEge1xuICAgICAgQGluY2x1ZGUgZmxleCguMSk7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoLjk3NSk7XG4gICAgfVxuICB9XG5cbiAgLmxpc3Qge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgbWluLWhlaWdodDogMTBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgJiA+IGRpdjpub3QoLmZpbGxlcikge1xuICAgICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcblxuICAgICAgLmRldGFpbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAgICAgLnZpZXctZGV0YWlsIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNnB4O1xuXG4gICAgICAgICAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJvZHktc2lkZXMge1xuICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgICAgICAgJiA+IGRpdiBsYWJlbCBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOXB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYgPiBkaXYgKyBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gZGl2LmZpbGxlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICB9XG4gIH1cblxuICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIC5saXN0IHtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmV4ZXJjaXNlX3NlbGVjdCB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDMwMHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC5saXN0IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAmID4gZGl2Om5vdCguZmlsbGVyKSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXG4gICAgICAuZXhlcmNpc2UtaXRlbSB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICB9XG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNpcmNsZWQtaWNvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDEycHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZGV0YWlsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcblxuICAgICAgICAudmlldy1kZXRhaWwge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG5cbiAgICAgICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm9keS1zaWRlcyB7XG4gICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgICAmID4gZGl2IGxhYmVsIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiA+IGRpdiArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgPiBkaXYuZmlsbGVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIDEwMCUpO1xuICAgIH1cbiAgfVxuXG4gIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgLmxpc3Qge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4uZmlsdGVycyB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDEwMHB4KTtcblxuICA+IGZ1c2lvbi1kcm9wLWRvd24sXG4gID4gZnVzaW9uLW9yZGVyZWQtZHJvcC1kb3duLFxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgNTAlKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAvKioqKiogTk9URSAqKioqKipcbiAgICBzaW5jZSB0aGUgaGVpZ2h0IGlzIGJlaW5nIHJlY2FsY3VsYXRlZFxuICAgIG9ubHkgc2V0IHRoZSBtaW4taGVpZ2h0XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gICAgKioqKiogRUJEIE5PVEUgKioqKioqL1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cbiAgICAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoLjkpO1xuICAgICAgfVxuXG4gICAgICBpLmZhIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm9wdGlvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzk5OTtcbiAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCAjOTk5O1xuICAgICAgbWF4LWhlaWdodDogMjE1cHg7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAmID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gZnVzaW9uLWRyb3AtZG93biA+IGRpdixcbiAgPiBmdXNpb24tb3JkZXJlZC1kcm9wLWRvd24gPiBkaXYge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ4cHgpO1xuICB9XG5cbiAgPiBmdXNpb24tZHJvcC1kb3duLnJlcXVpcmVkLFxuICA+IGZ1c2lvbi1vcmRlcmVkLWRyb3AtZG93bi5yZXF1aXJlZCB7XG4gICAgLnNlbGVjdC10b2dnbGUgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIH1cbiAgfVxufVxuXG4uZXhlcmNpc2UtaXRlbSB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIG1hcmdpbjogMTBweDtcblxuICAuaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleCguMSk7XG5cbiAgICAmLnRvZ2dsZSB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzBweCk7XG4gICAgICBmb250LXNpemU6IDZweDtcblxuICAgICAgJi5kb3duIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgICYucmlnaHQge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmFtZSB7XG4gICAgQGluY2x1ZGUgZmxleCguOSk7XG5cbiAgICAubm8td3JhcC1lbGxpcHNlIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUtaXRlbSB7XG4gICAgei1pbmRleDogMTtcblxuICAgIC5pY29uIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAmLmRyYWdnaW5nLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyICFpbXBvcnRhbnQ7XG5cbiAgICAuaWNvbiB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbi5uby1tYXRjaCB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4vKiBtb2RhbCBqdW5rICovXG4ubW9kYWwtY29udGFpbmVyIHtcbiAgJi5tb2RhbC1leGVyY2lzZS1kZXRhaWwge1xuICAgIGhlYWRlciB7XG4gICAgICAvKiBAaW5jbHVkZSBsb2NrLWhlaWdodCg3NXB4KTsgKi9cbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9vdGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDc1cHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIHNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIH1cblxuICAgICAgJi52aWRlby12aWV3IHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICAgIH1cblxuICAgICAgJi5pbWFnZS12aWV3IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1pc3NpbmctbWVkaWEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgICAgY29sb3I6ICNkZWRlZGU7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgIH1cbiAgfVxuXG4gICYubW9kYWwtZXhlcmNpc2UtZm9ybSB7XG4gICAgaGVhZGVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9vdGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDc1cHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAmLnNtYWxsZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSBsYWJlbCBidXR0b25bdHlwZT0ncmVzZXQnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgfVxuXG4gICAgICAuZmlsdGVycyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAmID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICYubW9kYWwtZXJyb3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIzMHB4O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDQwcHggMTBweCAwO1xuICAgICAgICBoZWlnaHQ6IDE0MHB4O1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcblxuICAgICAgICAmLmxhcmdlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgfVxuICAgICAgICAmLmxhcmdlciB7XG4gICAgICAgICAgbWluLWhlaWdodDogNDUwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgNTAlKTtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYgKyBpLmZhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc2luZ2xlLWxpbmUtZm9ybS1maWVsZHMgbGFiZWwgLmJvZHktc2lkZXMge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdiArIGRpdiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5zaW5nbGUtbGluZS1mb3JtLWZpZWxkcyAuZXZlbi1jb2xzIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgID4gc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDQwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogIzc1Nzc3YTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCArIGxhYmVsIHtcbiAgICAgICAgICA+IHNlbGVjdCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndlZWstc2VsZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICM3NTc3N2E7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsdWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBkcmFnLW4tZHJvcCBqdW5rICovXG4vKiBzaG91bGQgYmUgbW92ZWQgdG8gb3duIGZpbGUgKGNsZWFybHkpICovXG4uZHJhZy1oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59O1xuXG4uZHJhZy1tb3ZlLXNjcm9sbC1hbmNob3Ige1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1NSwgMTU1LCAxNTUsIC4yNzUpO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDE7XG5cbiAgJi50b3Age1xuICAgIHRvcDogMDtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gIH1cbn07XG5cbi5kcm9wLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kcm9wLXRhcmdldCB7XG5cbiAgJjpub3QoLmRyb3AtZW1wdHkpIHtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2NkZDNkNztcbiAgfVxuXG4gICYuZHJvcC10YXJnZXQtb3ZlciB7XG4gICAgJjpub3QoLmFkZC1zZWN0aW9uKSB7XG4gICAgICBib3JkZXI6IDJweCBkYXNoZWQgIzRjYmIxNyAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuYWRkLXNlY3Rpb24gPiBkaXYge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNGNiYjE3ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFkZC1leGVyY2lzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uZHJhZ2dpbmctZWxlbWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAycHggc29saWQgIzg4ODtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkwLCAwLjkwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlciAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIucmVzcC1wcm9ncmFtLW1lbnUge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAuY2F0YWxvZ19jb250YWluZXIgPiBkaXYge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgICAub3BlbmVkLWNvbnRhaW5lcixcbiAgICAuY2xvc2VkLWNvbnRhaW5lciB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgLmNhdGFsb2ctYmFubmVyLFxuICAgIC5jYXRhbG9nLXNlYXJjaCxcbiAgICAuY2F0YWxvZ19uYXZfd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5jYXRhbG9nX2NvbnRhaW5lciB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICAgIHVsLmNhdGFsb2dfbmF2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDM1MHB4KTtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IGRpdi5jYXRhbG9nLXNjcm9sbGFibGUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICA+IGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgPiBkaXYge1xuICAgICAgJi5vcGVuZWQtY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLmNsb3NlZC1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSA1MnB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogNTJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhdGFsb2ctYmFubmVyIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYmViZWI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzY4RUI7XG4gIG1hcmdpbjogMXB4IDA7XG5cbiAgaS5jaXJjbGVkLWljb24ge1xuICAgIG1hcmdpbjogMCAxNXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRibHVlO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4uY2F0YWxvZy1zZWFyY2gge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ViZWJlYjtcbiAgXG4gIGZvcm0ge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcblxuICAgIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgaGVpZ2h0OiA0OXB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzlweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICBidXR0b25bdHlwZT0ncmVzZXQnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nX25hdl93cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2F0YWxvZ19uYXYge1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDM1MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgLmNhdGVnb3J5LWljb24ge1xuICAgIG1hcmdpbjogMCAxOHB4O1xuICAgIG1pbi13aWR0aDogMjBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cblxuICAuYWRkLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgICBtaW4td2lkdGg6IDEycHg7XG4gIH1cbn1cblxudWwuY2F0YWxvZ19uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC5jYXRlZ29yeS1zdGF0ZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LW9wZW4ge1xuICAgICAgLmNhdGVnb3J5LXN0YXRlOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlNjIwXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LWNsb3NlIHtcbiAgICAgIC5jYXRlZ29yeS1zdGF0ZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZTYyZlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpLmV4ZXJjaXNlLXRlY2huaXF1ZSB7XG4gICAgPiBzcGFuIHtcbiAgICAgIHRleHQtaW5kZW50OiAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgID4gdWwge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgbGkge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMjRweDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogMzBweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpID4gdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggMCAwIDA7XG5cbiAgICBsaSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDMwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgID4gdWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgdGV4dC1pbmRlbnQ6IDUwcHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5sb2dpbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuXG4gIC5sb2dpbi1tb2RhbCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNDc2cHgpO1xuICAgIFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZDRkM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VmZWZlZjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogNDdweCAwIDIycHg7XG5cbiAgICA+IGltZyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB9XG5cbiAgICAubG9naW4tYmFubmVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBtYXJnaW46IDI4cHggMTVweCAzMHB4O1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cblxuICAgIC5sb2dpbi1mb3JtIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7ICAgICAgXG5cbiAgICAgIC8vID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgLy8gICBmb250LXdlaWdodDogMjAwO1xuICAgICAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAvLyB9XG5cbiAgICAgIC8vID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgLy8gICBmb250LXdlaWdodDogMjAwO1xuICAgICAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAvLyB9XG5cbiAgICAgID4gaW5wdXQ6Oi1tcy1jbGVhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgID4gaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MXB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIgIHtcbiAgICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICBcbiAgICAgICAgICBvcGFjaXR5OiAxOyAgXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4OyAgICAgXG4gICAgICAgIH1cbiAgICAgICAgKyBpbnB1dCAge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWJ1dHRvbnMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1ldmVubHkpO1xuICAgICAgICBtYXJnaW46IDBweCAzMHB4O1xuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTdweCk7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgXG4gICAgfVxuXG4gICAgLnJlc2V0LWZvcm0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTsgICAgICBcblxuICAgICAgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgPiBpbnB1dCB7XG4gICAgICAgIG1hcmdpbjogMjhweCAwIDA7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUxcHgpO1xuXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuICAgICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgIFxuICAgICAgICAgIG9wYWNpdHk6IDE7ICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICsgaW5wdXQgIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zZWNvbmRQYXNzd29yZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDA7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24tY29sbGVjdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgICAgICAgbWFyZ2luOiAyOHB4IDAgMDtcbiAgICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1N3B4KTtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVzc2FnZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgbWFyZ2luOiAxMXB4IDE1cHg7IC8vIHdoZW4gYSBtZXNzYWdlIGlzIGhlcmUgaXMgc2hvdWxkIGJlIHZlcml0Y2FsbHkgc3BhY2VkIGEgYml0XG4gICAgfVxuXG4gICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzBweCk7XG4gICAgICBtYXJnaW46IDExcHggMTVweDsgLy8gd2hlbiBhIG1lc3NhZ2UgaXMgaGVyZSBpcyBzaG91bGQgYmUgdmVyaXRjYWxseSBzcGFjZWQgYSBiaXRcbiAgICB9XG5cbiAgICAubG9naW4tbGluayB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICA+IGEge1xuICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubG9naW5SZW1lbWJlck1lICB7XG4gIG1hcmdpbjogMjhweCAwIDA7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLmNoZWNrYm94LWlucHV0ICB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGkgIHtcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB9XG4gICAgc3BhbiAge1xuICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgfSBcbiAgfSAgXG59XG4ubG9naW5Gb3Jnb3RQYXNzTGluayAge1xuICBtYXJnaW46IDMxcHggMCAwO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTsgXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNBQUIwQjc7XG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYSAge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIlxuLm1vZGFsLWNvbnRhaW5lciBzZWN0aW9uLnByb2ZpbGUtZm9ybSB7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBtYXJnaW46IDEwcHg7XG4gIG1pbi13aWR0aDogNDAwcHg7XG4gIFxuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgIG1hcmdpbjogNXB4IDlweDtcbiAgICBtYXgtd2lkdGg6IDMyNXB4O1xuXG4gICAgc3BhbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufSIsIi5tb2RhbC1jb250YWluZXIge1xuXG4gICYubW9kYWwtYXRobGV0ZS1mb3JtIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogNzQwcHg7XG5cbiAgICBoZWFkZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb290ZXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzVweCk7XG4gICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICYuc21hbGxlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtaW4td2lkdGg6IDYwMHB4O1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgIH1cblxuICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cblxuICAgICAgZGl2LnNlY3Rpb24tbGFiZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICBkaXYub3B0aW9ucy1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgfVxuICAgICAgZGl2Lm9wdGlvbi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDM1cHg7XG4gICAgICAgIGRpdi5vcHRpb24tbGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDExNXB4KTtcbiAgICAgICAgfVxuICAgICAgICBkaXYuY2hvaWNlcy1jb250YWluZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgLnJhZGlvLWlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVGhlIGZvcm0ncyBzZWxlY3Qgc3R5bGluZyAoYW5kIGl0cyBjYXJldCkgaXMgc2NvcGVkIHRvIHNlY3Rpb24gbGFiZWwsXG4gICAgICAgICAgLy8gc28gdGhlIHJlZ2lzdHJhdGlvbiB0ZXN0IHBpY2tlciBjYXJyaWVzIGl0cyBvd24gaW5zaWRlIHRoaXMgb3B0aW9ucyBibG9jay5cbiAgICAgICAgICAuc2VsZWN0LWlucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwIDI4cHggMCAxMHB4O1xuXG4gICAgICAgICAgICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkuaWNvbi1jYXJldC1kb3duIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAjRDlEQkRDO1xuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnJvdy1jb250YWluZXJcbiAgICAgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgfVxuICAgICAgICAmIC5zcGFjZS1iZXR3ZWVuIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICYubW9kYWwtZXJyb3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIzMHB4O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZG9iLWZpZWxkIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDQwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgMCUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZlZXQtZmllbGQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoLjYgMSAwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmluY2hlcy1maWVsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCguMzk1IDEgMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMTIwcHgpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7ICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLmludmFsaWQtaW5wdXQge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC52YWxpZGF0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIHRvcDogNTVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDYsNDYsNDYpO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDQ2LDQ2LDQ2KTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIGxlZnQ6IDQ1JTtcbiAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNDYsNDYsNDYpIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDBweCAxMHB4IDEwcHggMTBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogMTBweDtcbiAgICAgICAgICAmLm1lYXN1cmVtZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg1NXB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZGF0ZS1pbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmltcGVyaWFsLWhlaWdodCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgICAgbWluLXdpZHRoOiA0NSU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIC8vICYuZmVldCB7XG4gICAgICAgICAgLy8gICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgJi5pbmNoZXMge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH0gICAgICAgICAgXG5cbiAgICAgICAgICAmICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBjb2xvcjogI0Q5REJEQztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAmLmZlZXQge1xuICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgIHJpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmNoZXMge1xuICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmltcGVyaWFsIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGFsLWNvbnRhaW5lci5tb2RhbC1hdGhsZXRlLWZvcm0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIGZvb3RlciB7XG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgLy8gb25seSBkaXJlY3QgY2hpbGQgcm93LWNvbnRhaW5lcnMgKGZvcm0gcm93cykgZ28gdG8gY29sdW1uLCBleGNlcHQgaGVpZ2h0IHJvd1xuICAgICAgLy8gbmVzdGVkIHJvdy1jb250YWluZXJzIChlLmcuIGluc2lkZSBmdXNpb24tY2FsZW5kYXIgLmRhdGUtaW5wdXQpIHN0YXkgYXMtaXNcbiAgICAgID4gLnJvdy1jb250YWluZXI6bm90KC5oZWlnaHQtZmllbGRzLXJvdykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NHB4O1xuXG4gICAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cblxuICAgICAgLmRvYi1maWVsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgfVxuXG4gICAgICA+IC5yb3ctY29udGFpbmVyLnNwYWNlLWJldHdlZW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcblxuICAgICAgICAub3B0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgLm9wdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaW1hZ2UtY29udHJvbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDIwcHggNDBweDtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5zZWxlY3QtYWxsIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLnNlbGVjdC1hdGhsZXRlLWxpc3Qge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgIG1hcmdpbjogNDVweCA2NXB4IDQ1cHggNjVweDtcbiAgICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAuYXRobGV0ZXMge1xuICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAmLmFsbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIubW9kYWwtY29udGFpbmVyIHtcblxuICAmLm1vZGFsLXRlcm1zIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogNzQwcHg7XG4gICAgcGFkZGluZzogMjBweCA0MHB4O1xuICAgIGZvb3RlciB7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiXG4uYWRtaW4tbWVudSB7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2NXB4KTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgICBjb2xvcjogI2VmZWZlZjtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQwcHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIHNwYW4ubWFya2VyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAtMzBweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gIH1cbn1cblxuLmFkbWluLXN1Yi1tZW51IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gIGNvbG9yOiAjYTBhNGE4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gID4gZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgfVxufVxuXG4udGFiLW1lbnUge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0NXB4KTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5NzY4RUI7XG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB9XG4gIH1cbn1cblxuLnRhYi1tZW51OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4udGFiLXZpZXcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi50YWItdmlldy1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59IiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4udGVzdC1jb250YWluZXItaGVhZGVyICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRtYXJnaW4tdG9wOiAyNXB4O1x0XG5cdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cdH1cblx0LnRpdGxlICB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMzQuNXB4O1xuICAgICAgICBjb2xvcjogIzc1Nzg3QjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcdFxuXHRcdG1pbi1oZWlnaHQ6IDQ2cHg7XG5cdH0gXG5cdC5tYWluLWNvbCAge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XHRcdFxuXHR9XG5cdC5zaWRlLWNvbCAge1x0XHRcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcdFxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcdFxuXHRcdH1cblx0XHQ+IGRpdjpub3QoW2NsYXNzXSkgIHtcblx0XHRcdGZvbnQtc2l6ZTogMTYuNTlweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjMxcHg7XHRcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdH1cblx0fVxufVxuXG4udGVzdC1yZXN1bHQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4udGVzdC1yZXN1bHQtaGVhZGVyIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICAudGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDM0LjVweDtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuNnB4O1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXI7XHRcblx0XHRtaW4taGVpZ2h0OiA0NnB4OyAgICAgICAgXG4gICAgICAgIG1hcmdpbjogMCAwIDZweDsgICAgICAgIFxuICAgIH07XG59XG5cbi5pbnB1dC1yZXN1bHRzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyAgXG59XG5cbi5yZXN1bHRzLWNvbHVtbi1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGNvbHVtbi1jb3VudCgyKTtcbiAgICBAaW5jbHVkZSBjb2x1bW4tZ2FwKDRlbSk7ICBcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0XHRcdEBpbmNsdWRlIGNvbHVtbi1jb3VudCgxKTtcblx0XHR9IFxufVxuXG4uZXhlcmNpc2UtZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgY29sdW1uLW5vLWJyZWFrKCk7ICBcbn1cblxuLmxpbmtlZC1yZXN1bHRzLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMzQuNXB4O1xuICBjb2xvcjogIzc1Nzg3QjtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAtMC42cHg7ICBcbn1cblxuLnRlc3RlZC1ieSB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6ICM3NTc3N0E7XG5cdGxldHRlci1zcGFjaW5nOiAwLjRweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbi5wZXJmb3JtLWFkZGl0aW9uYWwtcmVzdWx0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbn1cblxuLnBlcmZvcm1hbmNlLXJlc3VsdHMgIHsgIFxuXHRwYWRkaW5nOiA4MHB4IDAgODBweDtcblx0bWF4LXdpZHRoOiA3NzhweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdC5oMiAge1xuXHRcdG1hcmdpbjogMCAwIDIwcHg7XG5cdH1cblx0c2VjdGlvbiAge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlIDogYXZvaWQ7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7ICAgIFxuXHRcdCsgc2VjdGlvbiAge1xuICAgICAgcGFkZGluZy10b3A6IDMycHg7XG5cdFx0fVxuXHR9XG59XG5cbi5wZXJmb3JtLW5vdGVzLXNlY3Rpb24ge1xuICBtYXgtd2lkdGg6IDc3OHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAwIDEyMHB4IDA7XG4gIC5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiAwIDAgMTJweDtcbiAgfVxuICAucHJvc2Uge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjOTI5MzkyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLnN0cmVzcy1pbmRleC1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7XG5cdGNhbnZhcyB7XG5cdFx0d2lkdGg6IDExMjRweDtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cdH1cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbiAgPiAuaGVhZGVyICB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHRcdC50aXRsZSAge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGNvbG9yOiAjNzU3ODdCO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdG1hcmdpbjogMCAwIDE4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5jYXQtaGVhZGVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3c7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM3NTc4N0I7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDQwcHggMCAxOHB4O1xufVxuLmNhdC1zY29yZSAge1xuXHRjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cdCYuZ3JlZW4gIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUtZ3JlZW47XG5cdFx0KyAuZG90ICB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUtZ3JlZW47XG5cdFx0fVxuXHR9XG5cdCYueWVsbG93ICB7XG5cdFx0YmFja2dyb3VuZDogJHNjb3JlLXllbGxvdztcblx0XHQrIC5kb3QgIHtcblx0XHRcdGJhY2tncm91bmQ6ICRzY29yZS15ZWxsb3c7XG5cdFx0fVxuXHR9XG5cdCYucmVkICB7XG5cdFx0YmFja2dyb3VuZDogJHNjb3JlLXJlZDtcblx0XHQrIC5kb3QgIHtcblx0XHRcdGJhY2tncm91bmQ6ICRzY29yZS1yZWQ7XG5cdFx0fVxuXHR9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNsaW5pY2FsLWZpZWxkIHtcbiAgICBtaW4taGVpZ2h0OiBpbmhlcml0O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbn1cblxudGV4dGFyZWEge1xuICAgICYuY2xpbmljYWwtbm90ZXMge1xuICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG59XG5cbi5jbGluaWNhbC1zdWItbm90ZSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4OyAgICBcbn1cblxuLnRyZWUtbGluZSB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2JiYjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcbn1cblxuLmNsaW5pY2FsLW5vdGVzLXNlY3Rpb24ge1xuICAgIG1hcmdpbjogMzhweCAwIDYwcHg7XG4gICAgbWF4LXdpZHRoOiA1NjBweDtcbn1cblxubGFiZWwuY2xpbmljYWwtZm9ybS1maWVsZCAge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMCA0MHB4O1xufVxuXG5oci5jbGluaWNhbC1yZXBvcnQtbGluZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogI0Q4RDhEODtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuc3Bhbi5jbGluaWNhbC1sYWJlbCAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM3NTc3N0E7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbmZ1c2lvbi1vcmRlcmVkLWRyb3AtZG93biB7XG4gICAgJi5jbGluaWNhbC1kcm9wLWRvd24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICBtYXgtd2lkdGg6IDYyNnB4O1xuICAgICAgICB3aWR0aDogNjI2cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAgICAgICA+IGRpdi5jb2x1bW4tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNlbGVjdC10b2dnbGUge1xuICAgICAgICAgICAgc3Bhbi5maWx0ZXJlZCB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgLm9wdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICM5OTk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCAjOTk5O1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2xpbmljYWwtc2lnbmF0dXJlIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Y29sb3I6ICM5MjkzOTI7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMTVweCAwcHggMTVweDtcbiAgfVxufVxuXG4ucHJpbnQtb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuLnRlc3QtYXRobGV0ZS1uYW1lIHtcbiAgY29sb3I6ICM3NTc3N0E7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjMycHg7XG59XG5cbi5wZXJmb3JtLXNlbGVjdCB7XG4gIG1pbi13aWR0aDogMTMzcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM3NTc3N0E7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNEOEQ4RDg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgaGVpZ2h0OiAzOHB4O1xufVxuXG4ucmVjb21tZW5kZWQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICRyZWQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuUitSIERhaWx5IFRlc3QgdjJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaDMge1xuICBzcGFuIHtcbiAgICBjb2xvcjogJGJsdWU7XG4gIH1cbn1cblxuLnJyLW1lbnUge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgaGVpZ2h0OiA1NXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRfZ3JleTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuY3VzdG9tIHtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgICAgICAtbXMtZmxleDogMTtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRsaWdodF9ncmV5O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDU1cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucnIta2V5IHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5O1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY29sb3I6ICRibHVlO1xuICBsYWJlbCB7XG4gICAgd2lkdGg6IDMzLjMlO1xuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBzdHlsZXMgZm9yIHRoZSByZXBlYXRlZCBzaGlmdCB0ZXN0XG4ucmVwZWF0ZWQtc2hpZnQtbGF5b3V0IHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgLnRlc3Qtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cbiAgICAuZHJvcC1vZmYge1xuICAgICAgY29sb3I6ICM5NzY4RUI7IFxuICAgICAgZm9udC1zaXplOiAxOHB4OyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjYyO1xuICAgIH1cbiAgICAubWVhc3VyZW1lbnQtZmllbGQge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyODlweDtcbiAgICAgIH1cbiAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyM3B4O1xuICAgICAgfSAgICAgIFxuICAgIH1cbiAgfVxuICAubWVhc3VyZW1lbnQtbGFiZWwge1xuICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IFxuICAgIHdpZHRoOjEwcHhcbiAgfVxufVxuXG4vLyBzdHlsZXMgZm9yIHRoZSB5LWJhbGFuY2UgdGVzdHNcbi55LWJhbGFuY2UtbGF5b3V0IHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgLnRlc3Qtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICAgIC5zdWItbGFiZWwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICAgIH1cbiAgICAuZGlmZiB7XG4gICAgICBtYXJnaW4tbGVmdDogNTFweDtcbiAgICAgIGNvbG9yOiAjOTc2OEVCOyBcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgXG4gICAgICBsaW5lLWhlaWdodDogMS45MjtcbiAgICB9XG4gICAgLm1lYXN1cmVtZW50LWZpZWxkIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjc1cHg7XG4gICAgICB9XG4gICAgICAubWVhc3VyZW1lbnQtbGFiZWwge1xuICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7IFxuICAgICAgICB3aWR0aDoxMHB4XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHN0eWxlcyBmb3IgbWVhc3VyZW1lbnQgZ3JvdXBzXG4ubWVhc3VyZW1lbnQtZ3JvdXAge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAudGVzdC1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLnN1Yi1sYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gICAgfSAgICBcbiAgICAubWVhc3VyZW1lbnQtZmllbGQge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjNweDtcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNzVweDtcbiAgICAgIH1cbiAgICAgIC5tZWFzdXJlbWVudC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDsgXG4gICAgICAgIHdpZHRoOjEwcHhcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5AbWl4aW4gY2hhbmdlLWluZGljYXRvciB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgbWFyZ2luOiAwIDEwcHg7XG5cbiAgJi5pbmNyZWFzZSB7IFxuICAgIGNvbG9yOiAjMjBiNzY5OyBcbiAgICBpLmZhIHtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG4gIH1cblxuICAmLmRlY3JlYXNlIHsgXG4gICAgY29sb3I6ICNjNDJhM2I7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxuXG4gICYucGVyZm9ybS1pbmNyZWFzZSB7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cbiAgfVxuXG4gICYucGVyZm9ybS1kZWNyZWFzZSB7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxuXG4gIGkuZmEge1xuICAgIG1pbi13aWR0aDogMTJweDtcbiAgfVxufVxuXG4udGVzdC1yZXN1bHRzLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlOyAgXG4gIHdpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOyBcbn1cblxuLnJlcG9ydHMtcmVzcC1oZWFkZXIge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoY29sdW1uKTtcbiAgICAucmVzcC1oZWFkZXItYWN0aW9ucyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtb3B0aW9ucyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIG1hcmdpbjogMzBweCAwIDVweDtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLmRhdGUtcmFuZ2VzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGdhcDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtbm9kYXRhIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ucmVwb3J0LWNoYXJ0LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cbiAgLnJlcG9ydC1jaGFydC1kZXRhaWxzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cbiAgICAucmVwb3J0LWNoYXJ0LWRldGFpbCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuXG4gICAgICAmLnRlYW0sICYudG90YWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMzMlIC0gMThweCk7XG4gICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDMzJSAtIDE4cHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5yZXBvcnQtZGV0YWlsLWNoYXJ0LWxpbmUge1xuICAgICAgICA+IGNhbnZhcyB7XG4gICAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXIge1xuXG4gICAgICB9XG5cbiAgICAgIC5zY29yZS1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG5cbiAgICAgICAgLnNjb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhbmdlIHtcbiAgICAgICAgICBAaW5jbHVkZSBjaGFuZ2UtaW5kaWNhdG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC50cm9waGllcyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudHJvcGh5LXBsYWNlIHtcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAucmVwb3J0LXN1bW1hcnktY29udGFpbmVyIC8gLnJlcG9ydC1zdW1tYXJ5IHVzZWQgdG8gc2l0IGhlcmUuIFRoZSBwcm9ncmVzc1xuLy8gcmVwb3J0IGlzIHRoZSBvbmx5IHZpZXcgdGhhdCBldmVyIHJlbmRlcmVkIHRoZW0sIGFuZCBpdCBub3cgcmVuZGVyc1xuLy8gLnByb2dyZXNzLXN1bW1hcnkgaW5zdGVhZCAtIHNlZSBfcHJvZ3Jlc3Nfc3VtbWFyeS5zY3NzLlxuXG4ucmVwb3J0LWRldGFpbHMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuXG4gIC50aXRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEwMjRweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLnJlcG9ydC1kZXRhaWxzIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLmNoYW5nZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLThweDtcbiAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBjaGFuZ2UtaW5kaWNhdG9yO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuICBcbiAgLm5hbWVzLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBtaW4td2lkdGg6IDI1MHB4OyAgICBcblxuICAgID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICAuaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJlMmUyZTtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICB9XG5cbiAgICAgICYuc3ViLXRvdGFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgICAgY29sb3I6ICM3NTc4N2I7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAmICsgLnN1Yi10b3RhbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnRvdGFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5kZXRhaWwtcm93LXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTVweDsgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmluZm8tY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgbWluLXdpZHRoOiAxMTBweDtcbiAgICB9XG5cbiAgICAuaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zY29yZXMtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgb3ZlcmZsb3cteTogdW5zZXQ7XG4gICAgICBvdmVyZmxvdy14OiB1bnNldDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgbWluLXdpZHRoOiAyMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAuaGVhZGVyLXJvdyB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cblxuICAgICAgLmRldGFpbC1yb3cge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG5cbiAgICAgICYucmlnaHQtbGVmdCB7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgbWluLXdpZHRoOiA1NXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgICAgICAgJi5yaWdodC1sZWZ0IHtcbiAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA1NXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY2hhbmdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtYm9keW1hcCB7XG4gIG1heC1oZWlnaHQ6IDIxM3B4O1xuICBtYXgtd2lkdGg6IDEwMHB4O1xufVxuXG4ucHJvZ3Jlc3MtcmVwb3J0LWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnByb2dyZXNzLXJlcG9ydC1ib2R5bWFwLWNvbnRhaW5lciB7XG4gIC8vIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLyogLnByb2dyYW0tZ3JvdXAtZHJvcGRvd24tY29udGFpbmVyIGFuZCAucmVwb3J0LXByb2dyYW1zLWNvbnRhaW5lciBsaXZlZCBoZXJlLlxuICAgQm90aCB3ZXJlIG1hcmt1cCBvbiB0aGUgUHJvZ3JhbXMgdGFiIG9ubHkgKHByb2dyZXNzcmVwb3J0Lmh0bWwpLCB3aGljaCBub3dcbiAgIHJlbmRlcnMgLnByb2dyYW1zLWRldGFpbHMgaW5zdGVhZCAtIHNlZSBfcHJvZ3JhbXNfZGV0YWlscy5zY3NzLiBOb3RoaW5nIGVsc2VcbiAgIGluIGVpdGhlciBidW5kbGUgcmVmZXJlbmNlZCB0aGVtLiAqL1xuXG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLyogVGFiIGJhciArIGhlYWRlciBhY3Rpb25zIGZvciB0aGUgcHJvZ3Jlc3MgcmVwb3J0IHBhZ2UgKC9yZXBvcnRzLzphdGhsZXRlSWQpLlxuXG4gICBUaGUgdW5kZXJsaW5lIHRhYnMgYXJlIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIGF0aGxldGUgcHJvZmlsZSBwYWdlXG4gICAoX3Byb2ZpbGVfYXRobGV0ZS5zY3NzKS4gVG9rZW5zIGFyZSByZXN0YXRlZCBsb2NhbGx5IHJhdGhlciB0aGFuIHJlYWNoaW5nXG4gICBmb3IgJGF0aGxldGUtcHJvZmlsZS0qLCB3aGljaCBpcyBmaWxlLWxvY2FsIHRvIHRoYXQgcGFydGlhbCBieSBjb252ZW50aW9uLlxuXG4gICBFdmVyeXRoaW5nIGhlcmUgbGl2ZXMgaW5zaWRlIC5wcmludC1ub2RlJ3MgLm5vcHJpbnQgaGVhZGVyLCBzbyBub25lIG9mIGl0XG4gICByZWFjaGVzIHRoZSBqc1BERiBjYXB0dXJlIGluIHRlc3RfcmVzdWx0c19wZGYuanM6Z2VuZXJhdGVQcm9ncmVzc1JlcG9ydC5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChmb2xkIGJvcmRlcnMgaW50byBmaXhlZFxuICAgc2l6ZXMgYnkgaGFuZCksIG5vIGF1dG9wcmVmaXhlciwgYW5kIGEgZ2xvYmFsIGBidXR0b25gIHJ1bGUgdGhhdCBmb3JjZXNcbiAgIG1pbi13aWR0aCAxMTBweCArIHVwcGVyY2FzZSArIGEgbG9jay1oZWlnaHQgLSBzZWUgdW5zdHlsZS1idXR0b24uICovXG5cbi8vIEFjdGl2ZSB0YWIgbGFiZWwgb25seS4gRGVlcGVyIHRoYW4gJHB1cnBsZS01MDAsIHdoaWNoIHN0aWxsIGRyYXdzIHRoZVxuLy8gdW5kZXJsaW5lIGJlbmVhdGggaXQuXG4kcHJ0LWFjdGl2ZS1pbms6ICAgICM2OTQxYzY7XG5cbi8vIFZlcnRpY2FsIGFsaWdubWVudCB3aXRoIHRoZSBzaWRlYmFyIHJhaWwuXG4vL1xuLy8gLnNpZGViYXItaGVhZGVyIChfcHJvZmlsZV9hdGhsZXRlLnNjc3M6NjYyLTY5NSwgOjY5Ni03MjEpIGlzIDE2cHggcGFkZGluZyArXG4vLyBhIDIycHggdG9nZ2xlIGdseXBoICh0YWxsZXIgdGhhbiB0aGUgMjFweCB0aXRsZSBpdCBzaXRzIGJlc2lkZSkgKyAxNnB4XG4vLyBwYWRkaW5nICsgYSAxcHggYm90dG9tIHJ1bGUsIG1lYXN1cmVkIGZyb20gdGhlIHJhaWwncyB0b3A6XG4kcHJ0LXNpZGViYXItcnVsZS15OiAgMTZweCArIDIycHggKyAxNnB4ICsgMXB4OyAgIC8vIDU1cHhcblxuLy8gVGhlIHJhaWwgaXMgZml4ZWQgYXQgYHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodCgrIHN1YmhlYWRlcilgIGFuZFxuLy8gLm1haW4tdmlldyByZXNlcnZlcyB0aGUgc2FtZSB2YWx1ZSBhcyBwYWRkaW5nLXRvcCwgc28gdGhlIHR3byBzdGFja3Mgb3VnaHRcbi8vIHRvIHNoYXJlIGEgdG9wIGVkZ2UgLSBidXQgbWVhc3VyZWQgYWdhaW5zdCBhIHJ1bm5pbmcgYnVpbGQgdGhlIGNvbnRlbnRcbi8vIGNvbHVtbiBzdGFydHMgMjBweCBsb3dlci4gVGhlIGxpa2VseSBzb3VyY2UgaXMgdGhlIC52aWV3LXN0YXRpYyB3cmFwcGVyXG4vLyBhcm91bmQgdGhlIGF0aGxldGVfc2VsZWN0aW9uX2JhciBpbmNsdWRlOiBpdCBpcyBvbmx5IHB1bGxlZCBvdXQgb2YgZmxvdyBieVxuLy8gYC5tYWluLXZpZXc6aGFzKC5hdGhsZXRlLXNlbGVjdGlvbikgPiAuaGVhZGVyLWNvbnRlbnQgKyAqYCwgYW5kIGluIHRoZVxuLy8gcHJhY3RpdGlvbmVyIHNpZGViYXIgdmlldyB0aGF0IGJhciBpcyByZXBsYWNlZCBieSB0aGUgbWVtYmVyIGNhcmQsIHNvIHRoZVxuLy8gd3JhcHBlciBzdGF5cyBpbiBmbG93IGFuZCBjb250cmlidXRlcyBpdHMgb3duIGhlaWdodC5cbi8vXG4vLyBTdWJ0cmFjdGluZyBpdCBpcyB3aGF0IGFjdHVhbGx5IGxhbmRzIHRoZSB0d28gcnVsZXMgb24gdGhlIHNhbWUgcm93LiBJZiB0aGF0XG4vLyB3cmFwcGVyIGV2ZXIgZ29lcyBhd2F5IHRoaXMgYmVjb21lcyAyMHB4IG9mIG1pc3NpbmcgZ2FwLCBub3QgYSBzaWxlbnRcbi8vIG1pc2FsaWdubWVudC5cbiRwcnQtY29udGVudC10b3Atb2Zmc2V0OiAyMHB4O1xuXG4vLyBUYWIgdmVydGljYWwgbWV0cmljcy4gVGhlIGxhYmVsJ3MgbGluZSBib3ggdG9wIGlzIHBhZC10b3AgYmVsb3cgdGhlIHJhaWwnc1xuLy8gdG9wOyB0aGUgdW5kZXJsaW5lIHNpdHMgZGlyZWN0bHkgdW5kZXIgcGFkLWJvdHRvbS5cbi8vXG4vLyBQdXNoaW5nIHRoZSBsYWJlbCBkb3duIDVweCB3aGlsZSBBTFNPIGxpZnRpbmcgdGhlIHVuZGVybGluZSAxcHggY2Fubm90IGJlXG4vLyBkb25lIHdpdGggcGFkZGluZyBhbG9uZSAtIGl0IG5lZWRzIHBhZC1ib3R0b20gdG8gZ28gdG8gLTVweC4gVGhlIDIwcHggbGluZVxuLy8gaGVpZ2h0IGlzIHdoYXQgaGFzIHRvIGdpdmU6IGRyb3BwaW5nIGl0IHRvIDE1cHggZnJlZXMgZXhhY3RseSB0aGUgNXB4IHRoZVxuLy8gbW92ZSBjb3N0cywgd2l0aCBwYWQtYm90dG9tIGJvdHRvbWluZyBvdXQgYXQgMC5cbi8vXG4vLyBUaGUgY29zdCBpcyBkZXNjZW5kZXIgY2xlYXJhbmNlLiBBdCAyMHB4IHRoZSBsaW5lIGJveCBjYXJyaWVkIH4xLjVweCBvZlxuLy8gaGFsZi1sZWFkaW5nIHVuZGVyIHRoZSBnbHlwaHM7IGF0IDE1cHggdGhhdCB0dXJucyBuZWdhdGl2ZSwgc28gdGhlIHRhaWxzIG9mXG4vLyB0aGUgXCJnXCIgYW5kIFwieVwiIGluIFwiUHJvZ3Jlc3MgU3VtbWFyeVwiIG5vdyBzaXQgbGV2ZWwgd2l0aCB0aGUgdW5kZXJsaW5lXG4vLyByYXRoZXIgdGhhbiBjbGVhciBvZiBpdC4gUmFpc2luZyB0aGUgbGluZSBoZWlnaHQgaXMgdGhlIG9ubHkgd2F5IGJhY2sgLSB0aGVcbi8vIHBhZGRpbmcgY2Fubm90IGJ1eSBpdC5cbiRwcnQtdGFiLWxpbmUtaGVpZ2h0OiAxNXB4O1xuJHBydC10YWItcGFkLXRvcDogICAgIDhweDtcbiRwcnQtdGFiLXBhZC1ib3R0b206ICAwO1xuXG4vLyBUaGUgdGFiIHJhaWwgY29zdHMgaXRzIGxhYmVsJ3MgbGluZS1oZWlnaHQsIHRoZSB0YWIncyB2ZXJ0aWNhbCBwYWRkaW5nIGFuZFxuLy8gdGhlIDJweCBhY3RpdmUgdW5kZXJsaW5lLiBUaGUgY29udGFpbmVyJ3Mgb3duIDFweCBydWxlIGVuZHMgb24gdGhlIHNhbWVcbi8vIHBpeGVsIC0gdGhlIHRhYidzIG1hcmdpbi1ib3R0b206IC0xcHggcHVsbHMgdGhlIHR3byB0b2dldGhlciAtIHNvIGl0IGFkZHNcbi8vIG5vdGhpbmcuXG4kcHJ0LXRhYi1yYWlsLWhlaWdodDogJHBydC10YWItbGluZS1oZWlnaHQgKyAkcHJ0LXRhYi1wYWQtdG9wICsgJHBydC10YWItcGFkLWJvdHRvbSArIDJweDsgIC8vIDI1cHhcblxuLy8gRGVsaWJlcmF0ZSBsaWZ0IG9mZiB0aGUgc2lkZWJhciBydWxlLiBJdCBoYXMgdG8gYmUgaXRzIG93biB0ZXJtOiB0aGUgZ2FwXG4vLyBiZWxvdyBpcyBkZXJpdmVkIGZyb20gdGhlIHJhaWwncyBoZWlnaHQsIHNvIHNocmlua2luZyB0aGUgcmFpbCB3b3VsZFxuLy8gb3RoZXJ3aXNlIGJlIGFic29yYmVkIGJ5IGEgbGFyZ2VyIGdhcCBhbmQgdGhlIGxpbmUgd291bGQgbm90IG1vdmUgYXQgYWxsLlxuLy9cbi8vIFRoaXMgcmFpc2VzIHRoZSB3aG9sZSB0YWIgYmxvY2ssIGxhYmVsIGluY2x1ZGVkLiBXaXRoIHBhZC1ib3R0b20gYWxyZWFkeSBhdFxuLy8gMCB0aGUgbGFiZWwgYW5kIGl0cyB1bmRlcmxpbmUgYXJlIGxvY2tlZCB0b2dldGhlciwgc28gdGhlcmUgaXMgbm8gbG9uZ2VyIGFcbi8vIHdheSB0byBtb3ZlIG9uZSB3aXRob3V0IHRoZSBvdGhlciAtIGNsb3NpbmcgdGhlIHJlbWFpbmluZyBkaXN0YW5jZSB3b3VsZFxuLy8gbWVhbiBjdXR0aW5nIGxpbmUtaGVpZ2h0IGFnYWluLCBhdCB0aGUgZGVzY2VuZGVycycgZXhwZW5zZS5cbiRwcnQtbGluZS1saWZ0OiAgICAgICA0cHg7XG5cbi8vIFdoYXQgaXMgbGVmdCBpcyB0aGUgZ2FwIGFib3ZlIHRoZSB0YWJzLiBEZXJpdmluZyBpdCByYXRoZXIgdGhhbiBoYXJkLWNvZGluZ1xuLy8gOXB4IGtlZXBzIHRoZSByZWxhdGlvbnNoaXAgaW50YWN0IGlmIHRoZSB0eXBlIG9yIHRoZSBzaWRlYmFyIHBhZGRpbmcgbW92ZXMuXG4kcHJ0LWdhcC10b3A6ICAgICAgICAgJHBydC1zaWRlYmFyLXJ1bGUteSAtICRwcnQtdGFiLXJhaWwtaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgLSAkcHJ0LWNvbnRlbnQtdG9wLW9mZnNldCAtICRwcnQtbGluZS1saWZ0O1xuJHBydC1nYXAtbGVmdDogICAgICAgIDIwcHg7XG5cbi8vIEV2ZXJ5dGhpbmcgc3RhY2tlZCBhYm92ZSB0aGUgZW1wdHkgc3RhdGUsIG1lYXN1cmVkIGZyb20gdGhlIGRvY3VtZW50IHRvcDpcbi8vICAgMTA0cHggIC5tYWluLXZpZXcgcGFkZGluZy10b3AgKF9wcm9maWxlX2F0aGxldGUuc2Nzczo2MjgpIC0gcmVzZXJ2ZXMgdGhlXG4vLyAgICAgICAgICBmaXhlZCBoZWFkZXIgKyBzZWxlY3Rpb24gYmFyXG4vLyAgICAgNnB4ICAkcHJ0LWdhcC10b3Bcbi8vICAgIDI1cHggICRwcnQtdGFiLXJhaWwtaGVpZ2h0XG4vLyAgICAyOHB4ICAucHJvZ3Jlc3MtcmVwb3J0LWhlYWQgbWFyZ2luLXRvcFxuLy8gICAgNDBweCAgdGhlIGhlYWQgcm93IGl0c2VsZiAoJHBydC1hY3Rpb24tc2l6ZSBzZXRzIGl0cyBoZWlnaHQpXG4vLyAgICA0MHB4ICAucHJvZ3Jlc3MtcmVwb3J0LW9wdGlvbnMgcm93ICgkZHJzLXRyaWdnZXItaGVpZ2h0KVxuLy8gICAgfjdweCAgaW50ZXItYmxvY2sgZ2Fwc1xuLy8gTWVhc3VyZWQgYWdhaW5zdCBhIHJ1bm5pbmcgYnVpbGQsIG5vdCBkZXJpdmVkIC0gcmUtY2hlY2sgaXQgaWYgYW55IG9mIHRoZVxuLy8gY2hyb21lIGFib3ZlIG1vdmVzLlxuJHBydC1lbXB0eS1jaHJvbWU6ICAgIDI1MHB4O1xuLy8gQmVsb3cgdGhpcyB0aGUgY2FsYygpIHdvdWxkIHN0YXJ0IHN1YnRyYWN0aW5nIHJlYWwgY29udGVudCwgc28gdGhlIGJsb2NrXG4vLyBmYWxscyBiYWNrIHRvIGl0cyBpbnRyaW5zaWMgaGVpZ2h0IGluc3RlYWQuXG4kcHJ0LWVtcHR5LW1pbjogICAgICAgMzIwcHg7XG5cbi8vIENvbnRlbnQgY29sdW1uIHdpZHRoLiAudmlldy1jb250YWluZXIgaXMgbG9ja2VkIHRvIDEwMjRweCBnbG9iYWxseVxuLy8gKF9iYXNlLnNjc3M6MzY1LTM2NykgdmlhIGxvY2std2lkdGgsIHdoaWNoIHBpbnMgbWF4LXdpZHRoLCBtaW4td2lkdGggQU5EXG4vLyB3aWR0aC4gVGhpcyBwYWdlIHVucGlucyBhbGwgdGhyZWUgYW5kIGZpbGxzIHRoZSB2aWV3cG9ydCBpbnN0ZWFkLCBzbyB0aGVyZVxuLy8gaXMgbm8gcGFnZS13aWR0aCB0b2tlbiBhbnkgbW9yZSAtIG9ubHkgdGhlIGd1dHRlcnMgYmVsb3cgYm91bmQgaXQuXG5cbi8vIFNxdWFyZSBpY29uIGJ1dHRvbiwgbWF0Y2hpbmcgdGhlIDQwcHggaGVpZ2h0IG9mIHRoZSBkYXRlLXJhbmdlIHRyaWdnZXJcbi8vICgkZHJzLXRyaWdnZXItaGVpZ2h0KSBhIHJvdyBiZWxvdy4gNnB4IG1hdGNoZXMgdGhlIHJhZGl1cyB0aGUgcmVzdCBvZiB0aGVcbi8vIHJlZGVzaWduIHVzZXMgZm9yIGJ1dHRvbnMuXG4kcHJ0LWFjdGlvbi1zaXplOiAgIDQwcHg7XG4kcHJ0LWFjdGlvbi1yYWRpdXM6IDZweDtcbi8vIFRoZSBtYXJrdXAgZGVjbGFyZXMgdGhlc2UgU1ZHcyBhdCAxNnB4OyB0aGlzIHdpbnMgYW5kIHNjYWxlcyB0aGVtLCB3aGljaCBpc1xuLy8gY2xlYW4gYmVjYXVzZSBib3RoIGNhcnJ5IGEgMCAwIDE2IDE2IHZpZXdCb3guIDIwcHggaW4gYSA0MHB4IGJveCBsZWF2ZXMgMTBweFxuLy8gb2YgcGFkZGluZyBhIHNpZGUuXG4kcHJ0LWljb24tc2l6ZTogICAgIDIwcHg7XG5cbi8vIFBhZ2Ugc2hlbGwuIC52aWV3LWxheW91dCBjZW50cmVzIGl0cyBjb250YWluZXIgKGp1c3RpZnktY29udGVudDogY2VudGVyIGluXG4vLyBfYmFzZS5zY3NzKSwgd2hpY2ggZmxvYXRlZCB0aGUgd2hvbGUgcmVwb3J0IGluIHRoZSBtaWRkbGUgb2YgdGhlIHZpZXdwb3J0LlxuLy8gVGhpcyBwaW5zIGl0IGxlZnQgd2l0aCBhIDIwcHggZ3V0dGVyIGluc3RlYWQuXG4vL1xuLy8gVGhlIDEwMjRweCBsb2NrIG9uIC52aWV3LWNvbnRhaW5lciBpcyBkZWxpYmVyYXRlbHkgbGVmdCBhbG9uZTogYSBkZXNjZW5kYW50XG4vLyBpcyBoYXJkLXBpbm5lZCB0byB0aGF0IHNhbWUgbnVtYmVyIChfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MsIGxvY2std2lkdGggb24gdGhlXG4vLyBsZWdhY3kgZGV0YWlscyB0aXRsZSksIHNvIGxldHRpbmcgdGhlIGNvbnRhaW5lciBnbyBmbHVpZCB3b3VsZCBzdHJhbmQgaXRcbi8vIG1pZC1wYWdlLlxuLy9cbi8vIFBhZGRpbmcgbGl2ZXMgb24gdGhlIGxheW91dCwgbm90IG9uIC5wcmludC1ub2RlLCBzbyBpdCBzdGF5cyBvdXQgb2YgdGhlXG4vLyBqc1BERiBjYXB0dXJlLlxuLnByb2dyZXNzLXJlcG9ydC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgLy8gVG9wIGlzIGRlcml2ZWQgc28gdGhlIHRhYiBydWxlIGxhbmRzIG9uIHRoZSBzaWRlYmFyIGhlYWRlcidzIHJ1bGUuIFRoZVxuICAvLyByaWdodCBndXR0ZXIgbWF0Y2hlcyB0aGUgbGVmdCBub3cgdGhhdCB0aGUgY29sdW1uIHJ1bnMgdG8gdGhlIHZpZXdwb3J0XG4gIC8vIGVkZ2UgLSB3aXRob3V0IGl0IHRoZSBwcmludC9leHBvcnQgYnV0dG9ucyB3b3VsZCBzaXQgZmx1c2ggYWdhaW5zdCB0aGVcbiAgLy8gd2luZG93LlxuICBwYWRkaW5nOiAkcHJ0LWdhcC10b3AgJHBydC1nYXAtbGVmdCAwICRwcnQtZ2FwLWxlZnQ7XG4gIC8vIFJlcGxhY2VzIHRoZSAud2hpdGViZyB0aGF0IHVzZWQgdG8gc2l0IG9uIHRoaXMgZWxlbWVudC4gVGhlIGRhdGUgYW5kIHRlc3RcbiAgLy8gc2VsZWN0b3JzIGFscmVhZHkgcGFpbnQgdGhlbXNlbHZlcyAjZmZmLCBzbyB0aGV5IHJlYWQgYXMgcmFpc2VkIGFnYWluc3RcbiAgLy8gdGhpcyBncm91bmQgcmF0aGVyIHRoYW4gZGlzc29sdmluZyBpbnRvIGl0LlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZS1iZztcblxuICAvLyBUaGUgY29sdW1uIGZpbGxzIHdoYXRldmVyIHRoZSB2aWV3cG9ydCBnaXZlcyBpdC4gQWxsIHRocmVlIG9mIGxvY2std2lkdGgnc1xuICAvLyBwcm9wZXJ0aWVzIGhhdmUgdG8gYmUgdW5kb25lIC0gbGVhdmluZyBtaW4td2lkdGggYXQgMTAyNCBhbG9uZSB3b3VsZCBrZWVwXG4gIC8vIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBuYXJyb3cgd2luZG93cywgYW5kIHRoZSBmbGV4LWdyb3cgaXMgd2hhdFxuICAvLyBhY3R1YWxseSBtYWtlcyBpdCBmaWxsLCBzaW5jZSAudmlldy1sYXlvdXQgaXMgYSBmbGV4IHJvdyBqdXN0aWZpZWQgdG9cbiAgLy8gZmxleC1zdGFydCBhbmQgdGhlIGNvbHVtbiB3b3VsZCBvdGhlcndpc2Ugc2hyaW5rIHRvIGl0cyBjb250ZW50LlxuICA+IC52aWV3LWNvbnRhaW5lciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFRoZSBkZXRhaWwgZ3JpZHMnIHRpdGxlcyB1c2VkIHRvIG5lZWQgYSBjb3JyZWN0aW9uIGhlcmU6IGJvdGggY2FyZHMgd2VyZVxuICAvLyBoYXJkLXBpbm5lZCB0byAxMDI0IGFuZCB3b3VsZCBoYXZlIHNhdCBuYXJyb3dlciB0aGFuIGV2ZXJ5dGhpbmcgYXJvdW5kIHRoZW1cbiAgLy8gb25jZSB0aGUgY29sdW1uIHdlbnQgZmx1aWQuIFRoZXkgYXJlIC5wcm9ncmVzcy1kZXRhaWxzX190aXRsZSBhbmRcbiAgLy8gLnByb2dyYW1zLWRldGFpbHNfX3RpdGxlIG5vdyBhbmQgcGluIG5vIHdpZHRoIG9mIHRoZWlyIG93bi4gVGhlIGxlZ2FjeVxuICAvLyAucmVwb3J0LWRldGFpbHMtY29udGFpbmVyIC50aXRsZSBpcyBzdGlsbCAxMDI0LWxvY2tlZCBmb3IgdGVhbXJlcG9ydC5odG1sLFxuICAvLyB3aGljaCBkb2VzIG5vdCByZW5kZXIgaW5zaWRlIHRoaXMgbGF5b3V0LlxufVxuXG4ucHJvZ3Jlc3MtcmVwb3J0LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gVGhlIHRhYnMgb3BlbiB0aGUgY29udGVudCBhcmVhLCBzbyB0aGVyZSBpcyBubyBoZWFkZXIgYWJvdmUgdGhlbSB0byBzcGFjZVxuICAvLyBvZmY7IHRoZSBnYXAgYmVsb3cgaXMgdGhlIGhlYWQgYmxvY2sncyBvd24gdG9wIG1hcmdpbi5cbiAgZ2FwOiAyNHB4O1xuICBtYXJnaW46IDA7XG5cbiAgJl9fdGFiIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICAvLyBUaGUgdW5kZXJsaW5lIElTIHRoaXMgYm9yZGVyLiBXaXRob3V0IHVuc3R5bGUtYnV0dG9uIGFib3ZlLCB0aGUgZ2xvYmFsXG4gICAgLy8gYnV0dG9uIHJ1bGUgd291bGQgZmxvb3IgdGhlIHdpZHRoIGF0IDExMHB4IChvdmVyc2hvb3RpbmcgdGhlIGxhYmVsKSBhbmRcbiAgICAvLyBsb2NrIHRoZSBoZWlnaHQgYXQgNTBweCAoZHJvcHBpbmcgdGhlIGJvcmRlciB3ZWxsIGJlbG93IHRoZSB0ZXh0KS5cbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gRXZlcnkgdGFiIGlzIDYwMCwgYWN0aXZlIG9yIG5vdCAtIGNvbG91ciBhbmQgdGhlIHVuZGVybGluZSBjYXJyeSB0aGVcbiAgICAvLyBzdGF0ZSBvbiB0aGVpciBvd24uIEl0IGFsc28gc3RvcHMgdGhlIGxhYmVsIHdpZHRoIHNoaWZ0aW5nIGFzIHRoZVxuICAgIC8vIHNlbGVjdGlvbiBtb3Zlcywgd2hpY2ggYSA1MDAvNjAwIHN3YXAgd291bGQgY2F1c2UuXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogJHBydC10YWItbGluZS1oZWlnaHQ7XG4gICAgLy8gUHVsbHMgdGhlIHRhYidzIG93biBib3JkZXIgb24gdG9wIG9mIHRoZSBjb250YWluZXIncyAxcHggcnVsZSBzbyB0aGUgdHdvXG4gICAgLy8gcmVhZCBhcyBvbmUgbGluZSByYXRoZXIgdGhhbiBzdGFja2luZyB0byAzcHggdW5kZXIgdGhlIGFjdGl2ZSB0YWIuXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICAvLyA0cHggZWFjaCBzaWRlIGlzIHRoZSBicmVhdGhpbmcgcm9vbSB0aGUgZGVzaWduIHNob3dzIGFyb3VuZCB0aGUgbGFiZWwuXG4gICAgLy8gVmVydGljYWwgaXMgdGhlIHRvcC9ib3R0b20gc3BsaXQgYWJvdmUgLSB0aGUgdHdvIGFsd2F5cyBzdW0gdG8gNHB4LCBzb1xuICAgIC8vIHRoZSB1bmRlcmxpbmUgc3RheXMgb24gdGhlIHJvdyB0aGUgbGF5b3V0J3MgcGFkZGluZy10b3AgcHV0cyBpdCBvbi5cbiAgICBwYWRkaW5nOiAkcHJ0LXRhYi1wYWQtdG9wIDRweCAkcHJ0LXRhYi1wYWQtYm90dG9tO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHB1cnBsZS02MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHJ0LWFjdGl2ZS1pbms7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtaGVhZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8vIFRpdGxlIGxlZnQsIGFjdGlvbnMgaGFyZCByaWdodCBvbiBvbmUgcm93LlxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTZweDtcbiAgbWFyZ2luOiAyOHB4IDAgMDtcblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyBoMSBvbiB0aGlzIHBhZ2UgdXNlZCB0byBpbmhlcml0IC5iYXNpYy1wYWdlLWhlYWRlciAudGl0bGUxLCB3aGljaCBhZGRzIGFcbiAgICAvLyBtaW4taGVpZ2h0IGFuZCBtYXJnaW5zLiBUaGF0IHdyYXBwZXIgaXMgZ29uZSwgc28gc2V0IGJvdGggb3V0cmlnaHQuXG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLy8gU3F1YXJlIG91dGxpbmVkIGljb24tb25seSBidXR0b24uIFdpdGggbm8gbGFiZWwgdGhlcmUgaXMgbm90aGluZyB0byBhYnNvcmJcbiAgLy8gdGhlIGdsb2JhbCBidXR0b24gbWluLXdpZHRoLCBzbyB1bnN0eWxlLWJ1dHRvbiBpcyB3aGF0IGtlZXBzIHRoZSBib3ggc3F1YXJlLlxuICAmX19hY3Rpb24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcnQtYWN0aW9uLXJhZGl1cztcbiAgICAvLyBObyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCBpbiB0aGlzIGJ1aWxkIC0gd2l0aG91dCB0aGlzIHRoZSAxcHggYm9yZGVyXG4gICAgLy8gcHVzaGVzIHRoZSBib3ggdG8gMzhweCBhbmQgdGhlIHR3byBidXR0b25zIHN0b3AgbWF0Y2hpbmcgdGhlIGRlc2lnbi5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBoZWlnaHQ6ICRwcnQtYWN0aW9uLXNpemU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xuICAgIHdpZHRoOiAkcHJ0LWFjdGlvbi1zaXplO1xuXG4gICAgJjpob3Zlcjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkcHVycGxlLTIwMDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gU2hvd24tYnV0LWluZXJ0IHdoaWxlIGEgcmVwb3J0IGhhcyBub3RoaW5nIHRvIGV4cG9ydCwgc28gdGhlIGhlYWRlciBkb2VzXG4gICAgLy8gbm90IHJlZmxvdyB0aGUgbW9tZW50IGRhdGEgbGFuZHMuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTIwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC8vIEljb25zIGFyZSBpbmxpbmUgU1ZHIG9uIGN1cnJlbnRDb2xvciwgc28gdGhlIGhvdmVyL2ZvY3VzIGNvbG9ycyBhYm92ZVxuICAgIC8vIGNhcnJ5IGludG8gdGhlIGdseXBoIHdpdGggbm8gZXh0cmEgcnVsZXMuXG4gICAgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkcHJ0LWljb24tc2l6ZTtcbiAgICAgIHdpZHRoOiAkcHJ0LWljb24tc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRW1wdHkgc3RhdGUgZm9yIHRoZSBQcm9ncmVzcyBTdW1tYXJ5IHRhYi4gRGVsaWJlcmF0ZWx5IGEgbmV3IGJsb2NrIHJhdGhlclxuLy8gdGhhbiBhIHJlc3R5bGUgb2YgLnByb2dyZXNzLXJlcG9ydC1ub2RhdGEsIHdoaWNoIHRlYW1yZXBvcnQuaHRtbCBhbmRcbi8vIHRlc3RfYXJjaGl2ZXNfYm9keS5odG1sIGFsc28gdXNlLlxuLy9cbi8vIFR5cGUgaXMgYSB2ZXJiYXRpbSBtYXRjaCBmb3IgLnByb2dyYW1zLXBhZ2VfX2VtcHR5IChfcHJvZ3JhbV9jYXJkcy5zY3NzOlxuLy8gMTg5LTIyNikgLSB0aGUgZGVzaWduZXIncyBzcGVjIGZvciB0aGUgdHdvIGlzIGlkZW50aWNhbCwgc28gdGhlIHR3byBibG9ja3Ncbi8vIHNob3VsZCBzdGF5IGluIHN0ZXAuXG4ucHJvZ3Jlc3MtcmVwb3J0LWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gQ2VudHJlcyB0aGUgc3RhY2sgaW5zaWRlIHRoZSB0YWxsIGJveCB0aGUgbWluLWhlaWdodCBvcGVucyB1cCBiZWxvdy5cbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA5NnB4IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAvLyBEZWxpYmVyYXRlbHkgTk9UIGZsZXg6IDEuIFRoZSBpbi1mbG93IGNvbHVtbiBpcyAxMDB2aCB0YWxsIGJ1dCBzdGFydHNcbiAgLy8gMTA0cHggZG93biB0aGUgZG9jdW1lbnQsIGJlY2F1c2UgLm1haW4tdmlldyByZXNlcnZlcyB0aGF0IHNwYWNlIGZvciB0aGVcbiAgLy8gZml4ZWQgaGVhZGVyIGFuZCBzZWxlY3Rpb24gYmFyLiBBIGdyb3duIGJsb2NrIHdvdWxkIGNlbnRyZSBpdHNlbGYgMTA0cHhcbiAgLy8gYmVsb3cgdGhlIHRydWUgdmlld3BvcnQgY2VudHJlIGFuZCBoYW5nIGl0cyBsb3dlciBoYWxmIHVuZGVyIHRoZSBmb2xkLlxuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skcHJ0LWVtcHR5LWNocm9tZX0pO1xuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8vIE5vIG1heC13aWR0aC4gLnByb2dyYW1zLXBhZ2VfX2VtcHR5IGNhcHMgaXRzIGNvcHkgYXQgNDIwcHggdG8gYmFsYW5jZSBpdFxuICAgIC8vIG92ZXIgdHdvIGxpbmVzLCBidXQgYm90aCBzZW50ZW5jZXMgaGVyZSBhcmUgbWVhbnQgdG8gc2l0IG9uIG9uZSByb3csIGFuZFxuICAgIC8vIGF0IH43MDBweCB0aGV5IGNsZWFyIHRoZSAxMTAwcHggdGhlIGNvbnRlbnQgY29sdW1uIGxlYXZlcyBlYXNpbHkuIFRoZXlcbiAgICAvLyBzdGlsbCB3cmFwIHJhdGhlciB0aGFuIG92ZXJmbG93IGlmIHRoZSB2aWV3cG9ydCBpcyBuYXJyb3cgZW5vdWdoIHRvIGZvcmNlXG4gICAgLy8gaXQsIHdoaWNoIGlzIHdoeSB0aGlzIGlzIGFuIGFic2VudCBjYXAgcmF0aGVyIHRoYW4gd2hpdGUtc3BhY2U6IG5vd3JhcC5cbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIE91dGxpbmVkIHB1cnBsZSBDVEEsIHJlbmRlcmVkIG9ubHkgdW5kZXIgdGhlIEJvZHkgTUFQIGVtcHR5IHN0YXRlLiBDbG9uZWRcbiAgLy8gZnJvbSAudGVzdC1sYW5kaW5nX19idG4gKGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3M6MjYxMSkgLSB0aGUgdHdvXG4gIC8vIGFyZSB0aGUgc2FtZSBjb250cm9sIGF0IGRpZmZlcmVudCBzaXplcywgc28ga2VlcCB0aGVtIGluIHN0ZXAuXG4gIC8vXG4gIC8vIFRocmVlIGdsb2JhbC1idXR0b24gcnVsZXMgaGF2ZSB0byBiZSBmb3VnaHQgaGVyZSwgYWxsIG9mIHRoZW0gdGhlIHJlYXNvblxuICAvLyB0aGF0IHJ1bGUgaXMgYXMgbG9uZyBhcyBpdCBpczpcbiAgLy8gICAtIGBidXR0b25gIGdldHMgbG9jay1oZWlnaHQoNTBweCksIGkuZS4gbWluLWhlaWdodCBBTkQgbWF4LWhlaWdodCwgc28gYVxuICAvLyAgICAgNDBweCBib3ggaGFzIHRvIHJlc3RhdGUgYWxsIHRocmVlIGhlaWdodCBwcm9wZXJ0aWVzLlxuICAvLyAgIC0gX2Jhc2Uuc2NzcyBwdXRzIGEgSGVsdmV0aWNhIHN0YWNrIG9uIGV2ZXJ5IGJ1dHRvbiwgc28gdGhlIGZhbWlseSBoYXNcbiAgLy8gICAgIHRvIGJlIHJlc3RhdGVkIG9yIHRoZSBsYWJlbCBzaWxlbnRseSBmYWxscyBvZmYgTnVkaXN0YS5cbiAgLy8gICAtIGJ1dHRvbiB0ZXh0IGlzIHVwcGVyY2FzZWQgZ2xvYmFsbHkuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICAvLyBObyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCBpbiB0aGlzIGJ1aWxkLCBzbyB0aGUgMXB4IGJvcmRlciBhbmQgdGhlXG4gICAgLy8gMTIvMTYgcGFkZGluZyBoYXZlIHRvIGJlIGZvbGRlZCBpbnRvIHRoZSAxODB4NDAgYm94IGJ5IGhhbmQuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAvLyBUaGUgcGFyZW50J3MgZmxleCBnYXAgaXMgOHB4LCB3aGljaCBzaXRzIHRoZSBidXR0b24gdGlnaHRlciB1bmRlciB0aGVcbiAgICAvLyBkZXNjcmlwdGlvbiB0aGFuIHRoZSBkZXNpZ24gc2hvd3MuXG4gICAgbWFyZ2luOiAyNHB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YS13ZWInLCAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gVGhlIHNwZWMgc2F5cyB0ZXh0LWFsaWduOiByaWdodCwgd2hpY2ggaXMgYSBGaWdtYSBhcnRpZmFjdCAtIHRoZSBsYWJlbFxuICAgIC8vIGlzIGNlbnRyZWQgaW4gdGhlIG1vY2t1cCwgYW5kIGp1c3RpZnktY29udGVudCBjZW50cmVzIGl0IHJlZ2FyZGxlc3MuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gbmctZGlzYWJsZWQgd3JpdGVzIHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUuIE1hdGNoZXNcbiAgICAvLyAudGVzdC1sYW5kaW5nX19idG4tLWRpc2FibGVkIHNvIGFuIHVuYXZhaWxhYmxlIHRlc3QgcmVhZHMgdGhlIHNhbWUgaGVyZVxuICAgIC8vIGFzIGl0IGRvZXMgb24gdGhlIFRlc3RpbmcgcGFnZS5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZDlkYmRjO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZDlkYmRjO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtYXJjaGl2ZXMge1xuICAvLyBUaGUgZW1iZWRkZWQgcGFuZWwgcmV1c2VzIC50ZXN0LWFyY2hpdmVzLW9wdGlvbnMgLyAuYXJjaGl2ZS1jb250YWluZXIgZnJvbVxuICAvLyBfdGVzdF9hcmNoaXZlcy5zY3NzIHZlcmJhdGltLiBPbmx5IHRoZSBsZWFkaW5nIGdhcCBuZWVkcyByZXN0YXRpbmcsIHNpbmNlXG4gIC8vIGhlcmUgaXQgZm9sbG93cyB0aGUgaGVhZCBibG9jayBpbnN0ZWFkIG9mIGEgLmJhc2ljLXBhZ2UtaGVhZGVyLlxuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQodGFibGV0KSB7XG4gIC5wcm9ncmVzcy1yZXBvcnQtaGVhZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAucHJvZ3Jlc3MtcmVwb3J0LXRhYnMge1xuICAgIGdhcDogMTZweDtcbiAgICAvLyBUaHJlZSBsYWJlbHMgZG8gbm90IGZpdCBhIG5hcnJvdyB2aWV3cG9ydDsgc2Nyb2xsaW5nIHRoZSByYWlsIGJlYXRzXG4gICAgLy8gd3JhcHBpbmcgaXQsIHdoaWNoIHdvdWxkIGJyZWFrIHRoZSBzaW5nbGUgdW5kZXJsaW5lLlxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cblxuICAucHJvZ3Jlc3MtcmVwb3J0LWVtcHR5IHtcbiAgICAvLyBUaGUgaGVhZCBzdGFja3MgdG8gYSBjb2x1bW4gaGVyZSwgc28gJHBydC1lbXB0eS1jaHJvbWUgdW5kZXItY291bnRzIGJ5XG4gICAgLy8gcm91Z2hseSBhIHJvdy4gQSBmbGF0IGZsb29yIGJlYXRzIHJlLWRlcml2aW5nIGl0IGZvciBvbmUgYnJlYWtwb2ludC5cbiAgICBtaW4taGVpZ2h0OiAkcHJ0LWVtcHR5LW1pbjtcbiAgfVxufVxuIiwiLyogVGhlIFwiRGV0YWlsZWQgVGVzdCBSZXN1bHRzXCIgY2FyZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgRGVsaWJlcmF0ZWx5IE5PVCBhIHJlc3R5bGUgb2YgLnJlcG9ydC1kZXRhaWxzLWNvbnRhaW5lciAvIC5yZXBvcnQtZGV0YWlscyBpblxuICAgX3Byb2dyZXNzX3JlcG9ydC5zY3NzOiB0ZWFtcmVwb3J0Lmh0bWw6MzkyIHJlbmRlcnMgdGhhdCBzYW1lIG1hcmt1cCBhZ2FpbnN0XG4gICB0aG9zZSBzYW1lIHJ1bGVzLCBzbyBlZGl0aW5nIHRoZW0gaW4gcGxhY2Ugd291bGQgZHJhZyB0aGUgdGVhbSByZXBvcnQgYWxvbmdcbiAgIHdpdGggaXQuIFRoaXMgYmxvY2sgaXMgYXBwbGllZCB0byB0aGUgcHJvZ3Jlc3MgdmlldyBvbmx5OyB0aGUgdGVhbSByZXBvcnRcbiAgIGtlZXBzIHRoZSBsZWdhY3kgZGFyay96ZWJyYSBncmlkLlxuXG4gICBUaGUgZ3JpZCBpcyB0aHJlZSBwYXJhbGxlbCBmbGV4IGNvbHVtbnMgKG5hbWVzIC8gaW5mbyAvIHNjb3JlcyksIG5vdCBhXG4gICA8dGFibGU+LCBhbmQgc3RheXMgdGhhdCB3YXk6IHRoZSBuYW1lcyBjb2x1bW4gaG9sZHMgc3RpbGwgd2hpbGVcbiAgIC5wcm9ncmVzcy1kZXRhaWxzX19zY29yZXMgc2Nyb2xscyBob3Jpem9udGFsbHksIGFuZCB0aGUgbmctcmVwZWF0cyBhcmVcbiAgIHRyYW5zcG9zZWQgKHZtLmRldGFpbE5hbWVzIGRyaXZlcyByb3dzLCB2bS5kZXRhaWxEYXRlcyBkcml2ZXMgY29sdW1ucywgZWFjaFxuICAgY29sdW1uIGNhcnJ5aW5nIGl0cyBvd24gZW50cmllcyBhcnJheSkuIFR1cm5pbmcgaXQgaW50byBhIHRhYmxlIHdvdWxkIG5lZWRcbiAgIHJvdy1tYWpvciBkYXRhLCB3aGljaCBpcyBhIGNvbnRyb2xsZXIgY2hhbmdlLCBub3QgYSByZXN0eWxlLlxuXG4gICBCZWNhdXNlIHRoZSBjb2x1bW5zIGFyZSBpbmRlcGVuZGVudCBmbGV4IHN0YWNrcywgcm93cyBvbmx5IGxpbmUgdXAgYmVjYXVzZVxuICAgZXZlcnkgcm93IGluIGV2ZXJ5IGNvbHVtbiBhZ3JlZXMgb24gJHB0ZC1yb3ctaC4gUm93IHNlcGFyYXRvcnMgYXJlIHRoZXJlZm9yZVxuICAgZHJhd24gd2l0aCBhbiBpbnNldCBib3gtc2hhZG93IHJhdGhlciB0aGFuIGEgYm9yZGVyIC0gYSBib3JkZXIgd291bGQgYWRkIDFweFxuICAgb2YgbGF5b3V0IGhlaWdodCBwZXIgcm93IGFuZCB3YWxrIHRoZSBjb2x1bW5zIG91dCBvZiByZWdpc3RlciBkb3duIHRoZSB0YWJsZS5cblxuICAgU2NvcmUgY29sb3VycyBjb21lIGZyb20gLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHRcbiAgIChfYmFzZS5zY3NzOjMxNi0zMjMpLCBpbnRlcnBvbGF0ZWQgZnJvbSB0aGUgQVBJJ3Mgcmlza0NvbG9yLiBUaG9zZSBhcmUgMCwxLDBcbiAgIHNlbGVjdG9ycywgc28gbm90aGluZyBoZXJlIG1heSBzZXQgYGNvbG9yYCBvbiBhIGRlc2NlbmRhbnQgc3BhbiBvZiBhIGNlbGw6IGFuXG4gICAwLDEsMSBydWxlIHdvdWxkIHNpbGVudGx5IHdpbiBhbmQgZmxhdHRlbiB0aGUgY29sb3VyIGNvZGluZy5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiRwdGQtdGl0bGU6ICAgICMxZjFmMjg7ICAgLy8gbmFtZSBjZWxsc1xuJHB0ZC10b3RhbC1iZzogI2Y3ZjdmODsgICAvLyBUb3RhbCByb3cgZmlsbFxuJHB0ZC1kYXRlLWg6ICAgIzczNTVCNTsgICAvLyBjb2x1bW4gZGF0ZSBsYWJlbHNcblxuLy8gVGhlIGxlZ2VuZCBoYXMgdG8gYWdyZWUgd2l0aCB0aGUgdmFsdWUgY29sb3VycyBleGFjdGx5LCBvciBpdCBzdG9wcyBiZWluZyBhXG4vLyBrZXkuIFRoZXNlIGFsc28gb3ZlcnJpZGUgLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHQgYmVsb3csXG4vLyBzY29wZWQgdG8gdGhpcyBjYXJkIG9ubHksIHNvIHRoZSBzY29yZSBkaWdpdHMgbWF0Y2ggdGhlIGRvdHMuXG4kcHRkLXBvb3I6ICAgICAjRjA0NDM4O1xuJHB0ZC1tb2RlcmF0ZTogI0U1QTYzMztcbiRwdGQtZ29vZDogICAgICMxMkI3NkE7XG5cblxuLy8gU2hhcmVkIGJ5IGFsbCB0aHJlZSBjb2x1bW5zLiBDaGFuZ2luZyBhbnkgb2YgdGhlc2UgaW4gb25lIGNvbHVtbiBvbmx5IGlzXG4vLyB3aGF0IGJyZWFrcyB0aGUgcm93IGFsaWdubWVudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4vL1xuLy8gVGhlIGhlYWRlciBpcyBkZWxpYmVyYXRlbHkgc2hvcnRlciB0aGFuIHRoZSByb3dzIGl0IGxhYmVscy4gT24gVDIgcmVwb3J0cyBhXG4vLyBzZWNvbmQgaGVhZGVyIHJvdyAodGhlIFIgLyBMIGFiYnJldmlhdGlvbnMpIHN0YWNrcyB1bmRlciB0aGUgZmlyc3Q7IGl0IHRha2VzXG4vLyB0aGUgc2FtZSAzNHB4LCBiZWNhdXNlIHRoZSBhbGlnbm1lbnQgY29udHJhY3QgaXMgcGVyIHJvdy1zbG90IGFjcm9zcyBjb2x1bW5zXG4vLyBhbmQgdGhlIG5hbWVzL2luZm8gY29sdW1ucyBwYWQgdGhhdCBzbG90IHdpdGggYW4gZW1wdHkgaGVhZGVyIG9mIHRoZWlyIG93bi5cbiRwdGQtaGVhZC1oOiAgIDM0cHg7XG4kcHRkLXJvdy1oOiAgICA0NHB4O1xuLy8gVGhlIGxlZ2VuZCBpcyB0aGUgdGFibGUncyBsYXN0IHJvdyByYXRoZXIgdGhhbiBhIGNhcHRpb24gdW5kZXIgaXQsIHNvIGl0IGdldHNcbi8vIGl0cyBvd24gaGVpZ2h0IC0gc2hvcnRlciB0aGFuIGEgZGF0YSByb3csIHRhbGxlciB0aGFuIHRoZSBoZWFkZXIuXG4kcHRkLWxlZ2VuZC1oOiAzNnB4O1xuXG4vLyBUZXh0IGluc2V0IGZvciB0aGUgbmFtZXMgY29sdW1uLCByZXN0YXRlZCBvbiBpdHMgaGVhZGVyIHNvIHRoZSBcIk5hbWVcIiBsYWJlbFxuLy8gYW5kIHRoZSBsYWJlbHMgYmVuZWF0aCBpdCBzaGFyZSBhIGxlZnQgZWRnZS5cbiRwdGQtbmFtZS1wYWQ6ICAyMHB4O1xuJHB0ZC1uYW1lLXc6ICAgIDI1MHB4O1xuJHB0ZC1sYWJlbC13OiAgIDE4MHB4O1xuJHB0ZC1zY29yZS13OiAgIDIxMHB4O1xuJHB0ZC1pbmZvLXc6ICAgIDExMHB4O1xuJHB0ZC11bml0LXc6ICAgIDkwcHg7ICAgICAvLyBuYXJyb3dlciB0aGFuICRwdGQtaW5mby13IC0ganVzdCBob2xkcyBhIHBpbGxcbiRwdGQtY2VsbC1wYWQ6ICAxMnB4O1xuJHB0ZC1zaWRlLXc6ICAgIDU1cHg7ICAgICAvLyB0aGUgUiAvIEwgaGFsZi1jZWxscyBvbiBUMiByZXBvcnRzXG5cbi5wcm9ncmVzcy1kZXRhaWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8vIFRoZSBsZWdhY3kgY29udGFpbmVyIHdhcyBmbGV4KDEgMCBhdXRvKSBhbmQgZ3JldyBpbnRvIHdoYXRldmVyIGhlaWdodCB0aGVcbiAgLy8gcGFnZSBjb2x1bW4gaGFkIGxlZnQgb3Zlci4gVGhhdCB3YXMgaW52aXNpYmxlIG9uIGEgdHJhbnNwYXJlbnQgYmxvY2s7IG9uIGFcbiAgLy8gYm9yZGVyZWQgY2FyZCBpdCB3b3VsZCBkcmF3IGFuIGVtcHR5IHdoaXRlIHRhaWwgdW5kZXIgdGhlIGxhc3Qgcm93LlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgLy8gLnZpZXctY29udGFpbmVyLmNvbHVtbidzIGRlZmF1bHQgYWxpZ24taXRlbXM6c3RyZXRjaCB3b3VsZCBvdGhlcndpc2VcbiAgLy8gZm9yY2UgdGhpcyBjYXJkIHRvIHRoZSBmdWxsIDEwMjRweCBjb2x1bW4gd2lkdGggcmVnYXJkbGVzcyBvZiBob3dcbiAgLy8gbmFycm93ICZfX2dyaWQgZW5kcyB1cCAoc2VlICZfX2dyaWQncyBvd24gc2hyaW5rLXdyYXAgYWJvdmUpOyB0aGlzIGxldHNcbiAgLy8gdGhlIGNhcmQgaHVnIHRoZSB0YWJsZSdzIHdpZHRoIGluc3RlYWQsIGNhcHBlZCBiYWNrIGF0IHRoZSBjb2x1bW4gd2lkdGhcbiAgLy8gdmlhIG1heC13aWR0aCBzbyBhIHdpZGUgdGFibGUgc3RpbGwganVzdCBmaWxscyBpdCBhcyBiZWZvcmUuXG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gQ2xlYXJzIHRoZSBjaGFydC9zdW1tYXJ5IGJsb2NrIGFib3ZlIGFuZCB0aGUgcHJvZ3JhbXMgYmxvY2sgYmVsb3csIHdoaWNoXG4gIC8vIGlzIHdoYXQgdGhlIGxlZ2FjeSBjb250YWluZXIncyBtYXJnaW5zIGRpZC5cbiAgbWFyZ2luOiAzMHB4IDAgNTBweDtcbiAgcGFkZGluZzogMjBweDtcblxuICAvLyBDYXJkLXNjb3BlZCByZXN0YXRlbWVudCBvZiAucmVkLXRleHQgLyAueWVsbG93LXRleHQgLyAuZ3JlZW4tdGV4dFxuICAvLyAoX2Jhc2Uuc2NzczozMTYtMzIzKSBhdCAwLDIsMCBzcGVjaWZpY2l0eSwgc28gdGhlIHNjb3JlIGRpZ2l0cyBwaWNrIHVwXG4gIC8vIHRoaXMgY2FyZCdzIHBhbGV0dGUgd2l0aG91dCB0b3VjaGluZyB0aG9zZSBjbGFzc2VzIGFueXdoZXJlIGVsc2UgaW4gdGhlXG4gIC8vIGFwcC4gS2VwdCBpbiBzeW5jIHdpdGggJHB0ZC1wb29yLyRwdGQtbW9kZXJhdGUvJHB0ZC1nb29kIGFib3ZlLlxuICAucmVkLXRleHQgICAgeyBjb2xvcjogJHB0ZC1wb29yOyB9XG4gIC55ZWxsb3ctdGV4dCB7IGNvbG9yOiAkcHRkLW1vZGVyYXRlOyB9XG4gIC5ncmVlbi10ZXh0ICB7IGNvbG9yOiAkcHRkLWdvb2Q7IH1cblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gVGhlIGxlZ2FjeSAudGl0bGUgY2FycmllZCBhIGxvY2std2lkdGgoMTAyNHB4KSB0aGF0IGhhZCB0byBiZSB1bmRvbmUgZnJvbVxuICAgIC8vIF9wcm9ncmVzc19yZXBvcnRfdGFicy5zY3NzIG5vdyB0aGUgcGFnZSBjb2x1bW4gaXMgZmx1aWQuIE5vdGhpbmcgaGVyZVxuICAgIC8vIHBpbnMgYSB3aWR0aCwgc28gdGhhdCBwYXRjaCBpcyBnb25lLlxuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX190eXBlLWZpbHRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190eXBlLWxhYmVsIHtcbiAgICBjb2xvcjogIzRGNEY0RjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB9XG5cbiAgLy8gU2NvcGVkIHRvIHRoaXMgY2FyZCdzIFR5cGUgZHJvcGRvd24gb25seSAtIHRoZSBzaGFyZWQgLnNlbGVjdC1waWxsIHJ1bGVzXG4gIC8vIGluIF9zZWxlY3RfcGlsbC5zY3NzICg0IGNsYXNzZXMgZGVlcCkgYWxzbyBzdHlsZSB0aGUgdGVzdC10eXBlIGRyb3Bkb3duXG4gIC8vIGluIHRoZSBwYWdlJ3Mgb3B0aW9ucyBiYXIsIHdoaWNoIHN0YXlzIGF0IGl0cyBub3JtYWwgNDBweCBoZWlnaHQuXG4gICZfX3R5cGUtZmlsdGVyIC5zZWxlY3QtcGlsbCAuZHJvcGRvd24td3JhcHBlciAudHJpZ2dlci5waWxsIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBUaGUgaGFpcmxpbmUgYm94LiBUd28gc3RhY2tlZCBiYW5kczogdGhlIHBhcmFsbGVsIGNvbHVtbnMsIHRoZW4gdGhlIGxlZ2VuZFxuICAvLyBhcyB0aGUgdGFibGUncyBmaW5hbCBmdWxsLXdpZHRoIHJvdy4gSXQgaGFzIHRvIGJlIGEgY29sdW1uIHdyYXBwZXIgcmF0aGVyXG4gIC8vIHRoYW4gYSBmb3VydGggc2libGluZyBjb2x1bW4sIGJlY2F1c2UgdGhlIGxlZ2VuZCBzcGFucyB0aGUgd2hvbGUgdGFibGUgYW5kXG4gIC8vIHRoZSB0aHJlZSBjb2x1bW5zIGFib3ZlIGl0IGRvIG5vdCBzaGFyZSBhIHJvdyBncmlkIGl0IGNvdWxkIGpvaW4uXG4gICZfX2dyaWQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgLy8gQmxvY2stbGV2ZWwgZmxleCB3b3VsZCBkZWZhdWx0IHRvIHdpZHRoOjEwMCUgb2YgdGhlIGNhcmQgcmVnYXJkbGVzcyBvZlxuICAgIC8vIGhvdyBmZXcgY29sdW1ucy9kYXRlcyB0aGVyZSBhcmUsIGxlYXZpbmcgdGhlIGJvcmRlciB0cmFpbGluZyBvZmYgaW50b1xuICAgIC8vIGVtcHR5IHNwYWNlOyBpbmxpbmUtZmxleCBzaHJpbmstd3JhcHMgaXQgdG8gaXRzIGNvbnRlbnQgaW5zdGVhZCwgYW5kXG4gICAgLy8gbWF4LXdpZHRoIGNhcHMgaXQgYmFjayBhdCB0aGUgY2FyZCdzIHdpZHRoIHNvIGEgd2lkZSBkYXRlIHJhbmdlIHN0aWxsXG4gICAgLy8gc2Nyb2xscyBpbnNpZGUgJl9fc2NvcmVzIHJhdGhlciB0aGFuIG92ZXJmbG93aW5nIHRoZSBjYXJkLlxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFRoZSBwYXJhbGxlbC1jb2x1bW5zIGJhbmQuXG4gIC8vXG4gIC8vIG92ZXJmbG93OmhpZGRlbiBzd2FsbG93cyB0aGUgYm90dG9tIHJvdydzIHNlcGFyYXRvciwgd2hpY2ggZWFjaCBjb2x1bW5cbiAgLy8gcHVzaGVzIDFweCBwYXN0IHRoaXMgYm94IHdpdGggdGhlIG5lZ2F0aXZlIG1hcmdpbiBiZWxvdyAtIG90aGVyd2lzZSBpdFxuICAvLyB3b3VsZCBzdGFjayB3aXRoIHRoZSBsZWdlbmQgcm93J3Mgb3duIHRvcCBydWxlIGFuZCByZWFkIGFzIGEgMnB4IGxpbmUuXG4gIC8vXG4gIC8vIGZsZXgtc3RhcnQsIG5vdCB0aGUgZGVmYXVsdCBzdHJldGNoOiBhIHN0cmV0Y2hlZCBjb2x1bW4gd291bGQgYmUgZm9yY2VkIHRvXG4gIC8vIHRoZSB0YWxsZXN0IGNvbHVtbidzIGhlaWdodCBhbmQgaXRzIHRyYWlsaW5nIGhhaXJsaW5lIHdvdWxkIHN0b3AgbGFuZGluZyBvblxuICAvLyB0aGUgY2xpcCBsaW5lLlxuICAmX19jb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIC0tLSBjb2x1bW4gc2hlbGxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy9cbiAgLy8gRWFjaCBjYXJyaWVzIG1hcmdpbi1ib3R0b206IC0xcHggc28gaXRzIGZpbmFsIHJvdydzIHNlcGFyYXRvciBmYWxscyBvdXRzaWRlXG4gIC8vIHRoZSBjb2x1bW5zIGJhbmQgYW5kIGdldHMgY2xpcHBlZC4gQSBgJl9fcm93Omxhc3QtY2hpbGQgeyBib3gtc2hhZG93OlxuICAvLyBub25lIH1gIHdvdWxkIGhhdmUgYmVlbiB0aGUgb2J2aW91cyB3YXkgdG8gZHJvcCB0aGUgcnVsZSB1bmRlciB0aGUgbGFzdFxuICAvLyByb3csIGJ1dCB0aGUgY29sdW1ucyBkbyBub3QgYWxsIGVuZCBvbiB0aGUgc2FtZSByb3cgLSB0aGUgVEwgaW5mbyBjb2x1bW5zXG4gIC8vIGFyZSBoYXJkLWNvZGVkIHRvIGZvdXIgKHByb2dyZXNzcmVwb3J0Lmh0bWw6NDA0LTQ2MikgYWdhaW5zdCBhbiBOLXJvdyBuYW1lc1xuICAvLyBjb2x1bW4gLSBzbyBpdCB3b3VsZCBlcmFzZSBhIGhhaXJsaW5lIG1pZC10YWJsZS4gVGhlIGNsaXAgaXMgcm93LWNvdW50XG4gIC8vIGFnbm9zdGljOyB0aGUgbGVnZW5kJ3Mgb3duIHRvcCBydWxlIHRoZW4gZHJhd3Mgb25lIGNsZWFuIGZ1bGwtd2lkdGggZGl2aWRlclxuICAvLyByZWdhcmRsZXNzIG9mIGhvdyByYWdnZWQgdGhlIGNvbHVtbnMnIGJvdHRvbSBlZGdlcyBhcmUuXG5cbiAgJl9fbmFtZXMge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICBtaW4td2lkdGg6ICRwdGQtbmFtZS13O1xuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICB9XG5cbiAgJl9fc2NvcmVzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgLy8gTGVnYWN5IHVzZWQgYHNjcm9sbGAsIHdoaWNoIHJlc2VydmVzIGEgcGVybWFuZW50IGdyZXkgZ3V0dGVyIG9uIHBsYXRmb3Jtc1xuICAgIC8vIHdpdGggY2xhc3NpYyBzY3JvbGxiYXJzIGV2ZW4gd2hlbiBldmVyeSBkYXRlIGZpdHMuIEluc2lkZSBhIGJvcmRlcmVkIGJveFxuICAgIC8vIHRoYXQgdHJhY2sgcmVhZHMgYXMgcGFydCBvZiB0aGUgdGFibGUuXG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICZfX2NvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgfVxuXG4gIC8vIC0tLSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBUMiByZXBvcnRzIHN0YWNrIGEgc2Vjb25kIGhlYWRlciBvbiBldmVyeSBjb2x1bW4sIHNvIG9uZSBoZWlnaHQga2VlcHMgdGhlXG4gIC8vIHRocmVlIHN0YWNrcyBsZXZlbCB3aGV0aGVyIHRoZXJlIGFyZSBvbmUgb3IgdHdvIGhlYWRlciByb3dzLlxuICAmX19oZWFkIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR4LWJvcmRlci1mYWludDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6ICRwdGQtaGVhZC1oO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR4LWJvcmRlci1mYWludDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6ICRwdGQtcm93LWg7XG4gIH1cblxuICAvLyAtLS0gbmFtZXMgY29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgJl9fbmFtZXMgJl9faGVhZCxcbiAgJl9fbmFtZXMgJl9fcm93IHtcbiAgICBtaW4td2lkdGg6ICRwdGQtbGFiZWwtdztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwdGQtbmFtZS1wYWQ7XG4gIH1cblxuICAvLyBOYW1lL1VuaXQgaGVhZGVycyByZWFkIGxpZ2h0ZXIgdGhhbiB0aGUgcmVzdCBvZiAmX19oZWFkICg2MDApIC0gdGhlIGRhdGVcbiAgLy8gaGVhZGVycyBrZWVwIDYwMCB2aWEgJl9fZGF0ZSdzIG93biBleHBsaWNpdCB3ZWlnaHQgYmVsb3cuXG4gICZfX25hbWVzICZfX2hlYWQsXG4gICZfX2luZm8tLXVuaXQgJl9faGVhZCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gICZfX25hbWVzICZfX3JvdyB7XG4gICAgY29sb3I6ICRwdGQtdGl0bGU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBtaW4td2lkdGg6ICRwdGQtbGFiZWwtdztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLy8gSXRhbGljIGlzIHRoZSBuYW1lcyBjb2x1bW4ncyBqb2IgYWxvbmU6IGluIHRoZSBzY29yZXMgY29sdW1uIHRoZSB2YWx1ZVxuICAvLyBzdGF5cyB1cHJpZ2h0IHNvIHRoZSBkaWdpdHMga2VlcCByZWFkaW5nIGFzIGRhdGEuXG4gICZfX25hbWVzICZfX3Jvdy0tc3VidG90YWwge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLy8gJl9fbmFtZXMgJl9fcm93ICgwLDIsMCkgd291bGQgb3RoZXJ3aXNlIGJlYXQgJl9fcm93LS10b3RhbCdzIGZvbnQtd2VpZ2h0XG4gIC8vICgwLDEsMCkgYW5kIGxlYXZlIHRoZSB0b3RhbCByb3cncyBuYW1lIGF0IHRoZSByZWd1bGFyIDUwMCB3ZWlnaHQuXG4gICZfX25hbWVzICZfX3Jvdy0tdG90YWwge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyBQZXJmb3JtYW5jZSBUZXN0OiBldmVyeSBuYW1lIGlzIGJvbGQgZXhjZXB0IFwiLSBEaWZmZXJlbmNlXCIgcm93cywgd2hpY2hcbiAgLy8gc3RheSBhdCB0aGUgcmVndWxhciB3ZWlnaHQgZXZlbiB3aGVuIGlzU3ViVG90YWwgd291bGQgb3RoZXJ3aXNlIGJvbGRcbiAgLy8gdGhlbS4gVGhlIGV4dHJhICYtLXBlcmZvcm0gYW5jZXN0b3IgY2xhc3MgcHVzaGVzIGJvdGggcnVsZXMgdG8gM1xuICAvLyBzZWxlY3RvcnMgc28gdGhleSBiZWF0ICZfX3Jvdy0tc3VidG90YWwncyA2MDAgKDIgc2VsZWN0b3JzKSBvdXRyaWdodCxcbiAgLy8gYW5kIHRoZSBzZWNvbmQgcnVsZSdzIG93biAzIHNlbGVjdG9ycyBiZWF0IHRoZSBmaXJzdCBieSBzb3VyY2Ugb3JkZXIuXG4gICYtLXBlcmZvcm0gJl9fbmFtZXMgJl9fcm93IHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLy8gUGVyZm9ybWFuY2UgVGVzdCBuYW1lcyBkb24ndCB1c2UgdGhlIGl0YWxpYyBzdWJ0b3RhbCBzdHlsaW5nIG90aGVyXG4gIC8vIHJlcG9ydCB0eXBlcyBkbywgZXhjZXB0IFwiLSBEaWZmZXJlbmNlXCIgcm93cywgd2hpY2ggc3RheSBpdGFsaWMgLSB0aGVcbiAgLy8gcnVsZSBiZWxvdyB3aW5zIGJ5IHNvdXJjZSBvcmRlciBzaW5jZSBib3RoIHNlbGVjdG9ycyBhcmUgMyBjbGFzc2VzIGRlZXAuXG4gICYtLXBlcmZvcm0gJl9fbmFtZXMgJl9fcm93LS1zdWJ0b3RhbCB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgJi0tcGVyZm9ybSAmX19uYW1lcyAmX19yb3ctLWRpZmZlcmVuY2Uge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLy8gLS0tIGluZm8gY29sdW1ucyAoVHJhaW5pbmcgTG9hZCB0b3RhbHMsIGFkZGl0aW9uYWxMYWJlbHMpIC0tLS0tLS0tLS0tLS0tLVxuXG4gICZfX2luZm8gJl9faGVhZCxcbiAgJl9faW5mbyAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLXdpZHRoOiAkcHRkLWluZm8tdztcbiAgICBwYWRkaW5nOiAwICRwdGQtY2VsbC1wYWQ7XG4gIH1cblxuICAmX19pbmZvLS11bml0ICZfX2hlYWQsXG4gICZfX2luZm8tLXVuaXQgJl9fcm93IHtcbiAgICBtaW4td2lkdGg6ICRwdGQtdW5pdC13O1xuICB9XG5cbiAgLy8gT25lIHBpbGwgcGVyIG1lYXN1cmVtZW50IHVuaXQsIG1hdGNoZWQgdG8gdGhlIGZpeGVkIHNldCBvZiB1bml0cyB0aGVcbiAgLy8gUGVyZm9ybWFuY2UgVGVzdCdzIG93biBzY29yaW5nIGFscmVhZHkgcmV0dXJucyAoc2VlIHRoZSBcInNlY1wiL1wiJVwiL2V0Yy5cbiAgLy8gc3VmZml4IFByb2dyZXNzUmVwb3J0U2VydmljZS5qcyBzcGxpdHMgb2ZmIHNjb3JlRW50cnkuU2NvcmVWYWx1ZSkuIE5hbWVkXG4gIC8vIHBlci11bml0IHJhdGhlciB0aGFuIGRlcml2ZWQgZnJvbSB0aGUgc3RyaW5nIHNvIFwiJVwiIC0gbm90IHVzYWJsZSBpbiBhXG4gIC8vIGNsYXNzIG5hbWUgLSBoYXMgYSByZWFsIGNsYXNzIHRvIGhhbmcgb2ZmIG9mLlxuICAmX191bml0LXBpbGwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gICAgcGFkZGluZzogMnB4IDhweDtcblxuICAgIC8vIEZpeGVkIHdpZHRocyBwZXIgbGFiZWwgbGVuZ3RoICgxLzIvMy1jaGFyYWN0ZXIgdW5pdHMpOyA0KyBjaGFyYWN0ZXJcbiAgICAvLyB1bml0cyAocmVwcywgc2NvcmUpIGhhdmUgbm8gc3BlYyBhbmQgZmFsbCBiYWNrIHRvIGh1Z2dpbmcgdGhlaXIgY29udGVudC5cbiAgICAmLS1wZXJjZW50IHsgd2lkdGg6IDI2cHg7IH1cbiAgICAmLS1jbSxcbiAgICAmLS1mdCxcbiAgICAmLS1pbixcbiAgICAmLS1rZyxcbiAgICAmLS1sYiAgICAgIHsgd2lkdGg6IDM0cHg7IH1cbiAgICAmLS1zZWMgICAgIHsgd2lkdGg6IDM3cHg7IH1cblxuICAgICYtLWNtLFxuICAgICYtLWZ0LFxuICAgICYtLWluICAgICAgeyBiYWNrZ3JvdW5kOiAjRkRFQUQ3OyBjb2xvcjogI0I5MzgxNTsgfVxuICAgICYtLWtnLFxuICAgICYtLWxiICAgICAgeyBiYWNrZ3JvdW5kOiAjRUNFOUZFOyBjb2xvcjogIzU5MjVEQzsgfVxuICAgICYtLXBlcmNlbnQgeyBiYWNrZ3JvdW5kOiAjRkNFN0Y2OyBjb2xvcjogI0MxMTU3NDsgfVxuICAgICYtLXNlYyAgICAgeyBiYWNrZ3JvdW5kOiAjRDFFOUZGOyBjb2xvcjogIzE3NUNEMzsgfVxuICAgICYtLXJlcHMgICAgeyBiYWNrZ3JvdW5kOiAjRDNGOERGOyBjb2xvcjogIzE3ODAzRDsgfVxuICAgICYtLXNjb3JlICAgeyBiYWNrZ3JvdW5kOiAjRTlFQUVCOyBjb2xvcjogIzQxNDY1MTsgfVxuICB9XG5cbiAgLy8gLS0tIHNjb3JlcyBjb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICZfX3Njb3JlcyAmX19oZWFkLFxuICAmX19zY29yZXMgJl9fcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1pbi13aWR0aDogJHB0ZC1zY29yZS13O1xuICAgIHBhZGRpbmc6IDAgJHB0ZC1jZWxsLXBhZDtcbiAgfVxuXG4gIC8vIFVuZGVybGluZWQgcGVyIHRoZSBkZXNpZ24uIFRoZXJlIGlzIG5vIGNsaWNrIGhhbmRsZXIgYmVoaW5kIGl0LCBzbyB0aGVcbiAgLy8gY3Vyc29yIGlzIGxlZnQgYWxvbmUgcmF0aGVyIHRoYW4gcHJvbW90ZWQgdG8gYSBwb2ludGVyLlxuICAmX19kYXRlIHtcbiAgICBjb2xvcjogJHB0ZC1kYXRlLWg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICAmX19oZWFkLS1zaWRlcyB7XG4gICAgPiBzcGFuIHtcbiAgICAgIG1pbi13aWR0aDogJHB0ZC1zaWRlLXc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIGNlbGxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIE5vIGBjb2xvcmAgaGVyZSwgYW5kIG5vbmUgb24gYW55IGRlc2NlbmRhbnQgLSBzZWUgdGhlIGZpbGUgaGVhZGVyLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgJl9fc2lkZXMge1xuICAgID4gc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtaW4td2lkdGg6ICRwdGQtc2lkZS13O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSB0b3RhbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBBcHBsaWVkIGFjcm9zcyBldmVyeSBjb2x1bW4gc28gdGhlIGZpbGwgcnVucyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgcm93LlxuICAvLyBPbmx5IHR5cGUtMSBzY29yZSBlbnRyaWVzIGNhcnJ5IGlzVG90YWwgKFByb2dyZXNzUmVwb3J0U2VydmljZS5qczo1MDkpLCBzb1xuICAvLyBvbiBUMi9UTC9QRVJGT1JNIHJlcG9ydHMgdGhlIGZpbGwgbGFuZHMgb24gdGhlIG5hbWVzIGNvbHVtbiBhbG9uZSAtIHRoZVxuICAvLyBzYW1lIHJlYWNoIHRoZSBsZWdhY3kgcHVycGxlIGJhciBoYWQuXG4gICZfX3Jvdy0tdG90YWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdGQtdG90YWwtYmc7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIC0tLSBncm91cCBoZWFkZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIE9uZSBvZiB0aGVzZSBpcyBzcGxpY2VkIGludG8gZXZlcnkgY29sdW1uIGF0IHRoZSBzYW1lIGluZGV4IChzZWVcbiAgLy8gUHJvZ3Jlc3NSZXBvcnRDb250cm9sbGVyLmpzJ3MgX3JlbmRlclRlc3REZXRhaWxzKSwgc28gdGhlIHNhbWUgZml4ZWQsXG4gIC8vIHNob3J0ZXIgaGVpZ2h0IGFuZCBmaWxsIGxhbmQgb24gZXZlcnkgY29sdW1uIGZvciB0aGF0IHJvdyBhbmQgcmVhZCBhcyBhXG4gIC8vIHNpbmdsZSBmdWxsLXdpZHRoIGJhbmQgLSB0aGUgc2FtZSBwZXItY29sdW1uLWZpbGwgdGVjaG5pcXVlICZfX3Jvdy0tdG90YWxcbiAgLy8gdXNlcyBhYm92ZS5cbiAgJl9fcm93LS1ncm91cC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7XG4gICAgbWluLWhlaWdodDogMjRweDtcbiAgfVxuXG4gICZfX2dyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogIzZENkQ2RDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAvLyAtLS0gbGVnZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVGhlIHRhYmxlJ3MgbGFzdCByb3csIGluc2lkZSB0aGUgYm9yZGVyZWQgYm94IHJhdGhlciB0aGFuIGNhcHRpb25lZCBiZWxvd1xuICAvLyBpdC4gSXQgc2l0cyBvdXRzaWRlIHRoZSBob3Jpem9udGFsbHktc2Nyb2xsaW5nIHNjb3JlIGNvbHVtbnMsIHNvIGl0IHN0YXlzXG4gIC8vIHB1dCBhbmQgc3RheXMgcmVhZGFibGUgaG93ZXZlciBmYXIgdGhlIGRhdGVzIGFyZSBzY3JvbGxlZC5cbiAgLy9cbiAgLy8gSXRzIHRvcCBydWxlIGlzIGFuIGluc2V0IHNoYWRvdyBsaWtlIGV2ZXJ5IG90aGVyIHJvdyBzZXBhcmF0b3IsIGJ1dCBkcmF3blxuICAvLyBvbiB0aGUgbGVhZGluZyBlZGdlIC0gdGhlIGNvbHVtbnMgYmFuZCBhYm92ZSBoYXMgYWxyZWFkeSBoYWQgaXRzIG93blxuICAvLyB0cmFpbGluZyBoYWlybGluZSBjbGlwcGVkIGF3YXksIHNvIHRoaXMgaXMgdGhlIHNpbmdsZSBkaXZpZGVyIGJldHdlZW4gdGhlXG4gIC8vIGRhdGEgYW5kIHRoZSBrZXkuXG4gICZfX2xlZ2VuZCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtaW4taGVpZ2h0OiAkcHRkLWxlZ2VuZC1oO1xuICAgIHBhZGRpbmctbGVmdDogJHB0ZC1uYW1lLXBhZDtcbiAgfVxuXG4gICZfX2xlZ2VuZC1pdGVtIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2xlZ2VuZC1kb3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcblxuICAgICYtLXBvb3IgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHB0ZC1wb29yOyB9XG4gICAgJi0tbW9kZXJhdGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHRkLW1vZGVyYXRlOyB9XG4gICAgJi0tZ29vZCAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHRkLWdvb2Q7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3Jlc3MtZGV0YWlscyB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgIC8vIEJlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludCB0aGUgY29sdW1ucyBiYW5kIHNjcm9sbHMgYXMgb25lIHBpZWNlIGluc3RlYWRcbiAgICAvLyBvZiB0aGUgc2NvcmVzIGNvbHVtbiBzY3JvbGxpbmcgaW5zaWRlIGEgaGVsZC1zdGlsbCBuYW1lcyBjb2x1bW4sIHdoaWNoIGlzXG4gICAgLy8gd2hhdCB0aGUgbGVnYWN5IHJ1bGVzIGRpZCBhdCB0aGlzIHdpZHRoLiBUaGUgc2Nyb2xsIGdvZXMgaGVyZSByYXRoZXIgdGhhblxuICAgIC8vIG9uIF9fZ3JpZCBzbyB0aGUgbGVnZW5kIHJvdywgd2hpY2ggaXMgX19ncmlkJ3Mgb3RoZXIgY2hpbGQsIHN0YXlzIHB1dCBhbmRcbiAgICAvLyBzdGF5cyBmdWxsIHdpZHRoLiBvdmVyZmxvdy15IHN0YXlzIGhpZGRlbiBzbyB0aGUgLTFweCBjbGlwIG9mIHRoZVxuICAgIC8vIHRyYWlsaW5nIGhhaXJsaW5lIHN1cnZpdmVzLlxuICAgICZfX2NvbHVtbnMge1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmX19zY29yZXMge1xuICAgICAgb3ZlcmZsb3cteDogdW5zZXQ7XG4gICAgICBvdmVyZmxvdy15OiB1bnNldDtcbiAgICB9XG5cbiAgICAvLyBGb3VyIGl0ZW1zIG9uIG9uZSBsaW5lIGRvIG5vdCBmaXQgYSBwaG9uZTsgdGhlIGRvdHMga2VlcCB0aGVtIHJlYWRhYmxlXG4gICAgLy8gb25jZSB3cmFwcGVkLCBhbmQgdGhlIHJvdyBncm93cyBwYXN0IGl0cyAzNnB4IGZsb29yLlxuICAgICZfX2xlZ2VuZCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICBwYWRkaW5nOiA4cHggMCA4cHggJHB0ZC1uYW1lLXBhZDtcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUaGUgXCJEZXRhaWxlZCBQcm9ncmFtcyBSZXN1bHRzXCIgY2FyZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwcm9ncmVzcyByZXBvcnQnc1xuICAgUHJvZ3JhbXMgdGFiICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgU2libGluZyBvZiBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzIGFuZCBkZWxpYmVyYXRlbHkgaXRzIG93biBibG9jayByYXRoZXIgdGhhblxuICAgYSBtb2RpZmllciBvZiBpdC4gVGhlIHR3byBjYXJkcyBzaGFyZSBhIHNoZWxsIC0gc2FtZSBib3JkZXIsIHJhZGl1cywgc2hhZG93LFxuICAgdGl0bGUgYmFyLCBoZWFkZXIvcm93IGhlaWdodHMgYW5kIGhhaXJsaW5lIHRyZWF0bWVudCAtIGJ1dCBub3RoaW5nIGVsc2U6XG4gICAucHJvZ3Jlc3MtZGV0YWlscyBpcyB0aHJlZSBwYXJhbGxlbCBmbGV4IGNvbHVtbnMgYmVjYXVzZSBpdHMgZGF0YSBhcnJpdmVzXG4gICB0cmFuc3Bvc2VkLCB3aGlsZSB2bS5kZXRhaWxQcm9ncmFtcyBpcyBvbmUgb2JqZWN0IHBlciByb3csIHNvIHRoaXMgb25lIGlzIGFcbiAgIHBsYWluIHJvdy1tYWpvciB0YWJsZS4gU2hhcmluZyBhIGNsYXNzIHdvdWxkIG1lYW4gY2FycnlpbmcgdGhhdCBjb2x1bW5cbiAgIG1hY2hpbmVyeSBmb3IgYSB0YWJsZSB0aGF0IGhhcyBubyB1c2UgZm9yIGl0LlxuXG4gICBUaGUgc2hlbGwgY29uc3RhbnRzIGJlbG93IGFyZSByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCBmcm9tXG4gICBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzLCBiZWNhdXNlIFNDU1MgdmFyaWFibGVzIGFyZSBmaWxlLWxvY2FsIHVubGVzcyBob2lzdGVkXG4gICB0byBfZGVzaWduX3Rva2Vucy5zY3NzLiBJZiB5b3UgY2hhbmdlIGEgcm93IGhlaWdodCBpbiBvbmUgY2FyZCwgY2hhbmdlIGl0IGluXG4gICB0aGUgb3RoZXIgb3IgdGhlIHR3byBzdG9wIHJlYWRpbmcgYXMgb25lIGZhbWlseS5cblxuICAgUmVwbGFjZXMgLnJlcG9ydC1wcm9ncmFtcy1jb250YWluZXIgLyAucHJvZ3JhbS1ncm91cC1kcm9wZG93bi1jb250YWluZXIsXG4gICB3aGljaCB3ZXJlIHJlbW92ZWQgZnJvbSBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MgLSB0ZWFtcmVwb3J0Lmh0bWwgbmV2ZXJcbiAgIHJlbmRlcmVkIHRoZW0sIHNvIG5vdGhpbmcgZWxzZSB3YXMgb24gdGhvc2UgcnVsZXMuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4kcGdkLXRvdGFsLWJnOiAgI2Y3ZjdmODsgICAvLyBUb3RhbCByb3cgZmlsbFxuXG4vLyBLZXB0IGluIHN0ZXAgd2l0aCAkcHRkLWhlYWQtaCAvICRwdGQtcm93LWggaW4gX3Byb2dyZXNzX2RldGFpbHMuc2NzcyAtIHNlZVxuLy8gdGhlIGZpbGUgaGVhZGVyLlxuJHBnZC1oZWFkLWg6ICAgIDM0cHg7XG4kcGdkLXJvdy1oOiAgICAgNDRweDtcblxuJHBnZC1yb3ctcGFkOiAgIDIwcHg7ICAgICAgLy8gbGVhZGluZyBpbnNldCwgcmVzdGF0ZWQgb24gdGhlIGhlYWRlclxuJHBnZC1jZWxsLXBhZDogIDhweDtcblxuLy8gQ29sdW1uIHdpZHRocywgcGVyIGRlc2lnbiBzcGVjLiBFdmVyeSBjb2x1bW4gaXMgYSBmaXhlZCBmbGV4LWJhc2lzLCBub3QgYVxuLy8gbWluLXdpZHRoOiB0aGUgaGVhZGVyIGxhYmVscyBoYXZlIHRvIHN0YXkgb3ZlciB0aGVpciB2YWx1ZXMgd2hhdGV2ZXIgdGhlXG4vLyBsb25nZXN0IHByb2dyYW0gbmFtZSBpcywgYW5kIGEgbWluLXdpZHRoIHdvdWxkIGxldCBvbmUgbG9uZyBuYW1lJ3Mgcm93IGdyb3dcbi8vIHdpZGVyIHRoYW4gdGhlIHJlc3QgYW5kIHdhbGsgdGhlIGNvbHVtbnMgb3V0IG9mIHJlZ2lzdGVyIC0gdGhlIHJvdy1tYWpvclxuLy8gZXF1aXZhbGVudCBvZiB0aGUgcGFyYWxsZWwtY29sdW1uIHRyYXAgX3Byb2dyZXNzX2RldGFpbHMuc2NzcydzIGhlYWRlclxuLy8gd2FybnMgYWJvdXQuIEEgbmFycm93IHZpZXdwb3J0IHNjcm9sbHMgdGhlIHRhYmxlICgmX19ncmlkKSBpbnN0ZWFkLlxuJHBnZC1uYW1lLXc6ICAgIDIyMHB4O1xuJHBnZC10eXBlLXc6ICAgIDE2MHB4O1xuJHBnZC1jb3VudC13OiAgIDE0NHB4O1xuJHBnZC1wZXJjZW50LXc6IDE0NHB4O1xuJHBnZC1kYXRlLXc6ICAgIDE0NHB4O1xuXG4vLyBQZXIgZGVzaWduIHNwZWMuIENsZWFycyB0aGUgcGVyY2VudCBjb2x1bW4ncyBvd24gcGFkZGluZyBwbHVzIGl0cyB2YWx1ZVxuLy8gdGV4dCAoXCIxMDAlXCIsIHRydW5jYXRlZCAtIHNlZSAmX19wZXJjZW50LXZhbHVlKSB3aXRoIHJvb20gdG8gc3BhcmUgLSBzZWVcbi8vICZfX2NlbGwtLXBlcmNlbnQuXG4kcGdkLWJhci13OiAgICAgNzVweDtcbiRwZ2QtYmFyLWg6ICAgICA2cHg7XG5cbi5wcm9ncmFtcy1kZXRhaWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8vIE5vdCBmbGV4KDEgMCBhdXRvKTogaW5zaWRlIC52aWV3LWNvbnRhaW5lci5jb2x1bW4gdGhpcyBjYXJkIHdvdWxkIGdyb3cgaW50b1xuICAvLyB3aGF0ZXZlciBoZWlnaHQgdGhlIHBhZ2UgY29sdW1uIGhhZCBsZWZ0IG92ZXIgYW5kIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbFxuICAvLyB1bmRlciB0aGUgVG90YWwgcm93LlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgLy8gRXZlcnkgY29sdW1uIGJlbG93IGlzIGEgZml4ZWQgcHggd2lkdGggKHNlZSB0aGUgZmlsZSBoZWFkZXIpLCBzbyB0aGUgdGFibGVcbiAgLy8gaGFzIGEgcmVhbCwga25vd24gd2lkdGggbm93IHJhdGhlciB0aGFuIG9uZSB0aGF0IGRlcGVuZHMgb24gY29udGVudCBvciB0aGVcbiAgLy8gcGFnZSBjb2x1bW4ncyBvd24gd2lkdGguIC52aWV3LWNvbnRhaW5lci5jb2x1bW4ncyBkZWZhdWx0XG4gIC8vIGFsaWduLWl0ZW1zOiBzdHJldGNoIHdvdWxkIG90aGVyd2lzZSBmb3JjZSB0aGlzIGNhcmQgdG8gdGhlIGZ1bGwgY29sdW1uXG4gIC8vIHdpZHRoIHJlZ2FyZGxlc3MgLSBtYXRjaGVzIC5wcm9ncmVzcy1kZXRhaWxzJ3Mgb3duIGFsaWduLXNlbGYgZm9yIHRoZSBzYW1lXG4gIC8vIHJlYXNvbi5cbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgdGhlIE92ZXJ2aWV3IGNhcmQgYWJvdmU7IHRoZSBib3R0b20gbWFyZ2luIGlzIHRoZSBwYWdlJ3Mgb3duIHRhaWwuXG4gIG1hcmdpbjogMzBweCAwIDUwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX190eXBlLWZpbHRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190eXBlLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgfVxuXG4gIC8vIFNjb3BlZCB0byB0aGlzIGNhcmQncyBUeXBlIGRyb3Bkb3duIG9ubHkgLSB0aGUgc2hhcmVkIC5zZWxlY3QtcGlsbCBydWxlcyBpblxuICAvLyBfc2VsZWN0X3BpbGwuc2NzcyBhbHNvIHN0eWxlIHRoZSBkYXRlIHNlbGVjdG9yIGluIHRoZSBwYWdlJ3Mgb3B0aW9ucyBiYXIsXG4gIC8vIHdoaWNoIHN0YXlzIGF0IGl0cyBub3JtYWwgNDBweCBoZWlnaHQuXG4gICZfX3R5cGUtZmlsdGVyIC5zZWxlY3QtcGlsbCAuZHJvcGRvd24td3JhcHBlciAudHJpZ2dlci5waWxsIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBUaGUgaGFpcmxpbmUgYm94IGFyb3VuZCB0aGUgdGFibGUuIG92ZXJmbG93OmhpZGRlbiBpcyB3aGF0IGNsaXBzIHRoZSBsYXN0XG4gIC8vIHJvdydzIHNlcGFyYXRvciAocHVzaGVkIDFweCBwYXN0IHRoZSBib3ggYnkgdGhlIC0xcHggbWFyZ2luIGJlbG93KSBhbmQgd2hhdFxuICAvLyByb3VuZHMgdGhlIFRvdGFsIHJvdydzIGJvdHRvbSBjb3JuZXJzIGFnYWluc3QgaXRzIGZpbGwuXG4gICZfX2dyaWQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgLy8gQmxvY2stbGV2ZWwgZmxleCB3b3VsZCBkZWZhdWx0IHRvIHdpZHRoOiAxMDAlIG9mIHRoZSBjYXJkIHJlZ2FyZGxlc3Mgb2ZcbiAgICAvLyBob3cgbmFycm93IHRoZSBmaXhlZCBjb2x1bW5zIGFkZCB1cCB0bywgbGVhdmluZyB0aGUgYm9yZGVyIHRyYWlsaW5nIG9mZlxuICAgIC8vIGludG8gZW1wdHkgc3BhY2UgcGFzdCB0aGUgbGFzdCBjb2x1bW47IGlubGluZS1mbGV4IHNocmluay13cmFwcyBpdCB0b1xuICAgIC8vIGl0cyBjb250ZW50IGluc3RlYWQsIHNhbWUgYXMgLnByb2dyZXNzLWRldGFpbHNfX2dyaWQuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8vIEEgdGFibGUgd2lkZXIgdGhhbiB0aGUgY2FyZCBzY3JvbGxzIGhlcmUgcmF0aGVyIHRoYW4gb3ZlcmZsb3dpbmcgaXQuXG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC8vIC0tLSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBTZXBhcmF0b3JzIGFyZSBpbnNldCBib3gtc2hhZG93cywgbm90IGJvcmRlcnMsIHNvIGEgcm93IGNvc3RzIGV4YWN0bHkgaXRzXG4gIC8vIHN0YXRlZCBoZWlnaHQgLSB0aGUgc2FtZSByZWFzb24gX3Byb2dyZXNzX2RldGFpbHMuc2NzcyBkcmF3cyB0aGVtIHRoYXQgd2F5LlxuICAvLyBIZXJlIGl0IGFsc28ga2VlcHMgdGhlIGhlYWRlciBhbmQgdGhlIFRvdGFsIHJvdyBmcm9tIHBpY2tpbmcgdXAgYW4gZXh0cmFcbiAgLy8gcGl4ZWwgdGhlaXIgZmlsbHMgd291bGQgdGhlbiBzaXQgb2ZmLWNlbnRyZSBpbi5cblxuICAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJHBnZC1yb3ctaDtcbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIGZpeGVkIGNvbHVtbnMgd291bGQgc2hyaW5rIHVuZGVyIGEgbmFycm93IGNhcmQgaW5zdGVhZFxuICAgIC8vIG9mIGhhbmRpbmcgdGhlIG92ZXJmbG93IHRvIF9fZ3JpZCdzIHNjcm9sbGVyLlxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIH1cblxuICAvLyBEcm9wcyB0aGUgaGFpcmxpbmUgdW5kZXIgdGhlIHRhYmxlJ3MgbGFzdCByb3cgd2l0aG91dCBhXG4gIC8vIGA6bGFzdC1jaGlsZCB7IGJveC1zaGFkb3c6IG5vbmUgfWA6IHRoZSByb3cgaXMgcHVzaGVkIDFweCBwYXN0IF9fZ3JpZCdzXG4gIC8vIGNvbnRlbnQgYm94IGFuZCB0aGUgY2xpcCBhYm92ZSBzd2FsbG93cyBpdHMgc2VwYXJhdG9yLiBEb25lIHRoaXMgd2F5IHNvIHRoZVxuICAvLyBUb3RhbCByb3cncyBmaWxsIHN0aWxsIHJlYWNoZXMgX19ncmlkJ3Mgcm91bmRlZCBib3R0b20gY29ybmVycywgd2hpY2ggYVxuICAvLyBzaGFkb3ctbGVzcyByb3cgd291bGQgbGVhdmUgYSAxcHggd2hpdGUgc2VhbSB1bmRlci5cbiAgJl9fcm93Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIH1cblxuICAmX19yb3ctLWhlYWQge1xuICAgIG1pbi1oZWlnaHQ6ICRwZ2QtaGVhZC1oO1xuICB9XG5cbiAgLy8gVGhlIHR5cGUvc2l6ZS9jb2xvdXIgYWJvdmUgc2V0IG9uICZfX3Jvdy0taGVhZCBpdHNlbGYgbmV2ZXIgcmVhY2hlZCB0aGVcbiAgLy8gaGVhZGVyIHRleHQ6IGV2ZXJ5ICZfX2NlbGwgKGFuZCAmX19jZWxsLS1uYW1lIG9uIHRvcCBvZiBpdCkgc2V0cyBpdHMgb3duXG4gIC8vIGZvbnQtc2l6ZS93ZWlnaHQvY29sb3VyIGRpcmVjdGx5LCBhbmQgYSBkZXNjZW5kYW50J3Mgb3duIGRlY2xhcmF0aW9uXG4gIC8vIGFsd2F5cyB3aW5zIG92ZXIgaW5oZXJpdGluZyBvbmUgZnJvbSBhbiBhbmNlc3Rvciwgd2hhdGV2ZXIgZWl0aGVyXG4gIC8vIHNlbGVjdG9yJ3Mgc3BlY2lmaWNpdHkgaXMuIFRoaXMgcmVzdGF0ZXMgaXQgb24gdGhlIGNlbGxzIHRoZW1zZWx2ZXMgLSBhdFxuICAvLyAwLDIsMCwgc28gaXQgYWxzbyBiZWF0cyAmX19jZWxsLS1uYW1lJ3MgMCwxLDAgY29sb3VyL3dlaWdodCB3aXRob3V0XG4gIC8vIG5lZWRpbmcgYSBzZXBhcmF0ZSBvdmVycmlkZSBmb3IgdGhhdCBjb2x1bW4uXG4gIC8vXG4gIC8vIFNwZWMgY2FsbHMgdGhlIGZhbWlseSAnTnVkaXN0YSBUUklBTCcgLSB0aGF0J3MgRmlnbWEncyBuYW1lIGZvciBhIHRyaWFsXG4gIC8vIGxpY2Vuc2Ugb2YgdGhlIHNhbWUgd2ViZm9udCB0aGlzIHdob2xlIGNhcmQgYWxyZWFkeSByZW5kZXJzIGluXG4gIC8vICgnTnVkaXN0YScsIHJlZ2lzdGVyZWQgaW4gX2ZvbnRzLnNjc3MpOyBub3RoaW5nIGhlcmUgaXMgb24gYSBkaWZmZXJlbnRcbiAgLy8gZmFtaWx5LiBTcGVjIGFsc28gYXNrcyBmb3IgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiwgd2hpY2ggaGFzIG5vIGVmZmVjdCBpblxuICAvLyBhbnkgYnJvd3NlciB0aGlzIGFwcCBzdXBwb3J0cyBhbmQgaXMgbGVmdCBvZmYuXG4gICZfX3Jvdy0taGVhZCAmX19jZWxsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgLy8gVGhlIHN1bW1hcnkgcm93IHRoZSBzZXJ2ZXIgZmxhZ3Mgd2l0aCBJc1N1bW1hcnlUb3RhbC4gSXQgaXMgdGhlIHRhYmxlJ3MgbGFzdFxuICAvLyByb3csIHNvIGl0cyBmaWxsIHJ1bnMgaW50byBfX2dyaWQncyByb3VuZGVkIGJvdHRvbSBjb3JuZXJzLlxuICAmX19yb3ctLXRvdGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdkLXRvdGFsLWJnO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyAtLS0gY2VsbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBjb2xvciBoZXJlIGlzIGV2ZXJ5IGRhdGEgcm93J3MgdGV4dCAtIHRoZSBoZWFkZXIgb3ZlcnJpZGVzIGl0IGJhY2sgdG9cbiAgLy8gJGJsYWNrLTYwMCAoJl9fcm93LS1oZWFkICZfX2NlbGwgYmVsb3cpLCB3aGljaCBpcyB3aGF0IGFjdHVhbGx5IGtlZXBzXG4gIC8vIHRoZSBoZWFkZXIgZnJvbSByZWFkaW5nIHRoaXMgc2FtZSBkYXJrLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBhZGRpbmc6IDAgJHBnZC1jZWxsLXBhZDtcbiAgfVxuXG4gIC8vIEZpeGVkIHdpZHRoLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIGNvbHVtbiBub3cgKHNlZSB0aGUgZmlsZSBoZWFkZXIpIC0gYnV0XG4gIC8vIHN0aWxsIHRoZSBvbmUgY29sdW1uIHdob3NlIGNvbnRlbnQgY2FuIGdlbnVpbmVseSBydW4gbG9uZywgc28gaXQgYWxvbmVcbiAgLy8gZ2V0cyB0aGUgZWxsaXBzaXMgdHJlYXRtZW50IHJhdGhlciB0aGFuIGJlaW5nIGxlZnQgdG8gb3ZlcmZsb3cgdGhlIHJvdy5cbiAgJl9fY2VsbC0tbmFtZSB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1uYW1lLXcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwZ2Qtcm93LXBhZDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAkcGdkLW5hbWUtdztcbiAgfVxuXG4gICZfX2NlbGwtLXR5cGUge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwICRwZ2QtdHlwZS13KTtcbiAgICBnYXA6IDRweDtcbiAgICB3aWR0aDogJHBnZC10eXBlLXc7XG4gIH1cblxuICAmX19jZWxsLS1jb3VudCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1jb3VudC13KTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIHdpZHRoOiAkcGdkLWNvdW50LXc7XG4gIH1cblxuICAvLyBCYXIgYW5kIHZhbHVlIHNoYXJlIG9uZSBjb2x1bW46IHRoZSBiYXIgaXMgdGhlIHZhbHVlJ3MgcmVhZGluZywgc28gcHV0dGluZ1xuICAvLyBhIGNvbHVtbiBib3VuZGFyeSBiZXR3ZWVuIHRoZW0gd291bGQgc2VwYXJhdGUgYSBudW1iZXIgZnJvbSBpdHMgb3duIHNjYWxlLlxuICAmX19jZWxsLS1wZXJjZW50IHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCAkcGdkLXBlcmNlbnQtdyk7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6ICRwZ2QtcGVyY2VudC13O1xuICB9XG5cbiAgJl9fY2VsbC0tZGF0ZSB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1kYXRlLXcpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgd2lkdGg6ICRwZ2QtZGF0ZS13O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwZ2Qtcm93LXBhZDtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gdHlwZSBiYWRnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBOb3QgYSBuZXcgYmFkZ2UgZGVzaWduOiB0aGlzIHJlc3RhdGVzIC5wcm9ncmFtLWNhcmRfX3RhZy0tdHlwZVxuICAvLyAoX3Byb2dyYW1fY2FyZHMuc2NzcyksIHRoZSBzYW1lIHRhZyB0aGUgUHJvZ3JhbXMgcGFnZSBjYXJkIGFuZCBUb2RheSdzXG4gIC8vIEFza3MgYWxyZWFkeSBjYXJyeSBhIHByb2dyYW0ncyBkZWxpdmVyeSB0eXBlIG9uLCBzbyBhbGwgdGhyZWUgcmVhZCBhc1xuICAvLyBvbmUgY29tcG9uZW50LiBSZXN0YXRlZCByYXRoZXIgdGhhbiBzaGFyZWQgYmVjYXVzZSBTQ1NTIHZhcmlhYmxlc1xuICAvLyAoJHByb2dyYW0tY2FyZC10YWctYmcpIGFyZSBmaWxlLW9yZGVyIGRlcGVuZGVudCB1bmRlciBAaW1wb3J0IC0gc2VlIHRoZVxuICAvLyBmaWxlIGhlYWRlciAtIGFuZCBwcm9ncmFtX2NhcmRzLmh0bWwncyBtYXJrdXAgaXMgaXRzIG93biB0ZW1wbGF0ZSwgbm90XG4gIC8vIG9uZSB0aGlzIHZpZXcgaW5jbHVkZXMuXG5cbiAgJl9fdHlwZS1waWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmY0OyAvLyAkcHJvZ3JhbS1jYXJkLXRhZy1iZyBpbiBfcHJvZ3JhbV9jYXJkcy5zY3NzXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgLy8gZmxleDogMCAxIGF1dG8gKG5vdCB0aGUgcm93IGRlZmF1bHQgMCAwIGF1dG8pIHBsdXMgbWluLXdpZHRoOiAwLCBzbyB0aGVcbiAgICAvLyB0YWcgY2FuIGFjdHVhbGx5IGdpdmUgZ3JvdW5kIHRvICZfX3R5cGUtcGlsbC1sYWJlbCdzIGVsbGlwc2lzIGJlbG93XG4gICAgLy8gaW5zdGVhZCBvZiBwdXNoaW5nIHBhc3QgdGhlIDE2MHB4IGNvbHVtbiAtIFwiUHJhY3RpdGlvbmVyIExpZ2h0XCIgaXMgdGhlXG4gICAgLy8gbG9uZyBuYW1lIGhlcmUgYW5kIGRvZXMgbm90IG90aGVyd2lzZSBmaXQuIC5wcm9ncmFtLWNhcmRfX3RhZyBoYXMgbm9cbiAgICAvLyBlcXVpdmFsZW50IGNvbHVtbiB0byBmaXQgaW5zaWRlLCBzbyBpdCBuZWVkcyBub25lIG9mIHRoaXMuXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA0cHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fdHlwZS1pY29uIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTJweDtcbiAgfVxuXG4gIC8vIFRoZSB0YWcgY2FuIHN0aWxsIGJlIHNxdWVlemVkIG5hcnJvd2VyIHRoYW4gaXRzIGxhYmVsIGF0IHZlcnkgc21hbGxcbiAgLy8gd2lkdGhzIChhIHBob25lLCBtb3N0bHkpOyBlbGxpcHNpcyB0aGVyZSBiZWF0cyBhIGJhZGdlIHRoYXQgYmxvd3Mgb3V0IGl0c1xuICAvLyBvd24gY29sdW1uLlxuICAmX190eXBlLXBpbGwtbGFiZWwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyAtLS0gY29tcGxldGlvbiBiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmX19iYXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogJHBnZC1iYXItaDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkcGdkLWJhci13O1xuICB9XG5cbiAgLy8gTm8gbWluLXdpZHRoOiAwJSBtdXN0IHJlYWQgYXMgYW4gZW1wdHkgdHJhY2suIEEgdmlzaWJsZSBudWIgYXQgemVybyB3b3VsZFxuICAvLyBiZSBhIGxpZSAtIHNhbWUgcnVsZSBhcyB0aGUgT3ZlcnZpZXcgdGlsZXMnIGJhcnMuXG4gICZfX2Jhci1maWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8vIE5vIGNvbG91ciBjbGFzcyAodGhpcyB1c2VkIHRvIGNhcnJ5IC5ibHVlLXRleHQpIC0gdGhlIHZhbHVlIHJlYWRzIGFzIHBsYWluXG4gIC8vIGRhdGEsIHRoZSBzYW1lICMzMzMgYXMgdGhlIFNjaGVkdWxlZC9Db21wbGV0ZWQvZGF0ZSBjZWxscyBiZXNpZGUgaXQsXG4gIC8vIHJhdGhlciB0aGFuIGNhbGxpbmcgaXRzZWxmIG91dC4gTm90aGluZyBoZXJlIHNldHMgYGNvbG9yYCBhdCBhbGwsIHNvIGl0XG4gIC8vIGluaGVyaXRzIHRoYXQgZGVmYXVsdCByYXRoZXIgdGhhbiByZXN0YXRpbmcgaXQuXG4gICZfX3BlcmNlbnQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyAtLS0gaGVhZGVyIHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy9cbiAgLy8gVGhlIGljb24gZm9udCBoYXMgbm8gcXVlc3Rpb24gbWFyaywgc28gdGhlIGNpcmNsZSBpcyBkcmF3biBoZXJlIGFuZCB0aGVcbiAgLy8gZ2x5cGggaXMgdGhlIGVsZW1lbnQncyBvd24gdGV4dC4gdG9vbC10aXAtdG9nZ2xlIHNldHMgcG9zaXRpb246cmVsYXRpdmUgb25cbiAgLy8gaXQgYW5kIGhhbmdzIHRoZSBidWJibGUgaW5zaWRlLCB3aGljaCBpcyB3aHkgdGhpcyBpcyBhbiBpbmxpbmUtZmxleCBib3hcbiAgLy8gcmF0aGVyIHRoYW4gYSA6YmVmb3JlIG9uIHRoZSBsYWJlbC5cblxuICAmX190aXAge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdpZHRoOiAxNHB4O1xuXG4gICAgLy8gdG9vbC10aXAtdG9nZ2xlIHJlcGxhY2VzIHRoZSBlbGVtZW50J3MgY2hpbGRyZW4gd2l0aCBpdHMgb3duIHRlbXBsYXRlLCBzb1xuICAgIC8vIGEgbGl0ZXJhbCBcIj9cIiBpbiB0aGUgbWFya3VwIHdvdWxkIGJlIGRpc2NhcmRlZC4gVGhlIGVzdGFibGlzaGVkIGljb25zIGluXG4gICAgLy8gdGhpcyBwYWdlICguaWNvbi1pbmZvKSBjb21lIGZyb20gYSBmb250IDpiZWZvcmUgZm9yIHRoZSBzYW1lIHJlYXNvbjsgdGhpc1xuICAgIC8vIG9uZSBoYXMgbm8gZ2x5cGggaW4gdGhlIGljb24gZm9udCwgc28gaXQgZHJhd3MgaXRzIG93bi5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnPyc7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgYnViYmxlIGl0c2VsZi4gU2NvcGVkIHRvIHRoaXMgb25lIHRyaWdnZXIgcmF0aGVyIHRoYW4gcmVzdHlsaW5nXG4vLyAudG9vbHRpcC8udG9vbHRpcC1ib3R0b20gaW4gX3Rvb2x0aXAuc2Nzcywgd2hpY2ggaXMgdGhlIHNoYXJlZCBkYXJrLWdyZXlcbi8vIGJ1YmJsZSBldmVyeSBvdGhlciB0b29sLXRpcC10b2dnbGUvdG9vbC10aXAtZmFkZSBpbnN0YW5jZSBpbiB0aGUgYXBwIHN0aWxsXG4vLyB1c2VzIChUcmFpbmluZyBMb2FkJ3MgaGVhZGVycyBhbW9uZyB0aGVtKSAtIHRob3NlIGtlZXAgdGhlaXIgb3duIGxvb2suXG4vL1xuLy8gXCJib3R0b21cIiAocG9zaXRpb249XCJib3R0b21cIiBpbiB0aGUgbWFya3VwKSBpcyB0aGUgY2xvc2VzdCBvZiB0aGF0XG4vLyBkaXJlY3RpdmUncyB0aHJlZSBidWlsdC1pbiBwbGFjZW1lbnRzIHRvIHRoaXMgZGVzaWduOyBpdHMgZGVmYXVsdCBib3hcbi8vIHBvc2l0aW9uIGFuZCBjYXJldCBzdGlsbCBhc3N1bWUgYSB3aWRlciwgY2VudGVyZWQgdHJpZ2dlciwgc28gYm90aCBhcmVcbi8vIG51ZGdlZCBsZWZ0IGhlcmUgdG8gc2l0IG5lYXIgdGhpcyBvbmUgaW5zdGVhZC5cbi5wcm9ncmFtcy1kZXRhaWxzX190aXAgLnRvb2x0aXAtYm90dG9tIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWEzMztcbiAgLy8gRml4ZWQsIG5vdCBtaW4vbWF4IC0gdGhlIGNvcHkgaXMgZml4ZWQgdG9vLCBzbyB0aGVyZSBpcyBub3RoaW5nIGZvciB0aGVcbiAgLy8gYm94IHRvIGZsZXggYXJvdW5kLlxuICB3aWR0aDogMzEycHg7XG4gIGhlaWdodDogMTUycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDhweCAyMHB4O1xuICBsZWZ0OiAtMTZweDtcbiAgLy8gVGhpcyBidWJibGUncyBgdG9wOiAwYCBpcyBub3QgdGhlIGljb24ncyBvd24gdG9wLWxlZnQ6IGl0IGlzIG1lYXN1cmVkXG4gIC8vIGZyb20gdGhlIGljb24ncyBQQURESU5HIGJveCwgd2hpY2ggc2l0cyAxcHggaW5zaWRlIHRoZSBpY29uJ3MgYm9yZGVyXG4gIC8vIChfYmFzZS5zY3NzIHNldHMgYm94LXNpemluZzogYm9yZGVyLWJveCBnbG9iYWxseSwgc28gdGhhdCBib3JkZXIgZG9lc1xuICAvLyBub3QgYWRkIHRvIHRoZSBpY29uJ3Mgc3RhdGVkIDE0cHggaGVpZ2h0IC0gaXQgaXMgaW5jbHVkZWQgaW4gaXQpLiBTb1xuICAvLyB0aGUgaWNvbidzIHJlYWwgb3V0ZXIgYm90dG9tIGVkZ2UgaXMgMTRweCBkb3duIGZyb20gdGhlIGljb24ncyBvd25cbiAgLy8gY29ybmVyLCBidXQgb25seSAxNCAtIDEgPSAxM3B4IGRvd24gZnJvbSB3aGVyZSB0aGlzIGB0b3BgIGlzIG1lYXN1cmVkXG4gIC8vIGZyb20uIFRoZSBhcnJvdyBub3cgb3ZlcmxhcHMgdGhpcyBib3ggYnkgaGFsZiBpdHMgb3duIDZweCBoZWlnaHQgKHNlZVxuICAvLyAmOmFmdGVyIGJlbG93KSByYXRoZXIgdGhhbiBzaXR0aW5nIGZsdXNoIGFib3ZlIGl0LCBzbyB0aGlzIGJveCBzdGFydHNcbiAgLy8gM3B4IGxvd2VyIHRoYW4gdGhhdCBlZGdlLCBub3QgYSBmdWxsIDY6IDEzICsgMyA9IDE2LiBLZWVwIHRoaXMgaW4gc3RlcFxuICAvLyB3aXRoICY6YWZ0ZXIncyBvd24gdG9wL2hlaWdodCBieSBoYW5kOyBub3RoaW5nIGhlcmUgZGVyaXZlcyB0aGUgb3RoZXIuXG4gIHRvcDogMTZweDtcbiAgLy8gT3ZlcnJpZGVzIC50b29sdGlwJ3MgMTZweC8yNHB4Ly4zNXB4IChfdG9vbHRpcC5zY3NzKSAtIHNlZSB0aGUgcm93L2xhYmVsXG4gIC8vIHJ1bGVzIGJlbG93IGZvciB0aGUgYWN0dWFsIHR5cGUgc2l6ZXMuXG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cbiAgLnR0Q29udGVudCB7XG4gICAgLy8gT3ZlcnJpZGVzIC50b29sdGlwIC50dENvbnRlbnQncyBncmV5LzQwMCAoX3Rvb2x0aXAuc2NzcykgLSBldmVyeSBsaW5lXG4gICAgLy8gaGVyZSBpcyBlaXRoZXIgNTAwIG9yIDcwMCwgbmV2ZXIgdGhhdCBkZWZhdWx0LlxuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcCAudG9vbHRpcC1ib3R0b206YWZ0ZXIge1xuICAvLyBUaGlzIHRyaWFuZ2xlIGlzIGAuZnVzVGlwYCdzIG93biBwc2V1ZG8tZWxlbWVudCwgc28gaXRzIHRvcC9sZWZ0IGJlbG93XG4gIC8vIGFyZSByZWxhdGl2ZSB0byB0aGUgQk9YIGl0c2VsZiAod2hpY2ggaGFzIG5vIGJvcmRlciBvZiBpdHMgb3duLCBzbyBub1xuICAvLyBzZWNvbmQgaW5zZXQgdG8gYWNjb3VudCBmb3IgaGVyZSB0aGUgd2F5IHRoZSBib3gncyBvd24gdG9wL2xlZnQgYWJvdmVcbiAgLy8gaGFzIHRvIGZvciB0aGUgaWNvbidzKSAtIG5vdCB0aGUgaWNvbiBkaXJlY3RseS5cbiAgLy9cbiAgLy8gNnB4IHRhbGwgcGVyIHNwZWMsIHdpZHRoIHBpY2tlZCB0byBtYXRjaCAoYSAxMnB4IGJhc2UgcmVhZHMgYXMgdGhlIHNhbWVcbiAgLy8gdHJpYW5nbGUsIGp1c3Qgc21hbGxlciwgbm90IGEgc3RyZXRjaGVkL3NxdWFzaGVkIG9uZSkuXG4gIGJvcmRlci13aWR0aDogMCA2cHggNnB4IDZweDtcbiAgYm9yZGVyLWNvbG9yOiAjMWExYTMzIHRyYW5zcGFyZW50O1xuICAvLyBIYWxmIHRoZSBhcnJvdyBvdmVybGFwcyBpbnRvIHRoZSBib3ggcmF0aGVyIHRoYW4gc2l0dGluZyBmbHVzaCBhYm92ZVxuICAvLyBpdCwgc28gb25seSB0aGUgdG9wIChwb2ludGVkKSBoYWxmIHJlYWRzIGFzIGEgc2VwYXJhdGUgc2hhcGUgLSB0aGVcbiAgLy8gYm90dG9tIGhhbGYgaXMgdGhlIHNhbWUgY29sb3VyIGFzIHRoZSBib3ggYW55d2F5IGFuZCBqdXN0IG1lcmdlcyBpbnRvXG4gIC8vIGl0LiBIYWxmIG9mIHRoZSBhcnJvdydzIG93biA2cHggaGVpZ2h0LCBuZWdhdGl2ZSBzaW5jZSB1cDogLTNweC4gU2VlXG4gIC8vIHRoZSBib3gncyBvd24gdG9wIGFib3ZlIGZvciB3aHkgdGhlIHR3byBtb3ZlIHRvZ2V0aGVyLlxuICB0b3A6IC0zcHg7XG4gIC8vIENlbnRyaW5nIHRoaXMgb24gdGhlIGljb24gYnkgY2FsY3VsYXRpb24gYWxvbmUgKGljb24gY2VudHJlIG1pbnVzIHRoaXNcbiAgLy8gYm94J3Mgb3duIGxlZnQgb2Zmc2V0IG1pbnVzIGhhbGYgdGhlIGFycm93J3Mgd2lkdGgpIGhhcyBiZWVuIG9mZiBpblxuICAvLyBwcmFjdGljZSBieSBtb3JlIHRoYW4gYWNjb3VudHMgZm9yIGluIHRoYXQgbWF0aCAtIG51ZGdlZCBieSBleWUgYWdhaW5zdFxuICAvLyB0aGUgYWN0dWFsIHJlbmRlcmVkIGljb24gaW5zdGVhZCwgbm90IHJlLWRlcml2ZWQuIDE2cHggb3ZlcnNob3QgcmlnaHQsXG4gIC8vIDEycHggb3ZlcnNob3QgbGVmdCwgMTRweCBzdGlsbCBzbGlnaHRseSBsZWZ0OyBudWRnaW5nIHJpZ2h0IGFnYWluLlxuICBsZWZ0OiAxNXB4O1xuXG4gIC8vIF90b29sdGlwLnNjc3MgZXh0ZW5kcyB0aGlzIHBzZXVkby1lbGVtZW50IGZyb20gYC50b29sdGlwLCA6YWZ0ZXJgIC1cbiAgLy8gYSBjb21tYSwgc28gU2FzcyB0cmVhdHMgaXQgYXMgdHdvIHNlcGFyYXRlIGV4dGVuZCB0YXJnZXRzIGluc3RlYWQgb2YgdGhlXG4gIC8vIHNpbmdsZSBjb21wb3VuZCBzZWxlY3RvciBgLnRvb2x0aXA6YWZ0ZXJgIHRoYXQgd2FzIGNsZWFybHkgaW50ZW5kZWQuIFRoZVxuICAvLyByZXN1bHQgaXMgdGhhdCB0aGlzIHRyaWFuZ2xlIGFsc28gaW5oZXJpdHMgLnRvb2x0aXAncyBvd24gQk9YIHN0eWxpbmdcbiAgLy8gKG1pbi13aWR0aDogMzAwcHgsIG1pbi1oZWlnaHQ6IDcycHgsIHBhZGRpbmc6IDIwcHggMjVweCwgYmFja2dyb3VuZDpcbiAgLy8gcmdiKDQ2LDQ2LDQ2KSAtIGNvbmZpcm1lZCBpbiB0aGUgY29tcGlsZWQgQ1NTLCBub3QgZ3Vlc3NlZCksIHdoaWNoXG4gIC8vIHJlbmRlcnMgYXMgYW4gb3ZlcnNpemVkIHJlY3RhbmdsZSBiZWhpbmQgdGhlIDB4MC1wbHVzLWJvcmRlciB0cmlhbmdsZSBpdFxuICAvLyB3YXMgc3VwcG9zZWQgdG8gYmUuIFRoYXQgcmVjdGFuZ2xlIGlzIGludmlzaWJsZSBldmVyeXdoZXJlIGVsc2UgaW4gdGhlXG4gIC8vIGFwcCBvbmx5IGJlY2F1c2UgaXQgaGFwcGVucyB0byBzaGFyZSAudG9vbHRpcCdzIG93biBncmV5IGJhY2tncm91bmQsIHNvXG4gIC8vIGl0IHJlYWRzIGFzIHBhcnQgb2YgdGhlIHNhbWUgYm94LiBPdmVycmlkaW5nIHRoaXMgYnViYmxlJ3MgYmFja2dyb3VuZCB0b1xuICAvLyAjMWExYTMzIGFib3ZlIGlzIHdoYXQgZXhwb3NlZCBpdDogdGhlIHR3byBncmV5cyBzdG9wcGVkIG1hdGNoaW5nLiBVbmRvbmVcbiAgLy8gaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUgc2hhcmVkIGZpbGUsIHdoaWNoIGV2ZXJ5IG90aGVyIHRvb2wtdGlwLXRvZ2dsZS9cbiAgLy8gdG9vbC10aXAtZmFkZSBpbnN0YW5jZSBpbiB0aGUgYXBwIHN0aWxsIHJlbGllcyBvbiBhcy1pcy5cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcC1yb3cge1xuICBtYXJnaW46IDAgMCAxMnB4O1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ucHJvZ3JhbXMtZGV0YWlsc19fdGlwLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcC10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLnByb2dyYW1zLWRldGFpbHMge1xuICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAvLyBUaGUgdHlwZSBmaWx0ZXIgZHJvcHMgdW5kZXIgdGhlIHRpdGxlIHJhdGhlciB0aGFuIHNxdWVlemluZyBhZ2FpbnN0IGl0LlxuICAgICZfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBcIlByb2dyZXNzIFN1bW1hcnlcIiBjYXJkIG9uIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgUmVwbGFjZXMgdGhlIGxlZ2FjeSAucmVwb3J0LXN1bW1hcnktY29udGFpbmVyIC8gLnJlcG9ydC1zdW1tYXJ5IGJsb2NrIHRoYXRcbiAgIHVzZWQgdG8gbGl2ZSBpbiBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MuIFVubGlrZSB0aGUgZGV0YWlsIHRhYmxlIGJlbG93IGl0LCB0aGlzXG4gICBtYXJrdXAgd2FzIG5ldmVyIHNoYXJlZCAtIHRlYW1yZXBvcnQuaHRtbCBkb2VzIG5vdCByZW5kZXIgaXQgLSBzbyB0aGUgb2xkXG4gICBydWxlcyB3ZXJlIGRlbGV0ZWQgb3V0cmlnaHQgcmF0aGVyIHRoYW4gbGVmdCBzdGFuZGluZyBiZXNpZGUgdGhlc2UuXG5cbiAgIENvbXBhbmlvbiB0byBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzOiBzYW1lIGNhcmQgcmVjaXBlICh3aGl0ZSBncm91bmQsIGhhaXJsaW5lXG4gICBib3JkZXIsIDEycHggcmFkaXVzLCB0aGUgc2FtZSBmYWludCBzaGFkb3cpIHNvIHRoZSB0d28gYmxvY2tzIHJlYWQgYXMgb25lXG4gICBwYWdlLiBUb2tlbnMgYXJlIHJlc3RhdGVkIGhlcmUgcmF0aGVyIHRoYW4gcmVhY2hpbmcgZm9yICRwdGQtKiwgd2hpY2ggaXNcbiAgIGZpbGUtbG9jYWwgdG8gdGhhdCBwYXJ0aWFsIGJ5IGNvbnZlbnRpb24uXG5cbiAgIFRoZSBwZXItdGVzdCBjYXJkcyBhcmUgYSBDU1MgZ3JpZCBvZiBmbGV4aWJsZSB0cmFja3MsIHNvIGEgY2FyZCdzIHdpZHRoIGlzXG4gICB3aGF0ZXZlciBpdHMgY29sdW1uIGdldHMuIFRoYXQgaXMgdGhlIHdob2xlIHJlYXNvbiB0aGUgc3BhcmtsaW5lIGlzIHJlbmRlcmVkXG4gICB3aXRoIGBjaGFydC1yZXNwb25zaXZlYDogcHJvZ3Jlc3NJbnNpZ2h0Q2hhcnQgc2l6ZXMgaXRzIGNhbnZhcyBmcm9tIHRoZVxuICAgZWxlbWVudCdzIGxhaWQtb3V0IHdpZHRoLCBhbmQgQ2hhcnQuanMgMS54IHRoZW4gcGlucyB0aGF0IHdpZHRoIGlubGluZSwgc28gYVxuICAgYHdpZHRoOiAxMDAlYCBoZXJlIHdvdWxkIG90aGVyd2lzZSBiZSBvdmVyd3JpdHRlbiBvbiBmaXJzdCBwYWludC4gVGhlXG4gICBtZWFzdXJlbWVudCBvbmx5IHdvcmtzIHdoaWxlIHRoZSBjYXJkIHN0YXlzIGBtaW4td2lkdGg6IDBgIC0gYW4gYGF1dG9gXG4gICBtaW5pbXVtIHdvdWxkIGxldCB0aGUgY2FudmFzIGl0IGlzIG1lYXN1cmluZyBjb250cmlidXRlIHRvIHRoZSB0cmFjayBzaXplIGl0XG4gICBpcyBiZWluZyBtZWFzdXJlZCBhZ2FpbnN0LlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQgKHN0YXRlIGJveC1zaXppbmcgYnkgaGFuZClcbiAgIGFuZCBubyBhdXRvcHJlZml4ZXIuICovXG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuXG4vLyBEaXJlY3Rpb24sIG5vdCBzY29yZSBiYW5kIC0gZ3JlZW4gdXAgLyByZWQgZG93biByZWdhcmRsZXNzIG9mIGhvdyB0aGUgc2NvcmVcbi8vIGl0c2VsZiByZWFkcy4gVGhlIGJhbmQgbGl2ZXMgb24gdGhlIHNwYXJrbGluZS4gUmVzdGF0ZWQgZnJvbVxuLy8gJGluc2lnaHRzLXVwLyRpbnNpZ2h0cy1kb3duIGFuZCAkZGFpbHktcmVzdWx0cy11cC8kZGFpbHktcmVzdWx0cy1kb3duLlxuJHBncy11cDogICAgICMyMGI3Njk7XG4kcGdzLWRvd246ICAgI2M0MmEzYjtcblxuXG4vLyBUaGUgY2FyZCdzIGRlc2lnbmVkIGhlaWdodC4gQSBtaW4gcmF0aGVyIHRoYW4gYSBmaXhlZCBoZWlnaHQgc28gYSBuYW1lIHRoYXRcbi8vIHdyYXBzIHRvIHR3byBsaW5lcyBwdXNoZXMgdGhlIGNhcmQgZG93biBpbnN0ZWFkIG9mIG92ZXJmbG93aW5nIGl0OyB0aGUgZ3JpZFxuLy8gdGhlbiBsZXZlbHMgdGhlIHJlc3Qgb2YgdGhhdCByb3cgdG8gbWF0Y2guXG4kcGdzLWNhcmQtbWluLWg6IDEzMnB4O1xuLy8gV2hhdCBpcyBsZWZ0IGZvciB0aGUgc3BhcmtsaW5lIG9uY2UgdGhlIGNhcmQncyBjaHJvbWUgaXMgcGFpZCBmb3I6XG4vLyAxMzIgLSAycHggYm9yZGVyIC0gMTIgcGFkLXRvcCAtIDIwIG5hbWUgLSA0IGdhcCAtIDMyIHNjb3JlIHJvdyAtIDggZ2FwIC0gMTJcbi8vIHBhZC1ib3R0b20uIE11c3Qgc3RheSBpbiBzdGVwIHdpdGggdGhlIGNhbnZhcyBgaGVpZ2h0YCBhdHRyaWJ1dGUgaW5cbi8vIHByb2dyZXNzcmVwb3J0Lmh0bWwgLSBwcm9ncmVzc0luc2lnaHRDaGFydCBzaXplcyB0aGUgYmFja2luZyBzdG9yZSBmcm9tIHRoYXRcbi8vIGF0dHJpYnV0ZSwgYW5kIENTUyBhbG9uZSB3b3VsZCBvbmx5IHN0cmV0Y2ggdGhvc2UgcGl4ZWxzLlxuJHBncy1zcGFyay1oOiAgICA0MnB4O1xuLy8gVGhlIGNhcmQncyBpbnRlbmRlZCB3aWR0aCwgYW5kIHRoZSBmbG9vciB0aGUgZ3JpZCBtYXkgbm90IGdvIGJlbG93LiBTdGF0ZWQgYXNcbi8vIHRoZSB0cmFjayBtaW5pbXVtIHNvIGF1dG8tZmlsbCBkcm9wcyB0byBmZXdlciBjb2x1bW5zIHJhdGhlciB0aGFuIHNxdWVlemluZ1xuLy8gYW4gZXh0cmEgb25lIGluIC0gdW5kZXIgdGhpcyB0aGUgbmFtZSB3cmFwcyBhbmQgdGhlIHNjb3JlIGFuZCB0cmVuZCBjaGlwXG4vLyBzdGFydCBjcm93ZGluZyBlYWNoIG90aGVyLlxuJHBncy1jb2wtbWluOiAgICAyNjNweDtcblxuLnByb2dyZXNzLXN1bW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTWF0Y2hlcyAucHJvZ3Jlc3MtZGV0YWlsczogdGhlIHBhZ2UgY29sdW1uIGlzIHRhbGxlciB0aGFuIHRoaXMgYmxvY2ssIGFuZCBhXG4gIC8vIGdyb3dpbmcgZmxleCBpdGVtIHdvdWxkIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbCB1bmRlciB0aGUgbGFzdCByb3cuXG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgdGhlIHJlcG9ydCBjaGFydCBhYm92ZS4gVGhlIGJvdHRvbSBnYXAgaXMgbGVmdCB0byAucHJvZ3Jlc3MtZGV0YWlscyxcbiAgLy8gd2hpY2ggZm9sbG93cyBpdCBhbmQgY2FycmllcyBpdHMgb3duIG1hcmdpbi10b3AuXG4gIG1hcmdpbjogMzBweCAwIDA7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KCRwZ3MtY29sLW1pbiwgMWZyKSk7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJHBncy1jYXJkLW1pbi1oO1xuICAgIC8vIExvYWQtYmVhcmluZyBmb3IgdGhlIHNwYXJrbGluZSBtZWFzdXJlbWVudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgfVxuXG4gICZfX25hbWUge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAvLyBMb25nIGNvbXBvbmVudCBuYW1lcyAoXCJUcnVuay9MdW1iYXIgU3BpbmUgTW92ZW1lbnRcIikgd3JhcCByYXRoZXIgdGhhblxuICAgIC8vIHdpZGVuIHRoZSB0cmFjaywgd2hpY2ggd291bGQgZGVzeW5jaHJvbmlzZSB0aGUgY29sdW1ucy5cbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICZfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxuXG4gIC8vIE5vIGlubGluZS1mbGV4IG1peGluIGluIF9taXhpbnMuc2Nzczsgc3RhdGVkIHBsYWlubHkgdGhlIHdheVxuICAvLyAucHJvZ3Jlc3MtaW5zaWdodHNfX2NoYW5nZSBhbmQgLmRhaWx5LXJlc3VsdHNfX2NoYW5nZSBhbHJlYWR5IGRvLlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkcGdzLXVwO1xuICAgIH1cblxuICAgICYtLWRvd24ge1xuICAgICAgY29sb3I6ICRwZ3MtZG93bjtcbiAgICB9XG4gIH1cblxuICAvLyBCb3RoIGdseXBocyBzdHJva2Ugd2l0aCBjdXJyZW50Q29sb3IsIHNvIHRoZSBtb2RpZmllciBhYm92ZSBpcyB3aGF0IHRpbnRzXG4gIC8vIHRoZW0uXG4gICZfX3RyZW5kLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgfVxuXG4gICZfX3NwYXJrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRwZ3Mtc3BhcmstaDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgLy8gSG9sZHMgdGhlIGxpbmUgYmV0d2VlbiBhIHdpbmRvdyByZXNpemUgYW5kIHRoZSBkZWJvdW5jZWQgcmUtcmVuZGVyOiB0aGVcbiAgICAvLyBpbmxpbmUgcHggd2lkdGggQ2hhcnQuanMgbGVhdmVzIGJlaGluZCBpcyBzdGFsZSB1bnRpbCB0aGVuLCBhbmQgdGhlIGNhcmRcbiAgICAvLyBpcyBtaW4td2lkdGg6IDAsIHNvIHdpdGhvdXQgdGhpcyBhIHNocmlua2luZyBjb2x1bW4gb3ZlcmZsb3dzLlxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvLyBPbmx5IHRoZSBzdGFydGluZyBwb2ludDogcHJvZ3Jlc3NJbnNpZ2h0Q2hhcnQgbWVhc3VyZXMgYWdhaW5zdCB0aGlzIGFuZFxuICAgIC8vIHRoZW4gQ2hhcnQuanMgb3ZlcndyaXRlcyBpdCB3aXRoIHRoZSByZXNvbHZlZCB3aWR0aCBpbiBweC5cbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBcIk92ZXJ2aWV3XCIgY2FyZCBhdCB0aGUgdG9wIG9mIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKTogdGhlIHNjb3JlIGNoYXJ0LCB0aGVcbiAgIEF2ZXJhZ2UgLyBNaW4gLyBNYXggLyBUZWFtIEF2ZXJhZ2UgLyBUZWFtIFJhbmsgdGlsZXMsIGFuZCB0aGUgdGlwIGJhbm5lci5cblxuICAgRGVsaWJlcmF0ZWx5IE5PVCBhIHJlc3R5bGUgb2YgLnJlcG9ydC1jaGFydC1jb250YWluZXIgLyAucmVwb3J0LWNoYXJ0LWRldGFpbHNcbiAgIC8gLnJlcG9ydC1jaGFydC1kZXRhaWwgaW4gX3Byb2dyZXNzX3JlcG9ydC5zY3NzOiB0ZWFtcmVwb3J0Lmh0bWw6NjUsODgsOTUsMjQyXG4gICByZW5kZXJzIHRoYXQgc2FtZSBtYXJrdXAgYWdhaW5zdCB0aG9zZSBzYW1lIHJ1bGVzLCBzbyBlZGl0aW5nIHRoZW0gaW4gcGxhY2VcbiAgIHdvdWxkIGRyYWcgdGhlIHRlYW0gcmVwb3J0IGFsb25nIHdpdGggaXQuIFRoaXMgYmxvY2sgaXMgYXBwbGllZCB0byB0aGVcbiAgIHByb2dyZXNzIHZpZXcgb25seTsgdGhlIHRlYW0gcmVwb3J0IGtlZXBzIHRoZSBsZWdhY3kgbGF5b3V0LlxuXG4gICBUaGF0IHJlbmFtZSBpcyBhbHNvIHdoYXQgYnV5cyB0aGUgY2FyZCBpdHMgcmVzcG9uc2l2ZW5lc3MgZm9yIGZyZWUuIFRocmVlXG4gICBzZXBhcmF0ZSBzaGVldHMgc2hpcCBtb2JpbGUgb3ZlcnJpZGVzIGtleWVkIHRvIHRoZSBsZWdhY3kgbmFtZXMgLVxuICAgX3Jlc3BvbnNpdmVuZXNzX3R3ZWFrcy5zY3NzOjE5NS0yMTUgYW5kIDo0NzEtNDg3LCBhbmRcbiAgIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3M6NTgyMC01ODM5LCB0aGUgbGFzdCBvZiB0aG9zZSB3aXRoICFpbXBvcnRhbnRcbiAgIGZyb20gYSBidW5kbGUgdGhhdCBsb2FkcyBhZnRlciB0aGlzIG9uZS4gTm9uZSBvZiB0aGVtIG1hdGNoIC5wcm9ncmVzcy1vdmVydmlldyxcbiAgIHNvIHRoZSBibG9jayBnZXRzIHRvIHN0YXRlIGl0cyBvd24gYnJlYWtwb2ludHMgaW5zdGVhZCBvZiBmaWdodGluZyB0aGVtLlxuXG4gICBQcm9ncmVzcyB0YWIgb25seS4gVGhpcyBjYXJkIHVzZWQgdG8gc2VydmUgdGhlIFByb2dyYW1zIHRhYiBhcyB3ZWxsLCB0aHJvdWdoXG4gICBhIHNlY29uZCBjaGFydFR5cGUgPT09ICdiYXInIGJyYW5jaCB0aGF0IGtlcHQgdGhlIGxlZ2FjeSBgY29sdW1uLWNvbnRhaW5lclxuICAgbGluZS1jaGFydGAgY2xhc3NlcyAoc2NvcmVCYXJDaGFydCBoYWQgbm8gcmVzcG9uc2l2ZSBwYXRoLCBzb1xuICAgX2NoYXJ0aW5nLnNjc3M6MjktMzYgc2l6ZWQgaXQpIHBsdXMgYSAtLWxlZ2FjeSBtb2RpZmllciBhdCAwLDIsMCB0byBiZWF0XG4gICBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3MncyBgLmxpbmUtY2hhcnQgeyBmbGV4KDIpIH1gIG9uIHNvdXJjZSBvcmRlci4gVGhlXG4gICBQcm9ncmFtcyB0YWIgaGFzIGl0cyBvd24gcGFpciBvZiBjYXJkcyBub3cgLSBzZWUgX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MgYW5kXG4gICBfcHJvZ3JhbXNfY29tcGxldGlvbi5zY3NzIC0gc28gdGhhdCBicmFuY2gsIGl0cyBtb2RpZmllciBhbmQgdGhlXG4gICBjaGFydEluZm8udHlwZSA9PT0gMyB0aWxlcyBhcmUgYWxsIGdvbmUsIGFuZCBub3RoaW5nIGluIHRoaXMgZmlsZSBoYXMgdG9cbiAgIHNoYXJlIHNwZWNpZmljaXR5IHdpdGggX2NoYXJ0aW5nLnNjc3MgYW55IG1vcmUuXG5cbiAgIFRoZSB2YWx1ZXMgYXJlIGRlbGliZXJhdGVseSBuZXV0cmFsLiBUaGUgbGVnYWN5IGJsb2NrIGludGVycG9sYXRlZFxuICAgLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHQgKF9iYXNlLnNjc3M6MzE3LTMyMykgb250byBldmVyeSBzY29yZVxuICAgZnJvbSB0aGUgQVBJJ3Mgcmlza0NvbG9yOyBoZXJlIHRoZSBiYXIgdW5kZXJuZWF0aCBjYXJyaWVzIHRoZSBiYW5kIGluc3RlYWRcbiAgIGFuZCB0aGUgbnVtYmVyIHN0YXlzICRibGFjay04MDAuIFRoYXQgaXMgd2h5IHRoZSBiYXIgbW9kaWZpZXJzIHJlc3RhdGUgdGhlXG4gICBwYWxldHRlIGFzIGJhY2tncm91bmQtY29sb3IgcmF0aGVyIHRoYW4gcmV1c2luZyB0aG9zZSB0ZXh0IGNsYXNzZXMgLSB0aGVcbiAgIGNvbG91ciBjb2RpbmcgbW92ZWQsIGl0IGRpZCBub3QgZ28gYXdheS4gVGlsZXMgd2hvc2UgdmFsdWUgaGFzIG5vIDAtMTAwXG4gICBzY2FsZSB0aGVyZWZvcmUgaGF2ZSBubyBjb2xvdXIgY3VlIGF0IGFsbCwgd2hpY2ggaXMgY29ycmVjdDogdGhleSBuZXZlciBoYWRcbiAgIGEgbWVhbmluZ2Z1bCBvbmUuXG5cbiAgIENvbnNlcXVlbmNlIHdvcnRoIGtub3dpbmcgaWYgeW91IHJlLWFkZCBhIHRleHQgY2xhc3MgaGVyZTogdGhvc2Ugc2VsZWN0b3JzXG4gICBhcmUgMCwxLDAgYW5kIF9iYXNlLnNjc3MgaW1wb3J0cyBmaXJzdCwgc28gYW4gMCwxLDAgYGNvbG9yYCBpbiB0aGlzIGZpbGVcbiAgIHdpbnMgYW5kIHdvdWxkIHNpbGVudGx5IGZsYXR0ZW4gdGhlbSBhZ2Fpbi5cblxuICAgVGhlIGNoYXJ0IGNhbnZhcyBpcyBtZWFzdXJlZCwgbm90IHNpemVkLiBzY29yZUxpbmVDaGFydCByZWFkcyBfX2NoYXJ0LWJveCdzXG4gICBjbGllbnRXaWR0aC9jbGllbnRIZWlnaHQgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IG9udG8gdGhlIGNhbnZhcywgc28gdGhlIGJveFxuICAgbmVlZHMgYW4gZXhwbGljaXQgaGVpZ2h0IChyZWFkaW5nIHRoZSBjYW52YXMncyBvd24gbGFpZC1vdXQgaGVpZ2h0IHdvdWxkIGJlXG4gICBjaXJjdWxhcikgYW5kIF9fY2hhcnQgbXVzdCBzdGF5IG1pbi13aWR0aDogMCAtIGFuIGBhdXRvYCBtaW5pbXVtIHdvdWxkIGxldFxuICAgdGhlIGNhbnZhcyBiZSBwYXJ0IG9mIHdoYXQgc2l6ZXMgdGhlIHRyYWNrIGl0IGlzIGJlaW5nIG1lYXN1cmVkIGFnYWluc3QuXG4gICBTYW1lIGNvbnRyYWN0IF9wcm9ncmVzc19zdW1tYXJ5LnNjc3M6MTQtMjIgZG9jdW1lbnRzIGZvciB0aGUgc3BhcmtsaW5lcy5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FwdGlvbiBhbmQgYSBQcm9ncmVzcyBTdW1tYXJ5IGNhcmQgbmFtZSByZWFkIGFsaWtlLlxuJHBvdi1uZXV0cmFsOiAgICAgIzkyOTI5MjsgICAvLyBiYXIgZmlsbCB3aGVuIHRoZSBzZXJ2ZXIgc2VudCBubyByaXNrIGNvbG91cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWlycm9yaW5nIGNhbnZhc19jaGFydHMuaWRlbnRpZnlDb2xvckJ5TmFtZSdzIGZhbGxiYWNrXG5cbi8vIFRoZSBiYXIgdW5kZXIgYSBudW1iZXIgaXMgYSByZWFkaW5nIG9mIHRoYXQgbnVtYmVyJ3MgcmlzayBiYW5kLCBzbyB0aGVzZSBoYXZlXG4vLyB0byBhZ3JlZSB3aXRoIHRoZSB0ZXh0IHBhbGV0dGUgZXhhY3RseSBvciB0aGUgYmFyIHN0b3BzIG1lYW5pbmcgYW55dGhpbmcuXG4vLyBSZXN0YXRlZCBmcm9tIC5yZWQtdGV4dCAvIC55ZWxsb3ctdGV4dCAvIC5ncmVlbi10ZXh0IChfYmFzZS5zY3NzOjMxNy0zMjMpIC1cbi8vIGRlbGliZXJhdGVseSBOT1QgY2FudmFzX2NoYXJ0cy5pZGVudGlmeUNvbG9yQnlOYW1lJ3MgI2QxNDA0YiAvICMzNGI2NzgsIHdoaWNoXG4vLyB0aGUgb3V0Z29pbmcgc2NvcmUtbGluZS1ncmFwaCBjYW52YXMgdXNlZCBhbmQgd2hpY2ggbmV2ZXIgbWF0Y2hlZCB0aGUgbnVtYmVyXG4vLyBwcmludGVkIGFib3ZlIGl0LlxuJHBvdi1wb29yOiAgICAgICAgI2M0MmEzYjtcbiRwb3YtbW9kZXJhdGU6ICAgICNkZmMwM2Y7XG4kcG92LWdvb2Q6ICAgICAgICAjMjBiNzY5O1xuXG4vLyBEaXJlY3Rpb24sIG5vdCBzY29yZSBiYW5kIC0gZ3JlZW4gdXAgLyByZWQgZG93biByZWdhcmRsZXNzIG9mIGhvdyB0aGUgc2NvcmVcbi8vIGl0c2VsZiByZWFkcy4gU2FtZSBwYWlyIGFzICRwZ3MtdXAgLyAkcGdzLWRvd24uXG4kcG92LXVwOiAgICAgICAgICAjMjBiNzY5O1xuJHBvdi1kb3duOiAgICAgICAgI2M0MmEzYjtcblxuLy8gVGhlIGxlZ2VuZCBoYXMgdG8gYWdyZWUgd2l0aCB0aGUgY2hhcnQgaXQgbGFiZWxzLCBvciBpdCBzdG9wcyBiZWluZyBhIGtleS5cbi8vIFRoZXNlIGFyZSBzY29yZUxpbmVDaGFydCdzIGNvbG9ycyB0YWJsZSByZXN0YXRlZCAoU2NvcmVMaW5lQ2hhcnQuanM6NjItNjcpLlxuJHBvdi1sZWdlbmQtc2NvcmU6ICAgcmdiYSgxNTEsIDEwNCwgMjM1LCAwLjkpO1xuJHBvdi1sZWdlbmQtYXZlcmFnZTogcmdiYSgyMDcsIDIxOCwgMjIwLCAwLjkpO1xuJHBvdi1sZWdlbmQtdGVhbTogICAgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjc1KTtcblxuXG4vLyBUaGUgYm94IHNjb3JlTGluZUNoYXJ0IG1lYXN1cmVzLiBDaGFuZ2luZyB0aGVzZSBjaGFuZ2VzIHRoZSBjaGFydCdzIGFzcGVjdFxuLy8gcmF0aW8gZGlyZWN0bHkgLSB0aGVyZSBpcyBubyBtYWludGFpbkFzcGVjdFJhdGlvIGluIHBsYXkuXG4kcG92LWNoYXJ0LWg6ICAgICAzMDBweDtcbiRwb3YtY2hhcnQtaC1zbTogIDIyMHB4O1xuXG4kcG92LWNvbC1nYXA6ICAgICAzMnB4O1xuJHBvdi10aWxlLWdhcC14OiAgMTZweDtcbiRwb3YtdGlsZS1nYXAteTogIDIwcHg7XG4kcG92LWJhci1oOiAgICAgICA1cHg7XG4vLyBGaXhlZCByYXRoZXIgdGhhbiBmaWxsaW5nIHRoZSB0aWxlLCBzbyBhIGJhciByZWFkcyB0aGUgc2FtZSBsZW5ndGggd2hldGhlclxuLy8gaXRzIHRyYWNrIHNpdHMgaW4gYSAzLXVwIGdyaWQgb3IgYSAyLXVwIG9uZS4gQ2FwcGVkIGF0IHRoZSB0cmFjayB3aWR0aCBiZWxvdyxcbi8vIHNpbmNlIHRoZSBuYXJyb3dlc3QgdGlsZXMgZmFsbCB1bmRlciB0aGlzLlxuJHBvdi1iYXItdzogICAgICAgMTYwcHg7XG5cbi8vIFRoZSB0aXAgYmFubmVyJ3MgbGF2ZW5kZXIsIGFuZCB0aGUgQ1RBJ3MgYmFja2dyb3VuZCBzbyBpdCByZWFkcyBhcyBwYXJ0IG9mXG4vLyB0aGUgc2FtZSBzdXJmYWNlIHJhdGhlciB0aGFuIGEgd2hpdGUgY2hpcCBzaXR0aW5nIG9uIHRvcCBvZiBpdC4gQ2xvc2UgdG8gYnV0XG4vLyBkaXN0aW5jdCBmcm9tICRwdXJwbGUtNTAgKCNmOWY4ZmYpIC0gbm90IGEgc3Vic3RpdHV0ZSBmb3IgaXQuXG4kcG92LWJhbm5lci1iZzogICAjZjhmNWZmO1xuXG4ucHJvZ3Jlc3Mtb3ZlcnZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTWF0Y2hlcyAucHJvZ3Jlc3Mtc3VtbWFyeSBhbmQgLnByb2dyZXNzLWRldGFpbHM6IC52aWV3LWNvbnRhaW5lci5jb2x1bW4gaXNcbiAgLy8gYSBmbGV4IGNvbHVtbiwgYW5kIGEgZ3Jvd2luZyBpdGVtIHdvdWxkIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbCB1bmRlciB0aGVcbiAgLy8gYmFubmVyLlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gQ2xlYXJzIC5wcm9ncmVzcy1yZXBvcnQtb3B0aW9ucyBhYm92ZS4gVGhlIGJvdHRvbSBnYXAgaXMgbGVmdCB0b1xuICAvLyAucHJvZ3Jlc3Mtc3VtbWFyeSwgd2hpY2ggZm9sbG93cyBhbmQgY2FycmllcyBpdHMgb3duIG1hcmdpbi10b3AuXG4gIG1hcmdpbjogMjBweCAwIDA7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAvLyBmbGV4LXN0YXJ0LCBub3QgdGhlIGRlZmF1bHQgc3RyZXRjaDogdGhlIHRpbGVzIGdyaWQgaXMgc2hvcnRlciB0aGFuIHRoZVxuICAvLyBjaGFydCBvbiBtb3N0IHJlcG9ydHMsIGFuZCBhIHN0cmV0Y2hlZCBncmlkIHdvdWxkIHNwcmVhZCBpdHMgcm93cyB0byBmaWxsXG4gIC8vIHRoZSBjaGFydCdzIGhlaWdodCBpbnN0ZWFkIG9mIHNpdHRpbmcgYXQgdGhlIHRvcCBvZiB0aGUgY2FyZC5cbiAgJl9fYm9keSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIGdhcDogJHBvdi1jb2wtZ2FwO1xuICB9XG5cbiAgLy8gMSAxIDAgcmF0aGVyIHRoYW4gMSAxIGF1dG8gc28gdGhlIGNoYXJ0IGFuZCB0aGUgdGlsZXMgc3BsaXQgdGhlIHJvdyBldmVubHlcbiAgLy8gcmVnYXJkbGVzcyBvZiBob3cgd2lkZSB0aGUgdGlsZXMnIGNvbnRlbnQgd2FudHMgdG8gYmUuIG1pbi13aWR0aDogMCBpc1xuICAvLyBsb2FkLWJlYXJpbmcgZm9yIHRoZSBjYW52YXMgbWVhc3VyZW1lbnQgLSBzZWUgdGhlIGZpbGUgaGVhZGVyLlxuICAmX19jaGFydCB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgMCk7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fY2hhcnQtYm94IHtcbiAgICBoZWlnaHQ6ICRwb3YtY2hhcnQtaDtcbiAgfVxuXG4gIC8vIE5vIHdpZHRoIG9yIGhlaWdodCBoZXJlOiBzY29yZUxpbmVDaGFydCBvd25zIGJvdGgsIGFuZCBDaGFydC5qcyAxLnggcGluc1xuICAvLyB0aGUgcmVzb2x2ZWQgdmFsdWVzIGlubGluZSBhbnl3YXkgKHJldGluYVNjYWxlIHdyaXRlcyBzdHlsZS53aWR0aCBpbiBweCksXG4gIC8vIHNvIGEgYHdpZHRoOiAxMDAlYCB3b3VsZCBvbmx5IHN1cnZpdmUgdW50aWwgZmlyc3QgcGFpbnQuXG4gICZfX2NoYXJ0LWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19sZWdlbmQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5cbiAgLy8gQWRqYWNlbnQtc2libGluZyBtYXJnaW4gcmF0aGVyIHRoYW4gYSBnYXAgb24gdGhlIGNvbnRhaW5lciwgc28gYSB3cmFwcGVkXG4gIC8vIHNlY29uZCBsaW5lIGRvZXMgbm90IGluaGVyaXQgYSBsZWFkaW5nIGluZGVudC5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgJiArICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLWRvdCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogOHB4O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG5cbiAgICAmLS1zY29yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LWxlZ2VuZC1zY29yZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgY2hhcnQgZHJhd3MgdGhpcyBhdCAwLjUgYWxwaGEgYXMgYSBmaWxsZWQgYmFuZCwgd2hlcmUgdGhlIGFyZWEgZ2l2ZXNcbiAgICAvLyBpdCBwcmVzZW5jZS4gQW4gOHB4IGRvdCBhdCB0aGF0IGFscGhhIGlzIGludmlzaWJsZSBvbiB3aGl0ZSwgc28gdGhlIGtleVxuICAgIC8vIGNhcnJpZXMgdGhlIHNhbWUgaHVlIGF0IGEgbGVnaWJsZSBvcGFjaXR5LlxuICAgICYtLWF2ZXJhZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1sZWdlbmQtYXZlcmFnZTtcbiAgICB9XG5cbiAgICAmLS10ZWFtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbGVnZW5kLXRlYW07XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gIC8vIFRocmVlIGZpeGVkIHRyYWNrcyByYXRoZXIgdGhhbiBhdXRvLWZpbGw6IHRoZSB0aWxlIHNldCBpcyBhIGtub3duIDEtNiBwZXJcbiAgLy8gcmVwb3J0IHR5cGUgYW5kIHRoZSBkZXNpZ24gcGlucyBBdmVyYWdlIC8gTWluIC8gTWF4IHRvIG9uZSByb3cuXG4gIC8vIG1pbm1heCgwLCAxZnIpIHJhdGhlciB0aGFuIDFmciBzbyBhIGxvbmcgdmFsdWUgY2Fubm90IHdpZGVuIGl0cyB0cmFjay5cbiAgJl9fdGlsZXMge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDApO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAkcG92LXRpbGUtZ2FwLXkgJHBvdi10aWxlLWdhcC14O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBBIGNvbHVtbiBzbyBfX2JhciBjYW4gYmUgcHVzaGVkIHRvIHRoZSBib3R0b20gd2l0aCBtYXJnaW4tdG9wOiBhdXRvLiBUaGF0XG4gIC8vIGlzIHdoYXQga2VlcHMgdGhlIGJhcnMgYWNyb3NzIGEgcm93IG9uIG9uZSBiYXNlbGluZSBldmVuIHRob3VnaCB0aGUgdmFsdWVcbiAgLy8gcm93cyBhYm92ZSB0aGVtIGRpZmZlciBpbiBoZWlnaHQgKGEgdGlsZSB3aXRoIGEgdHJlbmQgY2hpcCBpcyBubyB0YWxsZXJcbiAgLy8gdGhhbiBvbmUgd2l0aG91dCwgYnV0IGEgd3JhcHBlZCBsYWJlbCBpcykuXG4gICZfX3RpbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190aWxlLWhlYWQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgJl9fdGlsZS1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX192YWx1ZS1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDRweCAwIDEycHg7XG4gIH1cblxuICAmX192YWx1ZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBObyBpbmxpbmUtZmxleCBtaXhpbiBpbiBfbWl4aW5zLnNjc3M7IHN0YXRlZCBwbGFpbmx5IHRoZSB3YXlcbiAgLy8gLnByb2dyZXNzLXN1bW1hcnlfX2NoYW5nZSBhbmQgLmRhaWx5LXJlc3VsdHNfX2NoYW5nZSBhbHJlYWR5IGRvLlxuICAvL1xuICAvLyBUaGUgYmFzZSBjb2xvdXIgaXMgdGhlIG5ldXRyYWwgb25lLCBmb3IgdGhlIFRyYWluaW5nIExvYWQgJSBDaGFuZ2UgdGlsZSxcbiAgLy8gd2hlcmUgYSByaXNlIGlzIG5laXRoZXIgZ29vZCBub3IgYmFkIGFuZCB0aGUgYXJyb3cgb25seSBzdGF0ZXMgZGlyZWN0aW9uLlxuICAvLyBUaGUgdHdvIG1vZGlmaWVycyBiZWxvdyBhcmUgZXF1YWwgc3BlY2lmaWNpdHkgYW5kIGRlY2xhcmVkIGFmdGVyLCBzbyB0aGV5XG4gIC8vIHRha2UgaXQgYmFjayB3aGVyZXZlciB0aGUgZGlyZWN0aW9uIGRvZXMgY2FycnkgYSB2ZXJkaWN0LlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkcG92LXVwO1xuICAgIH1cblxuICAgICYtLWRvd24ge1xuICAgICAgY29sb3I6ICRwb3YtZG93bjtcbiAgICB9XG4gIH1cblxuICAvLyBCb3RoIGdseXBocyBzdHJva2Ugd2l0aCBjdXJyZW50Q29sb3IsIHNvIHRoZSBtb2RpZmllciBhYm92ZSBpcyB3aGF0IHRpbnRzXG4gIC8vIHRoZW0uXG4gICZfX3RyZW5kLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgfVxuXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gcGlucyB0aGUgYmFyIHRvIHRoZSB0aWxlJ3MgYm90dG9tIGVkZ2UuIE9ubHkgdGlsZXMgdGhhdFxuICAvLyBoYXZlIG9uZSBhcmUgYWZmZWN0ZWQ7IGEgdGlsZSB3aG9zZSB2YWx1ZSBoYXMgbm8gMC0xMDAgc2NhbGUgcmVuZGVycyBub1xuICAvLyBiYXIgYXQgYWxsIHJhdGhlciB0aGFuIGFuIGVtcHR5IHRyYWNrLlxuICAmX19iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogJHBvdi1iYXItaDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIC8vIEEgZ3JpZCB0cmFjayBuYXJyb3dlciB0aGFuICRwb3YtYmFyLXcgd291bGQgb3RoZXJ3aXNlIGJlIHdpZGVuZWQgYnkgdGhlXG4gICAgLy8gYmFyLCBzaW5jZSB0aGUgdGlsZSBpcyBtaW4td2lkdGg6IDAgYW5kIHRoZSBncmlkIHRyYWNrcyBhcmUgbWlubWF4KDAsIDFmcikuXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6ICRwb3YtYmFyLXc7XG4gIH1cblxuICAvLyBObyBtaW4td2lkdGg6IGEgc2NvcmUgb2YgMC4wMCBtdXN0IHJlYWQgYXMgYW4gZW1wdHkgdHJhY2suIEEgdmlzaWJsZSBudWJcbiAgLy8gYXQgemVybyB3b3VsZCBiZSBhIGxpZS5cbiAgJl9fYmFyLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbmV1dHJhbDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmLS1yZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1wb29yO1xuICAgIH1cblxuICAgICYtLXllbGxvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LW1vZGVyYXRlO1xuICAgIH1cblxuICAgICYtLWdyZWVuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtZ29vZDtcbiAgICB9XG5cbiAgICAvLyBQZXJjZW50IENvbXBsZXRlZCBpcyBhIGNvbXBsZXRpb24gcmF0ZSwgbm90IGEgcmlzayBiYW5kLiAuYmx1ZS10ZXh0IGlzXG4gICAgLy8gYWxyZWFkeSAjOTc2OEVCLCBzbyB0aGUgbnVtYmVyIGFuZCBpdHMgYmFyIHN0aWxsIGFncmVlLlxuICAgICYtLXB1cnBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX190cm9waHkge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDRweCAwIDEycHg7XG4gIH1cblxuICAvLyBGaWxscyB3aXRoIGN1cnJlbnRDb2xvciwgc28gdGhpcyBpcyB3aGVyZSB0aGUgcHVycGxlIGNvbWVzIGZyb20uIFRoZVxuICAvLyBvdXRnb2luZyA8aW1nIHNyYz1cIi9pbWFnZXMvdHJvcGh5LnN2Z1wiPiBjb3VsZCBub3QgYmUgdGludGVkLlxuICAmX190cm9waHktaWNvbiB7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIC8vIFNpemVkIHRvIHRoZSB2YWx1ZSdzIGxpbmUgYm94IGJlc2lkZSBpdCByYXRoZXIgdGhhbiB0byBpdHMgZm9udCBzaXplLCBzb1xuICAgIC8vIHRoZSBnbHlwaCBhbmQgdGhlIG9yZGluYWwgc2hhcmUgYSBoZWlnaHQuXG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICB9XG5cbiAgLy8gTWF0Y2hlcyBfX3ZhbHVlOiB0aGUgb3JkaW5hbCBpcyBhIHZhbHVlIGxpa2UgYW55IG90aGVyLCBhbmQgdGhlIHB1cnBsZSBpc1xuICAvLyBzcGVudCBvbiB0aGUgdHJvcGh5IGJlc2lkZSBpdCByYXRoZXIgdGhhbiBvbiB0aGUgbnVtYmVyLlxuICAmX190cm9waHktcGxhY2Uge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgJl9fYmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LWJhbm5lci1iZztcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICB9XG5cbiAgJl9fYmFubmVyLWljb24ge1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAvLyBtaW4td2lkdGg6IDAgc28gdGhlIGNvcHkgd3JhcHMgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgQ1RBIG9mZiB0aGUgY2FyZC5cbiAgJl9fYmFubmVyLXRleHQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gVGhlIGxpZ2h0YnVsYiByaWRlcyBpbnNpZGUgdGhpcyByb3cgcmF0aGVyIHRoYW4gaW4gaXRzIG93biBjb2x1bW4gYmVzaWRlXG4gIC8vIHRoZSBjb3B5IGJsb2NrLCBzbyB0aGUgaWNvbiBzaXRzIG9uIHRoZSB0aXRsZSBsaW5lIGFuZCB0aGUgYm9keSB0ZXh0IHN0YXJ0c1xuICAvLyBmbHVzaCB3aXRoIHRoZSBpY29uIGluc3RlYWQgb2YgaW5kZW50ZWQgcGFzdCBpdC5cbiAgJl9fYmFubmVyLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBjb2xvcjogJHB1cnBsZS03MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAvLyBwcmUtbGluZSBzbyB0aGUgXFxuIGJha2VkIGludG8gUHJvZ3Jlc3NfT3ZlcnZpZXdfVGlwXypfQm9keSByZW5kZXJzIGFzIGFuXG4gIC8vIGFjdHVhbCBsaW5lIGJyZWFrIGluc3RlYWQgb2YgY29sbGFwc2luZyBsaWtlIG9yZGluYXJ5IHdoaXRlc3BhY2UuXG4gICZfX2Jhbm5lci1ib2R5IHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICB9XG5cbiAgLy8gRGVyaXZlZCBmcm9tIC5wcm9ncmVzcy1yZXBvcnQtZW1wdHlfX2N0YSAoX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3M6MzYxKSxcbiAgLy8gd2hpY2ggZG9jdW1lbnRzIHdoeSBhIGJ1dHRvbiBpbiB0aGlzIGJ1aWxkIG5lZWRzIHRoaXMgbXVjaCByZXN0YXRpbmc6XG4gIC8vICAgLSBgYnV0dG9uYCBnZXRzIGxvY2staGVpZ2h0KDUwcHgpLCBpLmUuIG1pbi1oZWlnaHQgQU5EIG1heC1oZWlnaHQsIHNvIGFcbiAgLy8gICAgIDM2cHggYm94IGhhcyB0byByZXN0YXRlIGFsbCB0aHJlZSBoZWlnaHQgcHJvcGVydGllcy5cbiAgLy8gICAtIF9iYXNlLnNjc3MgcHV0cyBhIEhlbHZldGljYSBzdGFjayBvbiBldmVyeSBidXR0b24sIHNvIHRoZSBmYW1pbHkgaGFzXG4gIC8vICAgICB0byBiZSByZXN0YXRlZCBvciB0aGUgbGFiZWwgc2lsZW50bHkgZmFsbHMgb2ZmIE51ZGlzdGEuXG4gIC8vICAgLSBidXR0b24gdGV4dCBpcyB1cHBlcmNhc2VkIGdsb2JhbGx5LlxuICAvLyBXaWR0aCBpcyBjb250ZW50LWRyaXZlbiBoZXJlIHJhdGhlciB0aGFuIHRoZSAxODBweCBmaXhlZCB0aGVyZSwgYmVjYXVzZVxuICAvLyB0aGUgbGFiZWwgaXMgYSB0cmFuc2xhdGVkIHN0cmluZyBvZiB1bnByZWRpY3RhYmxlIGxlbmd0aC5cbiAgJl9fY3RhIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgLy8gTm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQsIHNvIHRoZSAxcHggYm9yZGVyIGFuZCB0aGUgOC8xNiBwYWRkaW5nIGhhdmVcbiAgICAvLyB0byBiZSBmb2xkZWQgaW50byB0aGUgMzZweCBib3ggYnkgaGFuZC4gVmVydGljYWwgcGFkZGluZyBkcm9wcGVkIGZyb21cbiAgICAvLyAxMnB4IHRvIDhweCBhbG9uZyB3aXRoIHRoZSBoZWlnaHQsIG9yIHRoZSAxNnB4IGN0YS1pY29uIHdvdWxkIGNsaXAuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIC8vIFB1c2hlZCByaWdodCBieSBpdHMgb3duIG1hcmdpbiByYXRoZXIgdGhhbiBzcGFjZS1iZXR3ZWVuIG9uIHRoZSBiYW5uZXIsXG4gICAgLy8gc28gdGhlIGNvcHkgYmxvY2sga2VlcHMgdGhlIHNwYWNlIHRoZSBDVEEgZG9lcyBub3QgbmVlZC5cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAvLyBTYW1lIHN1cmZhY2UgYXMgdGhlIGJhbm5lciBpdCBzaXRzIG9uLCBub3QgYSB3aGl0ZSBjaGlwIG9uIHRvcCBvZiBpdC5cbiAgICBiYWNrZ3JvdW5kOiAkcG92LWJhbm5lci1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYnRuLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhLXdlYicsICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgfVxufVxuXG4vLyBCZXR3ZWVuIHRoZXNlIHR3byB3aWR0aHMgdGhlIHBhZ2UgY29sdW1uIGlzIG5hcnJvdyBlbm91Z2ggdGhhdCBhIGNoYXJ0IGFuZCBhXG4vLyAzLXVwIGdyaWQgYmVzaWRlIGl0IGJvdGggY29tZSB1cCBzaG9ydCwgYnV0IG5vdCBuYXJyb3cgZW5vdWdoIHRvIGp1c3RpZnlcbi8vIHN0YWNraW5nLiBEcm9wIHRoZSBncmlkIHRvIHR3byB0cmFja3MgYW5kIGxldCB0aGUgY2hhcnQga2VlcCB0aGUgcm93LlxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnByb2dyZXNzLW92ZXJ2aWV3IHtcbiAgICAmX19ib2R5IHtcbiAgICAgIGdhcDogMjBweDtcbiAgICB9XG5cbiAgICAmX190aWxlcyB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1vdmVydmlldyB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgICZfX2JvZHkge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICB9XG5cbiAgICAmX19jaGFydCB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2NoYXJ0LWJveCB7XG4gICAgICBoZWlnaHQ6ICRwb3YtY2hhcnQtaC1zbTtcbiAgICB9XG5cbiAgICAmX190aWxlcyB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBUaGUgQ1RBIGRyb3BzIG9udG8gaXRzIG93biBsaW5lIHVuZGVyIHRoZSBjb3B5IHJhdGhlciB0aGFuIHNxdWVlemluZyB0aGVcbiAgICAvLyBiYW5uZXIgdGV4dCB0byBub3RoaW5nLlxuICAgICZfX2Jhbm5lciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cblxuICAgICZfX2Jhbm5lci10ZXh0IHtcbiAgICAgIC8vIFdpdGhvdXQgYSBiYXNpcyB3aWRlIGVub3VnaCB0byBmb3JjZSB0aGUgd3JhcCB0aGUgQ1RBIHN0YXlzIG9uIHRoZVxuICAgICAgLy8gZmlyc3QgbGluZSBhbmQgdGhlIGNvcHkgY29sbGFwc2VzIHRvIG9uZSB3b3JkIHBlciBsaW5lLlxuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgMTAwJSk7XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgIG1hcmdpbjogMTJweCAwIDAgYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUaGUgUHJvZ3JhbXMgdGFiJ3MgXCJPdmVydmlld1wiIGNhcmQsIGFuZCB0aGUgcm93IHRoYXQgaG9sZHMgaXQgYmVzaWRlXG4gICBcIlByb2dyYW0gQ29tcGxldGlvblwiICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sLCB1bmRlclxuICAgdm0uYWN0aXZlVGFiID09PSAncHJvZ3JhbXMnKS5cblxuICAgSXRzIG93biBibG9jayByYXRoZXIgdGhhbiBhIG1vZGlmaWVyIG9mIC5wcm9ncmVzcy1vdmVydmlldywgZm9yIHRoZSBzYW1lXG4gICByZWFzb24gX3Byb2dyYW1zX2RldGFpbHMuc2NzcyBpcyBpdHMgb3duIGJsb2NrIHJhdGhlciB0aGFuIGEgbW9kaWZpZXIgb2ZcbiAgIF9wcm9ncmVzc19kZXRhaWxzLnNjc3M6IHRoZSB0d28gY2FyZHMgc2hhcmUgYSBzaGVsbCAtIGJvcmRlciwgcmFkaXVzLFxuICAgc2hhZG93LCB0aXRsZSBtZXRyaWNzIC0gYW5kIG5vdGhpbmcgZWxzZS4gLnByb2dyZXNzLW92ZXJ2aWV3IGlzIGEgbWVhc3VyZWRcbiAgIGNhbnZhcyBiZXNpZGUgYSB0aHJlZS1jb2x1bW4gdGlsZSBncmlkOyB0aGlzIGlzIGEgY29tcHV0ZWQgU1ZHIGJlc2lkZSBhXG4gICBzdGFja2VkIHRpbGUgY29sdW1uLCB3aXRoIGEgbGVnZW5kIHVuZGVyIGJvdGguIFNoYXJpbmcgYSBjbGFzcyB3b3VsZCBtZWFuXG4gICBjYXJyeWluZyB0aGUgY2FudmFzLW1lYXN1cmVtZW50IGNvbnRyYWN0IChfX2NoYXJ0LWJveCdzIGV4cGxpY2l0IGhlaWdodCxcbiAgIF9fY2hhcnQncyBtaW4td2lkdGg6IDApIGludG8gYSBjYXJkIHRoYXQgaGFzIG5vIGNhbnZhcyBpbiBpdC5cblxuICAgVGhhdCBzcGxpdCBpcyBhbHNvIHdoYXQgbGV0IC5wcm9ncmVzcy1vdmVydmlldyBkcm9wIGl0cyBQcm9ncmFtcyBicmFuY2hcbiAgIGVudGlyZWx5IC0gdGhlIGJhciBjaGFydCwgaXRzIC0tbGVnYWN5IG5ldXRyYWxpc2luZyBydWxlcyBhbmQgdGhlXG4gICBjaGFydEluZm8udHlwZSA9PT0gMyB0aWxlcyBhbGwgd2VudCB3aXRoIGl0LlxuXG4gICBUaGUgc2hlbGwgY29uc3RhbnRzIGFyZSByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCwgYmVjYXVzZSBTQ1NTXG4gICB2YXJpYWJsZXMgYXJlIGZpbGUtbG9jYWwgdW5sZXNzIGhvaXN0ZWQgdG8gX2Rlc2lnbl90b2tlbnMuc2Nzcy4gSWYgeW91IGNoYW5nZVxuICAgdGhlIGNhcmQgcmFkaXVzIG9yIHRpdGxlIG1ldHJpY3MgaW4gb25lIG9mIHRoZSBmb3VyIGNhcmRzIG9uIHRoaXMgcGFnZSxcbiAgIGNoYW5nZSB0aGVtIGluIGFsbCBmb3VyIG9yIHRoZXkgc3RvcCByZWFkaW5nIGFzIG9uZSBmYW1pbHkuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBUaGUgcmluZyBwYWxldHRlOiB0aGUgZG9udXQgbmFtZXMgb25seSBpdHMgdG9wIHR3byBwcm9ncmFtcyAoc2VlIFJJTkdfTElNSVRcbi8vIGluIHRoZSBjb250cm9sbGVyKS4gVGhlIG1vc3Qtc2NoZWR1bGVkIHByb2dyYW0gaXMgdGhlIGlubmVybW9zdCByaW5nIGFuZFxuLy8gZ2V0cyB0aGUgYnJpZ2h0ZXIgcHVycGxlOyB0aGUgc2Vjb25kIHByb2dyYW0gaXMgdGhlIG5leHQgcmluZyBvdXQ7IHRoZVxuLy8gcm9sbGVkLXVwIFwiT3RoZXJcIiwgaWYgdGhlcmUgaXMgb25lLCBpcyBhbHdheXMgb3V0ZXJtb3N0IGFuZCBncmV5LlxuLy9cbi8vIFJlZmVyZW5jZSBvbmx5IC0gdGhlIGxlZ2VuZCBkb3RzIGFuZCB0aGUgYXJjcyB0aGVtc2VsdmVzIGJvdGggZ2V0IHRoZWlyXG4vLyBjb2xvdXIgZnJvbSByaW5nLmNvbG9yIGluIFByb2dyZXNzUmVwb3J0Q29udHJvbGxlci5qcydzIFJJTkdfQ09MT1JTLCBzaW5jZVxuLy8gdGhlIFNWRyBuZWVkcyB0aGUgdmFsdWUgYXMgYW4gYXR0cmlidXRlIGFuZCBjYW5ub3QgcmVhZCBhIFNhc3MgdmFyaWFibGUuXG4vLyBUaGVzZSB0aHJlZSBleGlzdCBzbyBhIGNvbG91ciBjaGFuZ2UgaGFzIG9uZSBvYnZpb3VzIHBsYWNlIHRvIHN0YXJ0LCBidXRcbi8vIGNoYW5naW5nIHRoZW0gaGVyZSBkb2VzIG5vdGhpbmcgb24gaXRzIG93bjogdXBkYXRlIFJJTkdfQ09MT1JTIHRvIG1hdGNoLCBvclxuLy8gdGhlIGxlZ2VuZCBhbmQgdGhlIGFyY3MgaXQgaXMgbWVhbnQgdG8ga2V5IGRyaWZ0IGFwYXJ0LiBBbGwgdGhyZWUgYXJlXG4vLyBleGlzdGluZyB0b2tlbnMsIHNvIGEgY2hhbmdlIGJlbG9uZ3MgaW4gX2Rlc2lnbl90b2tlbnMuc2NzcyAoYW5kIHRoZSBzaWJsaW5nXG4vLyBhcHAncyB0YWlsd2luZCBjb25maWcpIGZpcnN0LlxuJHBnby1yaW5nLTE6ICAgICAkcHVycGxlLTUwMDsgIC8vICM5NzY4ZWJcbiRwZ28tcmluZy0yOiAgICAgJHB1cnBsZS05MDA7ICAvLyAjMzIyNTRmXG4kcGdvLXJpbmctb3RoZXI6ICRibGFjay00MDA7ICAgLy8gI2IwYjBiMFxuXG4vLyBUaGUgdW5maWxsZWQgcGFydCBvZiBldmVyeSByaW5nLiBPbmUgdmFsdWUgZm9yIGFsbCBvZiB0aGVtLCBzbyBhIHNob3J0IGFyY1xuLy8gcmVhZHMgYXMgYSBzaG9ydCBhcmMgcmF0aGVyIHRoYW4gYXMgYSBkaWZmZXJlbnRseS1jb2xvdXJlZCByaW5nLlxuJHBnby10cmFjazogI2YwZWVmNTtcblxuLy8gUGVyIGRlc2lnbjogdGhlIGxlZ2VuZCdzIG93biB3aWR0aCwgYW5kIGFsc28gJl9fZG9udXQncyAtIHRoZSB0d28gYXJlXG4vLyBjZW50cmVkIG9uIHRoZSBzYW1lIGxpbmUsIHNvIHRoZXkgc2hhcmUgb25lIGNvbnN0YW50IHJhdGhlciB0aGFuIGVhY2hcbi8vIGhhcmQtY29kaW5nIDIzOHB4IHNlcGFyYXRlbHkuIFNlZSAmX19kb251dCBhbmQgJl9fbGVnZW5kIGJlbG93LlxuJHBnby1sZWdlbmQtdzogMjM4cHg7XG5cbi8vIE5vIGZpeGVkIGRvbnV0IEhFSUdIVCBoZXJlOiBwZXIgZGVzaWduICgxNDhweCBzbWFsbGVzdCByaW5nLCA5cHggc3Ryb2tlLFxuLy8gNHB4IGdhcCBiZXR3ZWVuIHJpbmdzIC0gUklOR19SX0lOTkVSL1JJTkdfU1RST0tFL1JJTkdfR0FQIGluIHRoZVxuLy8gY29udHJvbGxlciksIHRoZSBkaWFncmFtJ3Mgb3duIHNpemUgZGVwZW5kcyBvbiBob3cgbWFueSByaW5ncyBhIHJlcG9ydCBoYXMsXG4vLyBzbyBpdHMgaGVpZ2h0IGlzIGNvbXB1dGVkIHBlciByZXBvcnQgKF9yZW5kZXJQcm9ncmFtT3ZlcnZpZXcncyBkb251dFNpemUpXG4vLyBhbmQgYm91bmQgb250byBib3RoIHRoZSB3cmFwcGVyJ3MgYm94IGFuZCB0aGUgU1ZHJ3Mgdmlld0JveCBmcm9tIHRoZVxuLy8gdGVtcGxhdGUuIEl0cyBXSURUSCBpcyBmaXhlZCBhdCAkcGdvLWxlZ2VuZC13IHJlZ2FyZGxlc3MgLSBzZWUgJl9fZG9udXQuXG5cbiRwZ28tY29sLWdhcDogIDI4cHg7XG4kcGdvLWJhci1oOiAgICA2cHg7XG4kcGdvLWJhci13OiAgICAxNDBweDtcblxuLy8gVGhlIHJvdyB0aGF0IGhvbGRzIHRoaXMgY2FyZCBhbmQgLnByb2dyYW1zLWNvbXBsZXRpb24gc2lkZSBieSBzaWRlLlxuLy8gLnZpZXctY29udGFpbmVyLmNvbHVtbiBpcyBhIGZsZXggY29sdW1uLCBzbyBzaWRlLWJ5LXNpZGUgbmVlZHMgYSByb3cgb2YgaXRzXG4vLyBvd24gLSBhbmQgb25lIHdyYXBwZXIgYWxzbyBrZWVwcyB0aGUgcGFpciBhcyBhIHNpbmdsZSBjaGlsZCBvZiAucHJpbnQtbm9kZSxcbi8vIHdoaWNoIGlzIHRoZSB1bml0IHRlc3RfcmVzdWx0c19wZGYgcmFzdGVyaXplcyBvdmVyLlxuLnByb2dyYW1zLW92ZXJ2aWV3LXJvdyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gIC8vIE1hdGNoZXMgLnByb2dyZXNzLW92ZXJ2aWV3J3Mgb3duIHRvcCBtYXJnaW46IHRoaXMgcm93IHJlcGxhY2VzIHRoYXQgY2FyZCBvblxuICAvLyB0aGUgUHJvZ3JhbXMgdGFiIGFuZCBoYXMgdG8gY2xlYXIgLnByb2dyZXNzLXJlcG9ydC1vcHRpb25zIGlkZW50aWNhbGx5LlxuICBtYXJnaW46IDIwcHggMCAwO1xuICBnYXA6IDIwcHg7XG5cbiAgPiAqIHtcbiAgICAvLyAxIDEgMCwgbm90IDEgMSBhdXRvLCBzbyB0aGUgdHdvIGNhcmRzIHNwbGl0IHRoZSByb3cgZXZlbmx5IHJlZ2FyZGxlc3Mgb2ZcbiAgICAvLyBob3cgd2lkZSB0aGVpciBjb250ZW50IHdhbnRzIHRvIGJlIC0gYSB0d2VsdmUtY29sdW1uIGhlYXRtYXAgd291bGRcbiAgICAvLyBvdGhlcndpc2UgdGFrZSB0aGUgcm93LlxuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDApO1xuICAgIC8vIExvYWQtYmVhcmluZy4gV2l0aG91dCBpdCB0aGUgaGVhdG1hcCdzIGludHJpbnNpYyB3aWR0aCBiZWNvbWVzIHRoaXNcbiAgICAvLyBjYXJkJ3MgbWluaW11bSBhbmQgdGhlIHJvdyBwdXNoZXMgcGFzdCB0aGUgcGFnZSBjb2x1bW4gaW5zdGVhZCBvZlxuICAgIC8vIGxldHRpbmcgLnByb2dyYW1zLWNvbXBsZXRpb25fX3Njcm9sbCBzY3JvbGwuIFNhbWUgY29udHJhY3RcbiAgICAvLyAucHJvZ3Jlc3Mtc3VtbWFyeV9fY2FyZCBkb2N1bWVudHMgZm9yIGl0cyBzcGFya2xpbmVzLlxuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQodGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgfVxufVxuXG4ucHJvZ3JhbXMtb3ZlcnZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMjBweDtcbiAgLy8gUGVyIGRlc2lnbjogdGhpcyBjYXJkIHN0b3BzIGdyb3dpbmcgYXQgNTIycHggcmF0aGVyIHRoYW4gc3BsaXR0aW5nIHRoZSByb3dcbiAgLy8gZXZlbmx5IHdpdGggLnByb2dyYW1zLWNvbXBsZXRpb24gb24gYSB3aWRlIHBhZ2UgLSBuYXJyb3dlciB0aGFuIHRoYXRcbiAgLy8gY2FyZCdzIG93biA2MDJweCBjYXAgKHNlZSBpdHMgcnVsZSkgb24gcHVycG9zZSwgc28gYSBwYWdlIHdpZGUgZW5vdWdoIGZvclxuICAvLyBib3RoIHRvIGhpdCB0aGVpciBjYXBzIHN0aWxsIGxlYXZlcyB0aGUgaGVhdG1hcCB0aGUgbGFyZ2VyIG9mIHRoZSB0d28uXG4gIG1heC13aWR0aDogNTIycHg7XG4gIC8vIE5vIGZpeGVkIGhlaWdodC4gVGhlIEZpZ21hIGNvbXAncyAzNDVweCBpcyBub3QgYW4gaW5kZXBlbmRlbnQgY29uc3RyYWludCAtXG4gIC8vIGl0IGlzIHdoYXQgdGhpcyBjYXJkJ3Mgb3duIGNvbnRlbnQgKHRpdGxlICsgdGhlIH4xODNweCB0d28tcmluZyBkb251dCArIGFcbiAgLy8gMi1yb3cgbGVnZW5kKSBhZGRzIHVwIHRvIGZvciB0aGUgY29tbW9uIGNhc2Ugb2YgZXhhY3RseSB0d28gcHJvZ3JhbXMuIEFcbiAgLy8gdGhpcmQgcHJvZ3JhbSByb2xscyBhbiBcIk90aGVyXCIgcm93IGludG8gdGhlIGxlZ2VuZCAoc2VlIFJJTkdfTElNSVQgaW4gdGhlXG4gIC8vIGNvbnRyb2xsZXIpLCB3aGljaCBpcyBhIGdlbnVpbmUgZXh0cmEgbGluZSBvZiBjb250ZW50LCBzbyB0aGF0IGNhc2UgaXNcbiAgLy8gY29ycmVjdGx5IGEgbGl0dGxlIHRhbGxlciByYXRoZXIgdGhhbiBzb21ldGhpbmcgdG8gY2xpcCBvciBwYWQgYXJvdW5kLlxuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgLy8gc3RyZXRjaCwgbm90IHRoZSBvbGQgZmxleC1zdGFydDogcGVyIGRlc2lnbiwgdGhlIHRpbGVzIGNvbHVtbiBmaWxscyB0aGVcbiAgLy8gRlVMTCBoZWlnaHQgb2YgdGhpcyByb3csIGZyb20gdGhlIHRvcCBvZiB0aGUgcmluZ3MgdG8gdGhlIGJvdHRvbSBvZiB0aGVcbiAgLy8gbGVnZW5kIC0gbm90IGp1c3QgaXRzIG93biB0aHJlZSB0aWxlcycgbmF0dXJhbCBoZWlnaHQgc2l0dGluZyBhdCB0aGUgdG9wXG4gIC8vIHdpdGggZGVhZCBzcGFjZSB0cmFpbGluZyBiZWxvdy4gc3RyZXRjaCBpcyB3aGF0IG1ha2VzIHRoYXQgcG9zc2libGU6IGl0XG4gIC8vIGlzIHRoZSBtZWNoYW5pc20gdGhhdCBoYW5kcyAmX19sZWZ0J3MgbmF0dXJhbCBoZWlnaHQgKGRvbnV0ICsgbGVnZW5kXG4gIC8vIHRvZ2V0aGVyLCBzaW5jZSB0aGUgbGVnZW5kIG5vdyBuZXN0cyBpbnNpZGUgaXQgLSBzZWUgJl9fbGVmdCBiZWxvdykgdG9cbiAgLy8gJl9fdGlsZXMgYXMgaXRzIG93biBoZWlnaHQsIHdoaWNoICZfX3RpbGVzJyBvd24ganVzdGlmeS1jb250ZW50OlxuICAvLyBzcGFjZS1iZXR3ZWVuIHRoZW4gc3ByZWFkcyBpdHMgdGhyZWUgdGlsZXMgYWNyb3NzIChzZWUgJl9fdGlsZXMgYmVsb3cpLlxuICAvL1xuICAvLyBzcGFjZS1iZXR3ZWVuIGhlcmUgdG9vLCB3aXRoIGJvdGggY29sdW1ucyBhIGZpeGVkIHdpZHRoICgkcGdvLWxlZ2VuZC13IG9uXG4gIC8vICZfX2xlZnQsIDE4OHB4IG9uICZfX3RpbGVzIC0gc2VlICZfX3RpbGVzIGJlbG93KTogcGVyIGRlc2lnbiB0aGUgdGlsZXNcbiAgLy8gY29sdW1uIHNpdHMgZmx1c2ggYWdhaW5zdCB0aGUgY2FyZCdzIG93biByaWdodCBlZGdlIHJhdGhlciB0aGFuIHRyYWlsaW5nXG4gIC8vIDI4cHggYWZ0ZXIgdGhlIGRvbnV0LiAyMzggKyAxODggbGVhdmVzIGV4YWN0bHkgNTZweCBvZiB0aGlzIGNhcmQncyA0ODJweFxuICAvLyBjb250ZW50IHdpZHRoICg1MjIgbWF4LXdpZHRoIG1pbnVzIDQwcHggcGFkZGluZykgc3BhcmUsIGFuZCBzcGFjZS1iZXR3ZWVuXG4gIC8vIGlzIHdoYXQgdHVybnMgdGhhdCA1NnB4IGludG8gdGhlIGdhcCBiZXR3ZWVuIHRoZSB0d28gY29sdW1ucyBpbnN0ZWFkIG9mXG4gIC8vIGRlYWQgc3BhY2UgYWZ0ZXIgdGhlIHRpbGVzLiBnYXAgc3RheXMgYXMgYSBmbG9vciB1bmRlciB0aGF0IC0gc2VlIHRoZVxuICAvLyBtb2JpbGUgb3ZlcnJpZGUgYmVsb3cgZm9yIHdoeSBpdCBjYW5ub3QganVzdCBiZSB0aGUgb25seSBydWxlLlxuICAmX19ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgZ2FwOiAkcGdvLWNvbC1nYXA7XG4gIH1cblxuICAvLyBUaGUgcmluZ3MgYW5kIHRoZWlyIGxlZ2VuZCwgc3RhY2tlZCAtIHdoYXQgdXNlZCB0byBiZSB0d28gc2VwYXJhdGVcbiAgLy8gY2hpbGRyZW4gb2YgJl9fYm9keSAoJl9fZG9udXQpIGFuZCBvZiB0aGUgY2FyZCBpdHNlbGYgKCZfX2xlZ2VuZCkgYXJlIG5vd1xuICAvLyBuZXN0ZWQgdG9nZXRoZXIgaW4gdGhlaXIgb3duIGNvbHVtbi4gVGhhdCBuZXN0aW5nIGlzIHdoYXQgbGV0cyAmX19ib2R5J3NcbiAgLy8gc3RyZXRjaCAoYWJvdmUpIG1lYXN1cmUgXCJ0b3Agb2YgcmluZ3MgdG8gYm90dG9tIG9mIGxlZ2VuZFwiIGFzIE9ORVxuICAvLyBudW1iZXIgYW5kIGhhbmQgaXQgdG8gJl9fdGlsZXM6ICZfX2xlZnQncyBvd24gbmF0dXJhbCBoZWlnaHQgaXNcbiAgLy8gZG9udXQtaGVpZ2h0ICsgZ2FwICsgbGVnZW5kLWhlaWdodCwgd2l0aCBub3RoaW5nIGVsc2UgY29udHJpYnV0aW5nIHRvIGl0LFxuICAvLyB3aGljaCBpcyBleGFjdGx5IHRoZSBzcGFuIHBlciBkZXNpZ24gJl9fdGlsZXMgaXMgbWVhbnQgdG8gZmlsbC5cbiAgLy9cbiAgLy8gTm8gZXhwbGljaXQgd2lkdGggb24gJl9fZG9udXQvJl9fbGVnZW5kIGFueSBtb3JlIC0gYm90aCBhcmUgZmxleCBpdGVtcyBvZlxuICAvLyB0aGlzIGNvbHVtbiwgYW5kIGEgY29sdW1uJ3MgZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCAodW5zZXQgaGVyZSwgc29cbiAgLy8gaXQgYXBwbGllcykgYWxyZWFkeSBzaXplcyBlYWNoIG9mIHRoZW0gdG8gJl9fbGVmdCdzIG93biB3aWR0aC4gT25lIDIzOHB4XG4gIC8vIGhlcmUgaXMgd2hhdCB1c2VkIHRvIGJlIHN0YXRlZCBvbiBib3RoIG9mIHRoZW0gc2VwYXJhdGVseS5cbiAgLy9cbiAgLy8gc3BhY2UtYmV0d2VlbiBhZ2Fpbjogb24gdGhlIHJhcmUgcmVwb3J0IHdoZXJlICZfX3RpbGVzIChub3QgdGhpcyBjb2x1bW4pXG4gIC8vIGlzIHRoZSB0YWxsZXIgc2lkZSAtIG9ubHkgd2hlbiB0aGVyZSBpcyBhIHNpbmdsZSByaW5nIChhIH4xNTdweCBkb251dFxuICAvLyBwbHVzIGEgb25lLXJvdyBsZWdlbmQgY29tZXMgdG8gbGVzcyB0aGFuIHRoZSB0aWxlcyBjb2x1bW4ncyBvd24gfjIxMHB4IG9mXG4gIC8vIGZpeGVkIGNvbnRlbnQ6IHR3byBwbGFpbiB0aWxlcyBwbHVzIGEgdGhpcmQgd2l0aCBhIHBlcmNlbnQgYmFyKSAtIHN0cmV0Y2hcbiAgLy8gaGFuZHMgdGhpcyBjb2x1bW4gdGlsZXMnIGdyZWF0ZXIgaGVpZ2h0IGluc3RlYWQsIGFuZCB0aGlzIGlzIHdoYXQgdHVybnNcbiAgLy8gdGhhdCBleHRyYSBmZXcgcGl4ZWxzIGludG8gYnJlYXRoaW5nIHJvb20gYmV0d2VlbiB0aGUgZG9udXQgYW5kIHRoZVxuICAvLyBsZWdlbmQgcmF0aGVyIHRoYW4gZGVhZCBzcGFjZSB0cmFpbGluZyBhZnRlciBpdC5cbiAgJl9fbGVmdCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICB3aWR0aDogJHBnby1sZWdlbmQtdztcbiAgfVxuXG4gIC8vIC0tLS0gdGhlIGRvbnV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVGhlIHBvc2l0aW9uaW5nIGNvbnRleHQgZm9yIGJvdGggdGhlIGNlbnRyZSBsYWJlbCBhbmQgdGhlIGhvdmVyIHRvb2x0aXAsXG4gIC8vIHdoaWNoIGFyZSBIVE1MIG92ZXIgdGhlIFNWRyByYXRoZXIgdGhhbiA8dGV4dD4gaW5zaWRlIGl0OiB0aGUgY2VudHJlIGlzXG4gIC8vIHRocmVlIGRpZmZlcmVudGx5LXN0eWxlZCBsaW5lcyBhbmQgdGhlIHRvb2x0aXAgaXMgYSBib3JkZXJlZCBjYXJkLCBuZWl0aGVyXG4gIC8vIG9mIHdoaWNoIFNWRyB0ZXh0IGNhbiBleHByZXNzIHdpdGhvdXQgaGFuZC1wbGFjaW5nIGV2ZXJ5IGJhc2VsaW5lLlxuICAvL1xuICAvLyBoZWlnaHQgaXMgc2V0IGZyb20gdGhlIHRlbXBsYXRlICh2bS5kb251dFNpemUpIGFuZCBNVVNUIHN0YXkgZXhwbGljaXQ6XG4gIC8vIHRoYXQgaXMgd2hhdCBzdG9wcyB0aGlzIGJveCBmcm9tIGJlaW5nIHN0cmV0Y2hlZCBieSAmX19sZWZ0J3Mgb3duXG4gIC8vIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiBhYm92ZS4gSWYgdGhpcyBldmVyIGJlY2FtZSBhdXRvIGluc3RlYWQsXG4gIC8vIGFueSBleHRyYSBoZWlnaHQgJl9fbGVmdCBwaWNrZWQgdXAgZnJvbSAmX190aWxlcyB3b3VsZCBpbmZsYXRlIHRoZSBkb251dFxuICAvLyBpdHNlbGYgcmF0aGVyIHRoYW4ganVzdCB0aGUgZ2FwIGJlbG93IGl0IC0gYW5kIHNpbmNlICZfX2RvbnV0LXN2ZyBpc1xuICAvLyB3aWR0aC9oZWlnaHQ6IDEwMCUgb2YgdGhpcyBib3ggd2l0aCBubyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG92ZXJyaWRlLCBhXG4gIC8vIHRhbGxlciBib3ggd291bGQgc2NhbGUgdGhlIFJJTkcgR0VPTUVUUlkgdXAgcGFzdCBpdHMgZXhhY3QgMTQ4cHgvOXB4LzRweFxuICAvLyBzcGVjIChzZWUgUklOR19SX0lOTkVSIGluIHRoZSBjb250cm9sbGVyKSB0byBmaWxsIGl0LCByYXRoZXIgdGhhbiBsZWF2aW5nXG4gIC8vIHRoYXQgc3BlYyBhbG9uZSB0aGUgd2F5IGl0IGlzIG1lYW50IHRvLlxuICAmX19kb251dCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gd2lkdGgvaGVpZ2h0IDEwMCUgb2YgJl9fZG9udXQncyBvd24gYm94LCBOT1Qgb2YgdGhlIGRpYWdyYW06ICZfX2RvbnV0IGlzXG4gIC8vICRwZ28tbGVnZW5kLXcgKDIzOHB4KSB3aWRlIHZpYSAmX19sZWZ0J3MgZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCAtXG4gIC8vIHNlZSAmX19sZWZ0IGFib3ZlIC0gYnV0IHRoZSBkaWFncmFtICh2aWV3Qm94KSBpcyBvbmx5IGV2ZXIgZG9udXRTaXplIHdpZGVcbiAgLy8gKDE1Ny0yMDlweCksIHNvIHRoaXMgU1ZHIHZpZXdwb3J0IGlzIHVzdWFsbHkgd2lkZXIgdGhhbiBpdHMgb3duIGNvbnRlbnQuXG4gIC8vIFRoYXQgd2lkdGggbWlzbWF0Y2ggaXMgd2hhdCBjZW50cmVzIHRoZSByaW5ncyB1bmRlciB0aGUgbGVnZW5kIHJhdGhlclxuICAvLyB0aGFuIHNvbWV0aGluZyB0byBhdm9pZDogU1ZHJ3MgZGVmYXVsdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvICh4TWlkWU1pZFxuICAvLyBtZWV0LCBub3Qgb3ZlcnJpZGRlbiBoZXJlKSBjZW50cmVzIGEgdmlld0JveCB0aGF0IGRvZXNuJ3QgZmlsbCBpdHNcbiAgLy8gdmlld3BvcnQgb24gd2hpY2hldmVyIGF4aXMgaGFzIHJvb20gdG8gc3BhcmUuIFRoZSBIRUlHSFQgaGFsZiBvZiB0aGF0XG4gIC8vIHBhaXIgbWF0Y2hlcyBleGFjdGx5ICgxMDAlIG9mICZfX2RvbnV0LCBpdHNlbGYgcGlubmVkIHRvIGRvbnV0U2l6ZSAtIHNlZVxuICAvLyAmX19kb251dCdzIG93biBub3RlKSwgc28gb25seSB0aGUgd2lkdGggYXhpcyBldmVyIGhhcyBzcGFyZSByb29tIHRvXG4gIC8vIGNlbnRyZSBpbnRvLlxuICAmX19kb251dC1zdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3JpbmctdHJhY2sge1xuICAgIHN0cm9rZTogJHBnby10cmFjaztcbiAgfVxuXG4gIC8vIFRoZSBhcmMncyBvd24gc3Ryb2tlLCBkYXNoYXJyYXkgYW5kIGRhc2hvZmZzZXQgYXJlIGFsbCBzZXQgcGVyIHJpbmcgZnJvbVxuICAvLyB0aGUgY29udHJvbGxlciAtIG9ubHkgdGhlIGhpdCBhcmVhIGFuZCB0aGUgaG92ZXIgYWZmb3JkYW5jZSBsaXZlIGhlcmUuXG4gIC8vIFBvaW50ZXIgZXZlbnRzIGxhbmQgb24gdGhlIHN0cm9rZSByYXRoZXIgdGhhbiB0aGUgKHVuZmlsbGVkKSBpbnRlcmlvcixcbiAgLy8gd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGUgYW5udWx1cyB0aGUgaG92ZXIgdGFyZ2V0LlxuICAmX19yaW5nLWFyYyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmVkIGJ5IHRyYW5zbGF0aW5nIG9mZiBpdHMgb3duIHNpemUsIG5vdCBieSBhIGZpeGVkIHRvcC9sZWZ0OiB0aGUgdHdvXG4gIC8vIGRvbnV0IHNpemVzIGFib3ZlIHdvdWxkIGVhY2ggbmVlZCB0aGVpciBvd24gb2Zmc2V0cyBvdGhlcndpc2UuIE5vdCBhXG4gIC8vIHBvaW50ZXIgdGFyZ2V0IC0gaXQgc2l0cyBvdmVyIHRoZSBob2xlLCBhbmQgc3dhbGxvd2luZyB0aGUgcG9pbnRlciB0aGVyZVxuICAvLyB3b3VsZCBibG9jayBub3RoaW5nLCBidXQgaXQgYWxzbyBvdmVybGFwcyB0aGUgaW5uZXIgcmluZydzIHN0cm9rZS5cbiAgJl9fY2VudGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0b3A6IDUwJTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgfVxuXG4gIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgaXMga2VwdCB0aG91Z2ggdGhlIGRlc2lnbiBzcGVjIGJlbG93IGRvZXNuJ3RcbiAgLy8gbWVudGlvbiBpdCAtIE92ZXJ2aWV3X1RvdGFsJ3Mgb3duIHRyYW5zbGF0aW9uIChcIlRvdGFsXCIpIGlzIG1peGVkLWNhc2UsXG4gIC8vIGFuZCBldmVyeSByZWZlcmVuY2UgcmVuZGVyIHN0aWxsIHNob3dzIFwiVE9UQUxcIiBpbiBjYXBzLCBzbyB0aGlzIGlzIHdoYXRcbiAgLy8gaXMgYWN0dWFsbHkgZG9pbmcgdGhhdCwgbm90IHRoZSBjb3B5LiBsZXR0ZXItc3BhY2luZyBzZXQgdG8gMCBwZXIgc3BlYyxcbiAgLy8gZHJvcHBpbmcgdGhlIDAuMDZlbSBhbiBhbGwtY2FwcyB3b3JkIHVzdWFsbHkgd2FudHMgZm9yIHJlYWRhYmlsaXR5IC0gYVxuICAvLyBkZWxpYmVyYXRlIGRlc2lnbiBjYWxsLCBub3QgYW4gb3ZlcnNpZ2h0LCBzbyBpdCBpcyBub3QgYmVpbmcgcmVzdG9yZWQuXG4gIC8vXG4gIC8vIE5vIHRleHQtYWxpZ24gaGVyZSAtIGNlbnRlcmVkLCBpbmhlcml0ZWQgZnJvbSAmX19jZW50ZXIncyBvd25cbiAgLy8gdGV4dC1hbGlnbjogY2VudGVyLiBFeHBsaWNpdGx5IHJldmVydGVkIG9mZiB0ZXh0LWFsaWduOiByaWdodCAod2hpY2hcbiAgLy8gJl9fY2VudGVyLXN1YiBiZWxvdyBzdGlsbCBjYXJyaWVzKTogXCJUT1RBTFwiIHJlYWRzIGFzIHRoaXMgc3RhY2sncyBvd25cbiAgLy8gaGVhZGluZyBhbmQgY2VudGVyaW5nIGl0IGlzIHdoYXQga2VlcHMgdGhhdCByZWFkLlxuICAmX19jZW50ZXItY2FwdGlvbiB7XG4gICAgY29sb3I6ICRibGFjay02MDA7IC8vICM2ZDZkNmRcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAvLyBPcGVucyB1cCB0aGUgZ2FwIHRvICZfX2NlbnRlci12YWx1ZSBiZWxvdyBpdC4gVGhlIHN0YWNrIGFzIGEgd2hvbGUgaXNcbiAgICAvLyBzdGlsbCBjZW50cmVkIGluIHRoZSBkb251dCdzIGhvbGUgKHNlZSAmX19jZW50ZXIncyB0cmFuc2xhdGUpLCBzbyB0aGlzXG4gICAgLy8gcmVhZHMgYXMgVE9UQUwgbW92aW5nIHVwIHJhdGhlciB0aGFuIHRoZSBwZXJjZW50YWdlIG1vdmluZyBkb3duLlxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fY2VudGVyLXZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDsgLy8gIzRmNGY0ZlxuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFRoZSBkb25lLWNvdW50IGlzIGEgc2VwYXJhdGUgc3BhbiAoJl9fY2VudGVyLXN1Yi12YWx1ZSkgc28gaXQgYWxvbmUgY2FuXG4gIC8vIGJlIGZvbnQtd2VpZ2h0OiA2MDAgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgLSBcIm9mIHt7dG90YWx9fSBkb25lXCIgLVxuICAvLyBzdGF5cyA1MDAuIFNlZSB0aGUgdGVtcGxhdGU6IHRoaXMgdXNlZCB0byBiZSBvbmUgdHJhbnNsYXRlIHN0cmluZ1xuICAvLyAoWF9PZl9ZX0RvbmUpLCBzcGxpdCBpbnRvIHRoZSBwbGFpbiBudW1iZXIgcGx1cyBhIG5ldyBPZl9Ub3RhbF9Eb25lIGtleVxuICAvLyBmb3IgdGhlIHN1ZmZpeCBzbyB0aGUgdHdvIGNhbiBjYXJyeSBkaWZmZXJlbnQgd2VpZ2h0cy5cbiAgJl9fY2VudGVyLXN1YiB7XG4gICAgY29sb3I6ICRibGFjay02MDA7IC8vICM2ZDZkNmRcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAvLyBPcGVucyB1cCB0aGUgZ2FwIHRvICZfX2NlbnRlci12YWx1ZSBhYm92ZSBpdCwgc2FtZSBtZWNoYW5pc20gYXNcbiAgICAvLyAmX19jZW50ZXItY2FwdGlvbidzIG93biBtYXJnaW4tYm90dG9tLlxuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC8vIFB1cmUgYmxhY2sgcGVyIGRlc2lnbiwgbm90IGEgdG9rZW4gLSBkZWxpYmVyYXRlbHkgZGFya2VyIHRoYW5cbiAgLy8gJl9fY2VudGVyLXN1YidzIG93biAkYmxhY2stNjAwICgjNmQ2ZDZkKSwgb24gdG9wIG9mIHRoZSB3ZWlnaHQgYnVtcCwgc29cbiAgLy8gdGhlIGRvbmUtY291bnQgcmVhZHMgYXMgdGhlIGVtcGhhc2lzZWQgcGFydCBvZiB0aGUgbGluZSByYXRoZXIgdGhhbiBqdXN0XG4gIC8vIGEgaGVhdmllciB2ZXJzaW9uIG9mIHRoZSBzYW1lIGdyZXkuXG4gICZfX2NlbnRlci1zdWItdmFsdWUge1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyAtLS0tIHRoZSBob3ZlciB0b29sdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIEFuY2hvcmVkIHRvIHRoZSBob3ZlcmVkIHJpbmcncyAxMiBvJ2Nsb2NrIC0gYHRvcGAgY29tZXMgZnJvbSB0aGUgY29udHJvbGxlclxuICAvLyBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGJveCAtIHJhdGhlciB0aGFuIGZvbGxvd2luZyB0aGUgcG9pbnRlcjogdGhlIGhpdFxuICAvLyBhcmVhIGlzIGEgd2hvbGUgYW5udWx1cywgc28gYSBwb2ludGVyLWZvbGxvd2luZyBidWJibGUgd291bGQgd2FuZGVyIHRoZVxuICAvLyBmdWxsIHdpZHRoIG9mIHRoZSBhcmMuXG4gIC8vXG4gIC8vIEl0IGhhbmdzIERPV05XQVJEIGZyb20gdGhhdCBwb2ludCwgb3ZlcmxhcHBpbmcgdGhlIGRvbnV0LCB3aGljaCBpcyBhbHNvXG4gIC8vIHdoZXJlIHRoZSBkZXNpZ24gcHV0cyBpdC4gTGlmdGluZyBpdCBjbGVhciBpbnN0ZWFkIChhIHRyYW5zbGF0ZVkgb2YgLTEwMCVcbiAgLy8gb3IgbW9yZSkgd291bGQgcHV0IHRoZSBvdXRlcm1vc3QgcmluZydzIGJ1YmJsZSBhYm92ZSB0aGUgY2FyZCBlbnRpcmVseTpcbiAgLy8gdGhhdCByaW5nIGFuY2hvcnMgYXQgNC41JSBvZiB0aGUgYm94LCBhcm91bmQgMTFweCBkb3duLCBhbmQgdGhlIGJ1YmJsZSBpc1xuICAvLyB0YWxsZXIgdGhhbiB0aGF0LlxuICAvL1xuICAvLyBUaGUgaG9yaXpvbnRhbCAtMTAlIGlzIGEgbnVkZ2Ugb2ZmIGNlbnRyZSwgbm90IGEgY2VudHJpbmc6IHRoZSBidWJibGUgaXNcbiAgLy8gd2lkZXIgdGhhbiB0aGUgYXJjIGl0IHBvaW50cyBhdCBhbmQgcmVhZHMgYmV0dGVyIGV4dGVuZGluZyByaWdodCwgYXMgaW5cbiAgLy8gdGhlIGNvbXAuXG4gICZfX3RpcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgei1pbmRleDogNTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC0xMCUsIDZweCkpO1xuICB9XG5cbiAgJl9fdGlwLWhlYWQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICB9XG5cbiAgJl9fdGlwLWRvdCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gIH1cblxuICAvLyBzcGFjZS1iZXR3ZWVuIHJhdGhlciB0aGFuIGEgZml4ZWQgbGFiZWwgd2lkdGg6IHRoZSB0d28gcm93cyBhcmUgU2NoZWR1bGVkXG4gIC8vIGFuZCBDb21wbGV0ZWQsIGFuZCB0aGUgdmFsdWUgY29sdW1uIGhhcyB0byBsaW5lIHVwIHVuZGVyIHdoaWNoZXZlciBpc1xuICAvLyBsb25nZXIgaW4gdGhlIGFjdGl2ZSBsYW5ndWFnZS5cbiAgJl9fdGlwLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZ2FwOiAyNHB4O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLSB0aGUgdGlsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBGaXhlZCBhdCAxODhweCBwZXIgZGVzaWduLCBub3QgMSAxIDAgYW55IG1vcmU6IGEgZmxleGlibGUgY29sdW1uIHdvdWxkXG4gIC8vIGZpbGwgd2hhdGV2ZXIgdGhlIGRvbnV0IGxlYXZlcyBiZWhpbmQsIHdoaWNoIGlzIHdoYXQgdXNlZCB0byBwdXQgaXQgcmlnaHRcbiAgLy8gbmV4dCB0byB0aGUgZG9udXQgd2l0aCBvbmx5ICRwZ28tY29sLWdhcCBiZXR3ZWVuIHRoZW0uIEEgZml4ZWQgd2lkdGggb25cbiAgLy8gYm90aCBjb2x1bW5zIGlzIHdoYXQgJl9fYm9keSdzIHNwYWNlLWJldHdlZW4gbmVlZHMgdG8gcHVzaCB0aGlzIG9uZSB0b1xuICAvLyB0aGUgY2FyZCdzIG93biByaWdodCBlZGdlIGluc3RlYWQuXG4gIC8vXG4gIC8vIE5vIGV4cGxpY2l0IGhlaWdodDogJl9fYm9keSdzIGFsaWduLWl0ZW1zOiBzdHJldGNoIChzZWUgYWJvdmUpIGlzIHdoYXRcbiAgLy8gZ2l2ZXMgdGhpcyBjb2x1bW4gaXRzIGhlaWdodCwgbWF0Y2hpbmcgJl9fbGVmdCdzIG93biAoZG9udXQgKyBsZWdlbmQpXG4gIC8vIHdoZW5ldmVyIHRoYXQgaXMgdGhlIHRhbGxlciBvZiB0aGUgdHdvIC0gdGhlIHVzdWFsIGNhc2UsIHNpbmNlICZfX2xlZnQnc1xuICAvLyBsZWdlbmQgYWRkcyBoZWlnaHQgJl9fdGlsZXMgaGFzIG5vIGVxdWl2YWxlbnQgb2YuIGp1c3RpZnktY29udGVudDpcbiAgLy8gc3BhY2UtYmV0d2VlbiBpcyB3aGF0IGFjdHVhbGx5IHNwZW5kcyB0aGF0IGV4dHJhIGhlaWdodCwgc3ByZWFkaW5nIHRoZVxuICAvLyB0aHJlZSB0aWxlcyBmcm9tIHRoZSB0b3Agb2YgdGhlIHJpbmdzIHRvIHRoZSBib3R0b20gb2YgdGhlIGxlZ2VuZCBpbnN0ZWFkXG4gIC8vIG9mIGxlYXZpbmcgdGhlbSBwYWNrZWQgYXQgZ2FwOjIwcHggZWFjaCB3aXRoIGRlYWQgc3BhY2UgdHJhaWxpbmcgYmVsb3cgLVxuICAvLyBnYXAgc3RheXMgYXMgdGhlIGZsb29yIGZvciB3aGljaGV2ZXIgcmVwb3J0IGhhcyAmX190aWxlcyBhcyB0aGUgdGFsbGVyXG4gIC8vIGNvbHVtbiBpbnN0ZWFkIChhIHNpbmdsZSByaW5nIC0gc2VlICZfX2xlZnQncyBub3RlIGFib3ZlKSwgd2hlcmUgdGhlcmVcbiAgLy8gaXMgbm8gZXh0cmEgaGVpZ2h0IGZvciBzcGFjZS1iZXR3ZWVuIHRvIHNwZW5kLlxuICAmX190aWxlcyB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBnYXA6IDIwcHg7XG4gICAgd2lkdGg6IDE4OHB4O1xuICB9XG5cbiAgJl9fdGlsZS1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7IC8vICM0ZjRmNGZcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIH1cblxuICAmX190aWxlLXZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDsgLy8gIzRmNGY0ZlxuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICB9XG5cbiAgLy8gU2FtZSB0cmFjay9maWxsIG1ldHJpY3MgYXMgLnByb2dyYW1zLWRldGFpbHMnIHBlcmNlbnQgYmFyLCBzbyB0aGUgdHdvIGNhcmRzXG4gIC8vIG9uIHRoaXMgdGFiIHJlYWQgdGhlIHNhbWUuIE5vIG1pbi13aWR0aCBvbiB0aGUgZmlsbDogMCUgbXVzdCByZWFkIGVtcHR5LlxuICAmX19iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBoZWlnaHQ6ICRwZ28tYmFyLWg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkcGdvLWJhci13O1xuICB9XG5cbiAgJl9fYmFyLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLy8gLS0tLSB0aGUgbGVnZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBOZXN0ZWQgaW5zaWRlICZfX2xlZnQgbm93LCB1bmRlciB0aGUgZG9udXQgcmF0aGVyIHRoYW4gdW5kZXIgdGhlIHdob2xlXG4gIC8vIGJvZHkgLSBzZWUgJl9fbGVmdCBhYm92ZSBmb3Igd2h5LiBObyBleHBsaWNpdCB3aWR0aCBoZXJlIGFueSBtb3JlOiBpdFxuICAvLyBjb21lcyBmcm9tICZfX2xlZnQncyBvd24gZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCwgdGhlIHNhbWUgYXNcbiAgLy8gJl9fZG9udXQncywgc28gYm90aCBzdGF5ICRwZ28tbGVnZW5kLXcgd2l0aG91dCBlaXRoZXIgcmVzdGF0aW5nIGl0LlxuICAvL1xuICAvLyBUaGUgbGFiZWwgc3RpbGwgZWxsaXBzaXNlcyByYXRoZXIgdGhhbiB3cmFwcGluZyAoc2VlICZfX2xlZ2VuZC1sYWJlbCksIHNvXG4gIC8vIGEgbG9uZyBwcm9ncmFtIG5hbWUgdHJ1bmNhdGVzIHNvb25lciBhdCB0aGlzIHdpZHRoIHRoYW4gaXQgd291bGQgYXQgdGhlXG4gIC8vIGNhcmQncyBvd24gZWRnZSAtIHRoYXQgaXMgdGhlIHRyYWRlIHRoaXMgd2lkdGggYnV5cy5cbiAgJl9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAmX19sZWdlbmQtZG90IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDlweDtcbiAgfVxuXG4gIC8vIDEgMSBhdXRvIHdpdGggbWluLXdpZHRoOiAwIHNvIGEgbG9uZyBwcm9ncmFtIG5hbWUgZWxsaXBzaXNlcyByYXRoZXIgdGhhblxuICAvLyBwdXNoaW5nIGl0cyBjb3VudCBvZmYgdGhlIGNhcmQuXG4gICZfX2xlZ2VuZC1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX2xlZ2VuZC12YWx1ZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAvLyBUaGUgZG9udXQgYW5kIHRoZSB0aWxlcyBlYWNoIHdhbnQgdGhlIGZ1bGwgd2lkdGggYmVsb3cgdGhpcyB0aWVyOyBzaWRlIGJ5XG4gICAgLy8gc2lkZSB0aGV5IGxlYXZlIHRoZSB0aWxlIHZhbHVlcyB0b28gbmFycm93IHRvIHJlYWQuXG4gICAgLy9cbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnQgcmVzZXQgdG8gZmxleC1zdGFydDogc3BhY2UtYmV0d2VlbiBpcyBhIHJvdy1heGlzIHJ1bGUuXG4gICAgLy8gTGVmdCBhcy1pcyBvbmNlICZfX2JvZHkgdHVybnMgY29sdW1uLCBpdCB3b3VsZCBwdXNoIHRoZSBkb251dCB0byB0aGVcbiAgICAvLyB0b3AgYW5kIHRoZSB0aWxlcyB0byB0aGUgdmVyeSBib3R0b20gb2YgdGhlIHN0YWNrIHdpdGggYWxsIG9mIHRoZVxuICAgIC8vIGxlZnRvdmVyIHZlcnRpY2FsIHNwYWNlIGxhbmRpbmcgYXMgb25lIGdhcCBiZXR3ZWVuIHRoZW0sIGluc3RlYWQgb2YgdGhlXG4gICAgLy8gZXZlbiAyMHB4IHN0YWNraW5nIHRoaXMgdGllciB3YW50cy5cbiAgICAmX19ib2R5IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICBnYXA6IDIwcHg7XG4gICAgfVxuXG4gICAgLy8gQ2VudGVycyAmX19sZWZ0ICh0aGUgcmluZ3MgKyBsZWdlbmQgY29sdW1uLCBzdGlsbCBmaXhlZCBhdFxuICAgIC8vICRwZ28tbGVnZW5kLXcgLSBzZWUgJl9fbGVmdCBhYm92ZSkgd2l0aGluIHRoZSBmdWxsLXdpZHRoIHN0YWNrZWRcbiAgICAvLyBjb2x1bW4sIHJhdGhlciB0aGFuIHN0cmV0Y2hpbmcgaXQgZWRnZSB0byBlZGdlLiAmX19kb251dCBhbmQgJl9fbGVnZW5kXG4gICAgLy8gbm8gbG9uZ2VyIG5lZWQgdGhlaXIgb3duIGFsaWduLXNlbGYgaGVyZTogbmVpdGhlciBpcyBhIGRpcmVjdCBmbGV4XG4gICAgLy8gY2hpbGQgb2YgJl9fYm9keSBhbnkgbW9yZSwgYm90aCBhcmUgJl9fbGVmdCdzIGNoaWxkcmVuIGluc3RlYWQsIGFuZFxuICAgIC8vICZfX2xlZnQncyBvd24gZGVmYXVsdCBhbGlnbi1pdGVtcyBhbHJlYWR5IGtlZXBzIHRoZW0gYXQgaXRzIGZ1bGwgd2lkdGhcbiAgICAvLyByZWdhcmRsZXNzIG9mIHRpZXIuXG4gICAgJl9fbGVmdCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBGaXhlZCAxODhweCBpcyBhIHR3by1jb2x1bW4tcm93IGNvbmNlcm4gLSBzZWUgJl9fdGlsZXMgYWJvdmUuIFN0YWNrZWQsXG4gICAgLy8gdGhpcyByZXZlcnRzIHRvIHRoZSBzYW1lIGZ1bGwtd2lkdGgsIHN0cmV0Y2gtZHJpdmVuIHNpemluZyAmX19sZWZ0XG4gICAgLy8gYWxyZWFkeSBnZXRzIGZyb20gdGhpcyB0aWVyJ3MgJl9fYm9keTogYWxpZ24taXRlbXM6c3RyZXRjaCwgb25jZSBib2R5XG4gICAgLy8gaXMgYSBjb2x1bW4sIHNpemVzICZfX3RpbGVzIHRvIGl0cyBvd24gbmF0dXJhbCBjb250ZW50IGhlaWdodCByYXRoZXJcbiAgICAvLyB0aGFuICZfX2xlZnQncyBoZWlnaHQsIHNvIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiBvbiAmX190aWxlc1xuICAgIC8vIChzZWUgdGhhdCBibG9jayBhYm92ZSkgaGFzIG5vdGhpbmcgdG8gc3BlbmQgaGVyZSBlaXRoZXIgLSB3aGljaCBpc1xuICAgIC8vIGNvcnJlY3QsIHNpbmNlICZfX2xlZnQgYW5kICZfX3RpbGVzIGFyZSBzdGFja2VkLCBub3Qgc2lkZSBieSBzaWRlLCBzb1xuICAgIC8vIHRoZXJlIGlzIG5vIHNoYXJlZCByb3cgaGVpZ2h0IGxlZnQgdG8gZmlsbC5cbiAgICAmX190aWxlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUaGUgXCJQcm9ncmFtIENvbXBsZXRpb25cIiBjYXJkIG9uIHRoZSBwcm9ncmVzcyByZXBvcnQncyBQcm9ncmFtcyB0YWJcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKTogYSBjb250cmlidXRpb24tZ3JhcGggc3R5bGVcbiAgIGhlYXRtYXAgb2YgY29tcGxldGVkL3NjaGVkdWxlZCBwcm9ncmFtcyBwZXIgYnVja2V0LlxuXG4gICBTaXRzIGJlc2lkZSAucHJvZ3JhbXMtb3ZlcnZpZXcgaW4gLnByb2dyYW1zLW92ZXJ2aWV3LXJvdywgd2hpY2ggaXMgZGVjbGFyZWRcbiAgIGluIF9wcm9ncmFtc19vdmVydmlldy5zY3NzIGFsb25nIHdpdGggdGhlIHNoZWxsIGNvbnN0YW50cyBib3RoIGNhcmRzIHNoYXJlIC1cbiAgIHNlZSB0aGF0IGZpbGUncyBoZWFkZXIgZm9yIHdoeSB0aGVzZSBhcmUgc2VwYXJhdGUgYmxvY2tzIGFuZCB3aHkgdGhlIHNoZWxsIGlzXG4gICByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZC5cblxuICAgVGhlIGdyaWQncyBzaGFwZSBpcyBkYXRhLCBub3Qgc3R5bGUuIFByb2dyZXNzUmVwb3J0Q29udHJvbGxlcidzXG4gICBfcmVuZGVyUHJvZ3JhbUNvbXBsZXRpb24gcGlja3Mgb25lIG9mIHRocmVlIGxheW91dHMgZnJvbSB0aGUgc2VsZWN0ZWQgZGF0ZVxuICAgcmFuZ2UgKHNldmVuIGRheSBjb2x1bW5zIGZvciBhIHdlZWsgb3IgYSBtb250aCwgbW9udGggY29sdW1ucyBvdmVyIFdlZWsgMS01XG4gICByb3dzIGZvciBhbnl0aGluZyBsb25nZXIpIGFuZCBoYW5kcyB0aGUgdGVtcGxhdGUgYm90aCB0aGVcbiAgIGdyaWQtdGVtcGxhdGUtY29sdW1ucyB0cmFjayBsaXN0IGFuZCBhIEZMQVQgbGlzdCBvZiBncmlkIGl0ZW1zLiBGbGF0IGJlY2F1c2VcbiAgIGEgQ1NTIGdyaWQgb25seSBmbG93cyBpdHMgZGlyZWN0IGNoaWxkcmVuLCBzbyB0aGVyZSBjYW4gYmUgbm8gcGVyLXJvd1xuICAgd3JhcHBlciAtIHRoZSBzYW1lIHRyYXAgX3Byb2dyZXNzX292ZXJ2aWV3LnNjc3MncyBoZWFkZXIgZG9jdW1lbnRzIGZvciB0aGVcbiAgIHRpbGVzLiBOb3RoaW5nIGhlcmUgbWF5IGludHJvZHVjZSBvbmUuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBUaGUgY29tcGxldGlvbiByYW1wLCBieSBxdWFydGVyIG9mIGNvbXBsZXRlZC9zY2hlZHVsZWQuXG4vL1xuLy8gQSBkb2N1bWVudGVkIGRpdmVyZ2VuY2UsIG5vdCBhIHRva2VuIGxvb2t1cDogdGhlIGRlc2lnbiBzeXN0ZW0gZGVmaW5lcyBub1xuLy8gZ3JlZW4gU0NBTEUgLSBfZGVzaWduX3Rva2Vucy5zY3NzIGhhcyBvbmx5ICRncmVlbi01MDAgKCMxMmI3NmEpIGFuZFxuLy8gJGdyZWVuLTUwIC0gYW5kIHRoZXNlIGFyZSBhIHllbGxvdy1sZWFuaW5nIG9saXZlIHJhdGhlciB0aGFuIHRoYXQgdG9rZW4nc1xuLy8gdGVhbC1sZWFuaW5nIGdyZWVuLCBzbyB0aGV5IGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gaXQuIFNwZWMnZCBkaXJlY3RseVxuLy8gcmF0aGVyIHRoYW4gc2FtcGxlZC4gU2FtZSB0cmVhdG1lbnQgX2Rlc2lnbl90b2tlbnMuc2NzcyBnaXZlcyBpdHMgb3duICR4LVxuLy8gZGl2ZXJnZW5jZXM6IGhvaXN0ZWQgYW5kIGxhYmVsbGVkIHJhdGhlciB0aGFuIHJlLWludmVudGVkIHBlciB1c2Ugc2l0ZS4gSWYgYVxuLy8gZ3JlZW4gc2NhbGUgaXMgZXZlciBhZGRlZCB0byB0aGUgc2libGluZyBhcHAncyB0YWlsd2luZCBjb25maWcsIHRoZXNlXG4vLyBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaXQgcmF0aGVyIHRoYW4ga2VwdCBhbG9uZ3NpZGUuXG4kcGdjLWwxOiAjYWZkODhjO1xuJHBnYy1sMjogIzg0YjE1ZjtcbiRwZ2MtbDM6ICM1ZjhmMzg7XG4kcGdjLWw0OiAjM2I2ZDExO1xuXG4vLyBTY2hlZHVsZWQsIG5vbmUgY29tcGxldGVkLiBEZWxpYmVyYXRlbHkgTk9UIHRoZSBsaWdodGVzdCBzdGVwIG9mIHRoZSByYW1wXG4vLyBhYm92ZTogYSBtaXNzZWQgZGF5IGFuZCBhIGJhcmVseS1kb25lIGRheSBhcmUgZGlmZmVyZW50IGZhY3RzLCBhbmQgYSBncmV5XG4vLyBzYXlzIHNvIHdoZXJlIGEgcGFsZSBncmVlbiB3b3VsZCByZWFkIGFzIHBhcnRpYWwgY3JlZGl0LlxuJHBnYy16ZXJvOiAjYjNiM2JlO1xuXG4vLyBOb3RoaW5nIHdhcyBldmVyIHNjaGVkdWxlZC5cbiRwZ2Mtbm9uZTogI2VmZWZmMTtcblxuJHBnYy1jZWxsLWg6ICAzMnB4O1xuJHBnYy1nYXA6ICAgICA4cHg7XG4kcGdjLXJhZGl1czogIDdweDtcblxuLnByb2dyYW1zLWNvbXBsZXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gVGhlIGNhcmQgaXMgYSBmbGV4IGNvbHVtbiBzbyB0aGUgbGVnZW5kIGNhbiBiZSBwaW5uZWQgdG8gdGhlIGJvdHRvbSB3aXRoXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gLSB0aGUgdHdvIGNhcmRzIGluIHRoZSByb3cgYXJlIHN0cmV0Y2hlZCB0byBlcXVhbCBoZWlnaHQsXG4gIC8vIGFuZCB3aXRob3V0IHRoaXMgdGhlIGxlZ2VuZCB3b3VsZCBmbG9hdCBtaWQtY2FyZCB1bmRlciB0aGUgc2hvcnRlciBncmlkLlxuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gODBweCB3aWRlciB0aGFuIC5wcm9ncmFtcy1vdmVydmlldydzIG93biA1MjJweCBjYXAgKHNlZSBpdHMgaGVhZGVyXG4gIC8vIGNvbW1lbnQpIC0gcGVyIGRlc2lnbiwgdGhpcyBjYXJkIHRha2VzIG1vcmUgb2YgdGhlIHJvdydzIHdpZHRoIG9uIGEgd2lkZVxuICAvLyBwYWdlIHJhdGhlciB0aGFuIHRoZSB0d28gc3BsaXR0aW5nIGl0IGV2ZW5seS4gUHJldmlvdXNseSB0aGlzIGNhcmQgaGFkIG5vXG4gIC8vIG1heC13aWR0aCBhbmQgYWJzb3JiZWQgYWxsIHRoZSByb3cncyBsZWZ0b3ZlciB3aWR0aCBieSBkZXNpZ247IG5vdyBib3RoXG4gIC8vIGNhcmRzIGNhcCBvdXQsIGFuZCBhIHBhZ2Ugd2lkZSBlbm91Z2ggZm9yIGJvdGggbGVhdmVzIHdoaXRlc3BhY2UgaW5cbiAgLy8gLnByb2dyYW1zLW92ZXJ2aWV3LXJvdyBpbnN0ZWFkLlxuICBtYXgtd2lkdGg6IDYwMnB4O1xuICBwYWRkaW5nOiAyMHB4O1xuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgLy8gVGhlIHNjcm9sbGVyLCBub3QgdGhlIGdyaWQgaXRzZWxmOiBhIGdyaWQgdGhhdCBpcyBpdHMgb3duIHNjcm9sbCBjb250YWluZXJcbiAgLy8gY2Fubm90IGJlIGNlbnRyZWQgYnkgaXRzIHBhcmVudCwgYW5kIGBvdmVyZmxvd2Agb24gdGhlIGdyaWQgd291bGQgYWxzbyBjbGlwXG4gIC8vIG5vdGhpbmcgdXNlZnVsIHNpbmNlIHRoZSBjZWxscyBhcmUgdGhlIG92ZXJmbG93LiBUd2VsdmUgZml4ZWQgMzJweCBtb250aFxuICAvLyBjb2x1bW5zIGNhbiBleGNlZWQgYSBoYWxmLXdpZHRoIGNhcmQsIGFuZCB0aGlzIGlzIHdoYXQgbWFrZXMgdGhhdFxuICAvLyBzdXJ2aXZhYmxlIGluc3RlYWQgb2YgYmxvd2luZyB0aGUgcm93IG9wZW4gKHdpdGggLnByb2dyYW1zLW92ZXJ2aWV3LXJvdydzXG4gIC8vIG1pbi13aWR0aDogMCBvbiB0aGUgY2FyZCwgd2hpY2ggaXMgd2hhdCBsZXRzIHRoaXMgYm94IGJlIG5hcnJvd2VyIHRoYW4gaXRzXG4gIC8vIGNvbnRlbnQpLlxuICAmX19zY3JvbGwge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgIC8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZ3JpZCB3aXRoaW4gd2hhdGV2ZXIgbGVmdG92ZXIgc3BhY2UgZmxleC1ncm93XG4gICAgLy8gZ2l2ZXMgdGhpcyBlbGVtZW50IGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgbGVnZW5kIC0gdGhlIGdyaWQgc3RheXMgYVxuICAgIC8vIHNpbmdsZSBmbGV4IGNoaWxkIGhlcmUsIHNvIHRoaXMgb25seSBldmVyIGFmZmVjdHMgdGhlIGNyb3NzIGF4aXMsIG5ldmVyXG4gICAgLy8gdGhlIGhvcml6b250YWwgc2Nyb2xsIGJlbG93LlxuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC8vIENsZWFycyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgd2hlcmUgb25lIGFwcGVhcnMsIHNvIGl0IGRvZXMgbm90IHNpdCBvblxuICAgIC8vIHRoZSBib3R0b20gcm93IG9mIGNlbGxzLlxuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIH1cblxuICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnMgY29tZXMgZnJvbSB0aGUgY29udHJvbGxlciB2aWEgbmctc3R5bGU6IHRoZSBjb2x1bW5cbiAgLy8gY291bnQgaXMgdGhlIG51bWJlciBvZiBkYXlzIG9yIG1vbnRocyBpbiByYW5nZSwgc28gdGhlIHRyYWNrIGxpc3QgY2Fubm90IGJlXG4gIC8vIHdyaXR0ZW4gaGVyZS4gSXQgaXMgYWx3YXlzIGBhdXRvIHJlcGVhdChOLCAkcGdjLWNlbGwtaClgIC0gb25lIHNocmluay10by1maXRcbiAgLy8gY29sdW1uIGZvciB0aGUgcm93IGxhYmVscywgdGhlbiBOIGZpeGVkLXdpZHRoIGNlbGwgY29sdW1ucyBtYXRjaGluZyB0aGVcbiAgLy8gY2VsbHMnIG93biBzcXVhcmUgc2l6ZS5cbiAgLy9cbiAgLy8gZGlzcGxheTogZ3JpZCByYXRoZXIgdGhhbiBpbmxpbmUtZ3JpZDogdGhlIGdyaWQgbXVzdCBiZSBhYmxlIHRvIGJlIG5hcnJvd2VyXG4gIC8vIHRoYW4gaXRzIHRyYWNrcyB3YW50IHNvIF9fc2Nyb2xsIGhhcyBzb21ldGhpbmcgdG8gc2Nyb2xsLlxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBnYXA6ICRwZ2MtZ2FwO1xuICAgIC8vIEdyaWQncyBkZWZhdWx0IGp1c3RpZnktY29udGVudCAobm9ybWFsKSBzdHJldGNoZXMgd2hpY2hldmVyIHRyYWNrIGhhc1xuICAgIC8vIGFuIGBhdXRvYCBtYXggc2l6aW5nIGZ1bmN0aW9uIHRvIHNvYWsgdXAgbGVmdG92ZXIgc3BhY2UgLSBoZXJlIHRoYXQnc1xuICAgIC8vIHRoZSByb3ctbGFiZWwgY29sdW1uLCBzaW5jZSB0aGUgY2VsbCBjb2x1bW5zIGFyZSBhIGZpeGVkIDMycHguIExlZnQgYXRcbiAgICAvLyB0aGUgZGVmYXVsdCwgYSBjYXJkIHdpZGVyIHRoYW4gdGhlIHRyYWNrcyBuZWVkIHdvdWxkIGJhbGxvb24gdGhlIGxhYmVsXG4gICAgLy8gY29sdW1uIGFuZCBzaG92ZSBldmVyeSBjZWxsIG92ZXIgdG8gdGhlIHJpZ2h0IGVkZ2UuIGBjZW50ZXJgIG9wdHMgb3V0XG4gICAgLy8gb2YgdGhhdCBzdHJldGNoIGFuZCBjZW50ZXJzIHRoZSB3aG9sZSB0cmFjayBzZXQgKGxhYmVscyBhbmQgY2VsbHNcbiAgICAvLyB0b2dldGhlcikgaW4gdGhlIGJveCBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gUGxhaW4gYGNlbnRlcmAgZmlyc3QgYXMgdGhlIGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmRcbiAgICAvLyBgc2FmZWAgKGFuIGludmFsaWQgdmFsdWUgZHJvcHMgdGhlIHdob2xlIGRlY2xhcmF0aW9uLCBsZWF2aW5nIHRoaXMgb25lXG4gICAgLy8gc3RhbmRpbmcpOyBgc2FmZSBjZW50ZXJgIHNlY29uZCBmb3IgZXZlcnlvbmUgZWxzZS4gV2l0aG91dCBgc2FmZWAsIGFcbiAgICAvLyBncmlkIFdJREVSIHRoYW4gX19zY3JvbGwgLSBMYXN0IFllYXIncyB0d2VsdmUgbW9udGggY29sdW1ucyBpcyB0aGVcbiAgICAvLyByZWxpYWJsZSB3YXkgdG8gaGl0IHRoaXMgLSBjZW50ZXJzIGJ5IHB1c2hpbmcgdGhlIHNhbWUgb3ZlcmZsb3cgb2ZmXG4gICAgLy8gYm90aCBlZGdlcywgYW5kIHVuc2Nyb2xsZWQgdGhhdCBjbGlwcyB0aGUgcm93LWxhYmVsIGNvbHVtbiBvbiB0aGUgbGVmdFxuICAgIC8vIGFuZCBhIHRyYWlsaW5nIG1vbnRoIG9uIHRoZSByaWdodCByYXRoZXIgdGhhbiBzaG93aW5nIGVpdGhlciBpbiBmdWxsLlxuICAgIC8vIGBzYWZlYCBmYWxscyBiYWNrIHRvIHN0YXJ0IGFsaWdubWVudCBvbmx5IG9uY2UgdGhlIGNvbnRlbnQgbm8gbG9uZ2VyXG4gICAgLy8gZml0cywgc28gYSB3aWRlIGdyaWQgc3RpbGwgb3BlbnMgZmx1c2ggbGVmdCB3aXRoIG5vdGhpbmcgY3V0IG9mZiwgYW5kIGFcbiAgICAvLyBuYXJyb3cgb25lIHN0aWxsIGNlbnRlcnMuXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzYWZlIGNlbnRlcjtcbiAgICAvLyBTaHJpbmstd3JhcHMgdGhlIHRyYWNrcyBpbnNpZGUgdGhlIHNjcm9sbGVyIGluc3RlYWQgb2Ygc3RyZXRjaGluZyB0aGVtXG4gICAgLy8gdG8gZmlsbCBpdCAtIHNlZSB0aGUganVzdGlmeS1jb250ZW50IG5vdGUgYWJvdmUgZm9yIHdoeSB0aGF0IG1hdHRlcnMuXG4gICAgd2lkdGg6IC1tb3otbWF4LWNvbnRlbnQ7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIC8vIEZhbGxzIGJhY2sgdG8gZmlsbGluZyB0aGUgc2Nyb2xsZXIgd2hlcmUgbWF4LWNvbnRlbnQgaXMgdW5zdXBwb3J0ZWQsXG4gICAgLy8gd2hpY2ggc3RpbGwgbGF5cyB0aGUgY2VsbHMgb3V0IGNvcnJlY3RseSAtIG9ubHkgdGhlIGNlbnRlcmluZyBkb2VzIG5vdFxuICAgIC8vIGFwcGx5LCBzaW5jZSB0aGVyZSBpcyBubyBsb25nZXIgYW55IGxlZnRvdmVyIHdpZHRoIHRvIGNlbnRlciB3aXRoaW4uXG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIGVtcHR5IGNlbGwgb3ZlciB0aGUgcm93LWxhYmVsIGNvbHVtbi4gRGVjbGFyZWQgc28gdGhlIGZsYXQgaXRlbSBsaXN0XG4gIC8vIGhhcyBzb21ldGhpbmcgdG8gaGFuZyBhIGNsYXNzIG9uOyBpdCBoYXMgbm8gYXBwZWFyYW5jZSBvZiBpdHMgb3duLlxuICAmX19jb3JuZXIge1xuICAgIGhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gU3BlYyBjYWxscyB0aGUgZmFtaWx5ICdOdWRpc3RhIFRSSUFMJyAtIHRoYXQncyBGaWdtYSdzIG5hbWUgZm9yIGEgdHJpYWxcbiAgLy8gbGljZW5zZSBvZiB0aGUgc2FtZSB3ZWJmb250IHRoaXMgd2hvbGUgY2FyZCBhbHJlYWR5IHJlbmRlcnMgaW5cbiAgLy8gKCdOdWRpc3RhJywgZGVjbGFyZWQgb24gLnByb2dyYW1zLWNvbXBsZXRpb24gYWJvdmUpOyBub3RoaW5nIGhlcmUgaXMgb24gYVxuICAvLyBkaWZmZXJlbnQgZmFtaWx5LiBTcGVjIGFsc28gYXNrcyBmb3IgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiwgd2hpY2ggaGFzIG5vXG4gIC8vIGVmZmVjdCBpbiBhbnkgYnJvd3NlciB0aGlzIGFwcCBzdXBwb3J0cyBhbmQgaXMgbGVmdCBvZmYuXG4gICZfX2hlYWQtY2VsbCxcbiAgJl9fcm93LWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgLy8gQ2VudGVyZWQgb3ZlciBlYWNoIGZpeGVkLXdpZHRoIGRheS9tb250aCBjb2x1bW4sIHVubGlrZSB0aGUgcm93IGxhYmVscydcbiAgLy8gcmlnaHQgYWxpZ25tZW50IGJlbG93IC0gdGhlIHR3byBzaXQgaW4gZGlmZmVyZW50IHRyYWNrcyAodGhlIGhlYWQgcm93IHZzLlxuICAvLyB0aGUgYXV0byBsYWJlbCBjb2x1bW4pIHNvIHRoZXJlJ3Mgbm8gc2hhcmVkIGVkZ2UgZm9yIHRoZW0gdG8gYWxpZ25cbiAgLy8gYWdhaW5zdCBlYWNoIG90aGVyIG9uLlxuICAmX19oZWFkLWNlbGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFJpZ2h0LWFsaWduZWQgYWdhaW5zdCB0aGUgZ3JpZCdzIG93biBnYXAsIGFuZCBtdXN0IG5vdCB3cmFwIChcIk1heSA0LTEwXCJcbiAgLy8gYW5kIFwiV2VlayAxXCIgYXJlIHRoZSB0d28gc2hhcGVzKSBzbyBpdCBzdGF5cyBhIGNvbnNpc3RlbnQgZGlzdGFuY2UgZnJvbVxuICAvLyB0aGUgZmlyc3QgY29sdW1uIG9mIGNlbGxzLlxuICAmX19yb3ctbGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyBUaGUgc3F1YXJlcy4gRml4ZWQgMzJ4MzIgLSBib3gtc2l6aW5nIGJ5IGhhbmQsIHNpbmNlIHRoZXJlIGlzIG5vIGdsb2JhbFxuICAvLyBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQuXG4gIC8vXG4gIC8vIFNwZWMgY2FsbHMgdGhlIGxhYmVsIGZvbnQgJ0ludGVyJywgd2VpZ2h0IDYwMCAtIGxvYWRlZCBhcyBhIEdvb2dsZSBGb250XG4gIC8vIGluIGluZGV4Lmh0bWwgKHRoZSBhcHAgc2hlbGwgZXZlcnkgcm91dGUgc2hhcmVzKSByYXRoZXIgdGhhbiBzZWxmLWhvc3RlZFxuICAvLyBsaWtlIE51ZGlzdGEsIHNpbmNlIHRoZXJlIGFyZSBubyBJbnRlciBmb250IGZpbGVzIGluIHRoaXMgcmVwby4gc2Fucy1zZXJpZlxuICAvLyBzdGF5cyBhcyB0aGUgZmFsbGJhY2sgZm9yIHRoZSBtb21lbnQgYmVmb3JlIHRoYXQgc3R5bGVzaGVldCByZXF1ZXN0XG4gIC8vIHJlc29sdmVzLiBTcGVjJ3MgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiBhbmQgXCJsZXR0ZXItc3BhY2luZzogMCVcIiBjYXJyeSBub1xuICAvLyBlZmZlY3QvYXJlIHRoZSBkZWZhdWx0IHJlc3BlY3RpdmVseSBhbmQgYXJlIGxlZnQgb2ZmLCBzYW1lIHRyZWF0bWVudCBhc1xuICAvLyB0aGUgcm93LWxhYmVsL2hlYWQtY2VsbCBydWxlIGFib3ZlLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAkcGdjLXJhZGl1cztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vIFNwZWMncyBsYWJlbCBjb2xvciBpcyAjRUZFRkYxIC0gdGhlIHNhbWUgdmFsdWUgYXMgJHBnYy1ub25lIGJlbG93LCByZXVzZWRcbiAgICAvLyByYXRoZXIgdGhhbiByZXN0YXRlZC4gQ29pbmNpZGVuY2Ugb3Igbm90LCBpdCBtZWFucyAtLW5vbmUgKHdoaWNoIGhhcyBub1xuICAgIC8vIGxhYmVsIC0gc2VlIGJlbG93KSBuZXZlciBhY3R1YWxseSByZW5kZXJzIHRoaXMgY29sb3IsIGFuZCAtLXplcm8gcmVuZGVyc1xuICAgIC8vIGl0IGF0IGxvdyBjb250cmFzdCBhZ2FpbnN0ICRwZ2MtemVybzsgYm90aCBhcmUgdGhlIGRlc2lnbidzIGNhbGwsIG5vdCBhXG4gICAgLy8gYnVnIGhlcmUuXG4gICAgY29sb3I6ICRwZ2Mtbm9uZTtcbiAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBoZWlnaHQ6ICRwZ2MtY2VsbC1oO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIC8vIC0tbm9uZSBpcyB0aGUgb25seSBzdGF0ZSB3aXRoIG5vIGxhYmVsIGF0IGFsbCAoX2NvbXBsZXRpb25DZWxsIHJldHVybnMgbm9cbiAgICAvLyBgbGFiZWxgIGZvciBpdCkuXG4gICAgJi0tbm9uZSB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2Mtbm9uZTsgfVxuICAgICYtLXplcm8geyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLXplcm87IH1cbiAgICAmLS1sMSAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sMTsgfVxuICAgICYtLWwyICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwyOyB9XG4gICAgJi0tbDMgICB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDM7IH1cbiAgICAmLS1sNCAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sNDsgfVxuICAgIC8vIEEgZGF5L3dlZWsgdGhlIGNvbnRyb2xsZXIgYnVpbHQgb3V0c2lkZSB0aGUgcmVxdWVzdGVkIHJhbmdlICh0aGUgZ3JpZFxuICAgIC8vIGlzbid0IHNuYXBwZWQgdG8gd2hvbGUgYnVja2V0cyAtIHNlZSBfcmVuZGVyUHJvZ3JhbUNvbXBsZXRpb24ncyBoZWFkZXIpLlxuICAgIC8vIE1hdGNoZXMgLnByb2dyYW1zLWNvbXBsZXRpb24ncyBvd24gYmFja2dyb3VuZCBzbyB0aGUgc3F1YXJlIGRpc2FwcGVhcnNcbiAgICAvLyBpbnRvIHRoZSBjYXJkIHJhdGhlciB0aGFuIHJlYWRpbmcgYXMgXCJubyBwcm9ncmFtXCIgZ3JleSwgd2hpY2ggd291bGRcbiAgICAvLyBvdmVyc3RhdGUgd2hhdCB0aGUgQVBJIHdhcyBhc2tlZC4gQWxzbyBjYXJyaWVzIG5vIGxhYmVsLCBzYW1lIGFzXG4gICAgLy8gLS1ub25lLlxuICAgICYtLW91dHNpZGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIH1cblxuICAvLyAtLS0tIHRoZSBsZWdlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gcGlucyB0aGlzIHRvIHRoZSBib3R0b20gb2YgdGhlIGNhcmQgLSBzZWUgdGhlIGJsb2NrJ3NcbiAgLy8gZmxleC1jb2x1bW4gbm90ZSBhYm92ZS4gd3JhcCBiZWNhdXNlIHRoZSB0d28gZG90IGl0ZW1zIGZhbGwgdG8gYSBzZWNvbmRcbiAgLy8gbGluZSBpbiBhIGhhbGYtd2lkdGggY2FyZCBhbmQgbXVzdCBub3QgcHVzaCB0aGUgcmFtcCBvZmYgdGhlIGVkZ2UuXG4gIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyIGNlbnRlcnMgdGhlIHJvdyBpdHNlbGYgaW4gdGhlIGNhcmQ7IHdyYXBwZWQgaXRlbXNcbiAgLy8gc3RpbGwgY2VudGVyIGFzIHRoZWlyIG93biBsaW5lIHJhdGhlciB0aGFuIHN0cmV0Y2hpbmcgZWRnZSB0byBlZGdlLlxuICAmX19sZWdlbmQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gIH1cblxuICAmX19sZWdlbmQtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAvLyBFeHRyYSBicmVhdGhpbmcgcm9vbSBiZXR3ZWVuIFwiTm90aGluZyBDb21wbGV0ZWRcIiBhbmQgXCJObyBQcm9ncmFtXG4gIC8vIFNjaGVkdWxlZFwiIHNwZWNpZmljYWxseSwgb24gdG9wIG9mIF9fbGVnZW5kJ3Mgb3duIDhweCByb3cgZ2FwIC0gdGhlIHNhbWVcbiAgLy8gc3RhY2tlZC1zcGFjaW5nIHBhdHRlcm4gJl9fbGVnZW5kLXJ1bGUgdXNlcyB0byBzZXQgdGhlIHJhbXAgYXBhcnQgZnJvbVxuICAvLyB0aGVzZSB0d28uIFRoZSBhZGphY2VudC1zaWJsaW5nIHNlbGVjdG9yIChyYXRoZXIgdGhhbiBhIG1vZGlmaWVyIGNsYXNzKVxuICAvLyBpcyB3aGF0IGtlZXBzIHRoaXMgb2ZmIHRoZSBydWxlLXRvLWZpcnN0LWl0ZW0gZ2FwLCBzaW5jZSBvbmx5IGFcbiAgLy8gbGVnZW5kLWl0ZW0gZm9sbG93aW5nIGFub3RoZXIgbGVnZW5kLWl0ZW0gaXMgb25lIG9mIHRoZXNlIHR3by5cbiAgJl9fbGVnZW5kLWl0ZW0gKyAmX19sZWdlbmQtaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgfVxuXG4gIC8vICdOdWRpc3RhIFRSSUFMJyBpbiBzcGVjLCBzYW1lIGRpdmVyZ2VuY2UgYXMgX19oZWFkLWNlbGwvX19yb3ctbGFiZWwgYWJvdmVcbiAgLy8gKGluaGVyaXRlZCBmcm9tIC5wcm9ncmFtcy1jb21wbGV0aW9uJ3Mgb3duICdOdWRpc3RhJyByYXRoZXIgdGhhbiByZXN0YXRlZFxuICAvLyBoZXJlKTsgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiBhbmQgXCJsZXR0ZXItc3BhY2luZzogMCVcIiBnZXQgdGhlIHNhbWVcbiAgLy8gbm8tZWZmZWN0L2RlZmF1bHQgdHJlYXRtZW50IHRvby5cbiAgJl9fbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgLy8gVGhlIGZvdXIgc3RlcHMgcmVhZCBhcyBvbmUgY29udGludW91cyBzY2FsZSwgc28gdGhleSBuZWVkIHRoZWlyIG93biB0aWdodGVyXG4gIC8vIGdhcCB0aGFuIHRoZSBsZWdlbmQgcm93J3MgOHB4IC0gaGVuY2UgYSB3cmFwcGVyIHJhdGhlciB0aGFuIGZvdXIgYmFyZVxuICAvLyBzaWJsaW5ncyBvZiBcImxlc3NcIiBhbmQgXCJtb3JlXCIuXG4gICZfX3JhbXAge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogMnB4O1xuICB9XG5cbiAgLy8gVGhlIGZvdXIgcmFtcCBzdGVwcyBiZXR3ZWVuIFwibGVzc1wiIGFuZCBcIm1vcmVcIi4gU3RyYWlnaHQtZWRnZWQgcmF0aGVyIHRoYW5cbiAgLy8gdGhlIGNlbGxzJyByb3VuZGVkIHNxdWFyZXMsIHNvIHRoZSByYW1wIHJlYWRzIGFzIG9uZSBjb250aW51b3VzIHNjYWxlIC1cbiAgLy8gb25seSB0aGUgb3V0ZXIgdHdvIGNvcm5lcnMgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IHN0ZXAgcm91bmQgb2ZmLCBjYXBwaW5nXG4gIC8vIHRoZSBiYXIgdGhlIHdheSB0aGUgY2VsbHMnIG93biByYWRpdXMgY2FwcyBhIHNpbmdsZSBzcXVhcmUuXG4gICZfX3N3YXRjaCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDI2cHg7XG5cbiAgICAmLS1sMSB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDE7IGJvcmRlci1yYWRpdXM6IDhweCAwIDAgOHB4OyB9XG4gICAgJi0tbDIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwyOyB9XG4gICAgJi0tbDMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwzOyB9XG4gICAgJi0tbDQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWw0OyBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsgfVxuICB9XG5cbiAgLy8gU2VwYXJhdGVzIHRoZSByYW1wIGZyb20gdGhlIHR3byBuYW1lZCBzdGF0ZXMsIHdoaWNoIGFyZSBub3QgcGFydCBvZiBpdC5cbiAgJl9fbGVnZW5kLXJ1bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICB3aWR0aDogMXB4O1xuICB9XG5cbiAgLy8gVmVydGljYWwgY2VudGVyaW5nIGFnYWluc3QgdGhlIHJlc3Qgb2YgdGhlIGxlZ2VuZCByb3cgY29tZXMgZm9yIGZyZWUgZnJvbVxuICAvLyBfX2xlZ2VuZC1pdGVtJ3Mgb3duIGFsaWduLWl0ZW1zOiBjZW50ZXIgLSB0aGlzIG9ubHkgbmVlZHMgdGhlIHNpemUuXG4gICZfX2xlZ2VuZC1kb3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuXG4gICAgJi0temVybyB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtemVybzsgfVxuICAgICYtLW5vbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLW5vbmU7IH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIE9wdC1pbiByZXN0eWxlIG9mIGZ1c2lvbkRyb3BEb3duUGlsbCB0byBtYXRjaCBmdXNpb25EYXRlUmFuZ2VTZWxlY3QuXG5cbiAgIFRoZSBkaXJlY3RpdmUgYW5kIGl0cyB0ZW1wbGF0ZSBhcmUgc2hhcmVkIGJ5IHRlc3RhcmNoaXZlcywgdGVhbXJlcG9ydCwgbm90ZXNcbiAgIGFuZCB0aGUgcHJvZ3JhbS10eXBlIGZpbHRlciwgc28gbm9uZSBvZiB0aGlzIG1heSBsZWFrLiBJdCBpcyBzY29wZWQgdG8gYVxuICAgYHNlbGVjdC1waWxsYCBjbGFzcyBwdXQgb24gdGhlIERJUkVDVElWRSBIT1NUIGVsZW1lbnQgKHRoZSBwaWxsJ3Mgb3duXG4gICBjbGFzcy1jb2xvciBhdHRyaWJ1dGUgbGFuZHMgb24gLnRyaWdnZXIsIHdoaWNoIGlzIHRvbyBkZWVwIHRvIHJlYWNoIHRoZVxuICAgc3VibWVudSBmcm9tKS4gQWRkIHRoZSBjbGFzcywgZHJvcCBjbGFzcy1jb2xvciwgYW5kIHRoZSBpbnN0YW5jZSBvcHRzIGluOlxuXG4gICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtcGlsbFwiIGZ1c2lvbi1kcm9wLWRvd24tcGlsbCAuLi4+XG5cbiAgIFRoZSBsZWdhY3kgcnVsZXMgbGl2ZSBpbiBzcmMvc2Fzcy9fcmVwb3J0cy5zY3NzLCBpbXBvcnRlZCBieSBhIERJRkZFUkVOVFxuICAgcm9vdCBzaGVldCAoZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcykuIExvYWQgb3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICBzaGVldHMgaXMgbm90IGd1YXJhbnRlZWQgaGVyZSwgc28gZXZlcnkgc2VsZWN0b3IgYmVsb3cgY2FycmllcyB0aGVcbiAgIGAuc2VsZWN0LXBpbGxgIHByZWZpeCBwdXJlbHkgdG8gb3V0cmFuayBpdHMgbGVnYWN5IGNvdW50ZXJwYXJ0IG9uXG4gICBzcGVjaWZpY2l0eSByYXRoZXIgdGhhbiBvbiBzb3VyY2Ugb3JkZXIuXG5cbiAgIEljb25zIGFyZSBkYXRhLVVSSSBiYWNrZ3JvdW5kcywgbm90IGlubGluZSBTVkcsIGJlY2F1c2UgdGhlIHNoYXJlZCB0ZW1wbGF0ZVxuICAgaGFzIG5vIGljb24gc2xvdHMgYW5kIGFkZGluZyB0aGVtIHdvdWxkIGNoYW5nZSBldmVyeSBvdGhlciBjb25zdW1lci4gQVxuICAgYmFja2dyb3VuZCBpbWFnZSBjYW5ub3QgaW5oZXJpdCBjdXJyZW50Q29sb3IsIHNvIHRoZSB0aHJlZSBnbHlwaCBjb2xvdXJzXG4gICBiZWxvdyBhcmUgYmFrZWQgaW4gLSBrZWVwIHRoZW0gaW4gc3RlcCB3aXRoIHRoZSAkc3AtKiB0b2tlbnMuXG5cbiAgIE5vdCBjaGFuZ2VkOiB0aGUgcGlsbCBzdGlsbCBvcGVucyBvbiBtb3VzZWVudGVyIChEcm9wRG93blBpbGwuanMgYmluZHMgaXQpLFxuICAgd2hlcmUgdGhlIGRhdGUgc2VsZWN0b3Igb3BlbnMgb24gY2xpY2suIFRoYXQgaXMgZGlyZWN0aXZlIGJlaGF2aW91ciBzaGFyZWRcbiAgIHdpdGggZm91ciBvdGhlciBwYWdlcywgbm90IHN0eWxpbmcuICovXG5cblxuLy8gTWF0Y2hlcyAkZHJzLXRyaWdnZXItaGVpZ2h0IC8gJGRycy10cmlnZ2VyLWdhcCBpbiBfZGF0ZV9yYW5nZV9zZWxlY3Quc2Nzcy5cbiRzcC10cmlnZ2VyLWhlaWdodDogNDBweDtcbiRzcC10cmlnZ2VyLWdhcDogICAgNnB4O1xuLy8gRml4ZWQsIGFuZCB0aGUgbWVudSBiZWxvdyBpcyBsb2NrZWQgdG8gdGhlIHNhbWUgbnVtYmVyIHNvIHRoZSB0d28gZWRnZXMgbGluZVxuLy8gdXAuIFRoZSB0cmlnZ2VyIGxlYXZlcyAyMDUgLSAyIGJvcmRlciAtIDE4IHBhZGRpbmcgLSAxNiBmb2xkZXIgLSAxNiBjYXJldCAtXG4vLyAxMiBnYXBzID0gMTQxcHggZm9yIHRoZSBsYWJlbCwgYW5kIHRoZSBtZW51IHJvd3MgbGVhdmUgMjA1IC0gMiAtIDI4IHBhZGRpbmdcbi8vIC0gOCBnYXAgLSAxNiBjaGVjayA9IDE1MXB4LiBUaGUgbG9uZ2VzdCBsYWJlbCAoXCJCb2R5IE1BUDogTUUgU2NyZWVuXCIpIHNpdHNcbi8vIHJpZ2h0IGF0IHRoYXQgZWRnZSBhbmQgd2lsbCBlbGxpcHNpcyByYXRoZXIgdGhhbiB3aWRlbiBlaXRoZXIgYm94LlxuJHNwLXdpZHRoOiAgICAgICAgICAyMDVweDtcblxuJHNwLXRyaWdnZXItc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDEwLCAxMywgMTgsIC4wNSk7XG4kc3AtcGFuZWwtc2hhZG93OiAgIDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAuMDgpLFxuICAgICAgICAgICAgICAgICAgICAwIDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIC4wMyk7XG5cbi8vIDE2cHggZ2x5cGhzLiBgI2AgbXVzdCBiZSB3cml0dGVuICUyMyBpbnNpZGUgYSBkYXRhIFVSSSwgYW5kIHRoZSBhdHRyaWJ1dGVcbi8vIHF1b3RlcyBhcmUgc2luZ2xlIHNvIHRoZSB3aG9sZSB1cmwoKSBjYW4gYmUgZG91YmxlLXF1b3RlZC5cbi8vXG4vLyBUaGUgZm9sZGVyIGlzIGEgZmlsZSByYXRoZXIgdGhhbiBhIGRhdGEgVVJJIC0gc2VlIHRoZSB0cmlnZ2VyIHJ1bGUgYmVsb3cuXG4kc3AtaWNvbi1jYXJldDogIFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZD0nTTQgNkw4IDEwTDEyIDYnIHN0cm9rZT0nJTIzNmQ2ZDZkJyBzdHJva2Utd2lkdGg9JzEuNScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0Mvc3ZnJTNFXCI7XG4kc3AtaWNvbi1jaGVjazogIFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZD0nTTEzLjMzIDRMNiAxMS4zM0wyLjY3IDgnIHN0cm9rZT0nJTIzOTc2OGViJyBzdHJva2Utd2lkdGg9JzEuNScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0Mvc3ZnJTNFXCI7XG5cbi5zZWxlY3QtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAvKiAtLSB0cmlnZ2VyIC0tICovXG5cbiAgLmRyb3Bkb3duLXdyYXBwZXIgLnRyaWdnZXIucGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRzcC10cmlnZ2VyLWdhcDtcbiAgICAvLyBObyBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQsIHNvIHRoZSAxcHggYm9yZGVyIGFuZCB0aGUgcGFkZGluZyBhcmVcbiAgICAvLyBmb2xkZWQgaW50byB0aGUgNDBweCBieSBoYW5kLlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAkc3AtdHJpZ2dlci1oZWlnaHQ7XG4gICAgd2lkdGg6ICRzcC13aWR0aDtcbiAgICAvLyBMZWdhY3kgLnBpbGwgaXMgYSAyNHB4LXJhZGl1cyBsb3plbmdlIHdpdGggMjhweCBvZiBzaWRlIHBhZGRpbmcgYW5kIGFcbiAgICAvLyAycHggYWNjZW50IGJvcmRlcjsgYWxsIHRocmVlIGdvLlxuICAgIHBhZGRpbmc6IDAgOHB4IDAgMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6ICRzcC10cmlnZ2VyLXNoYWRvdztcbiAgICAvLyAudHJpZ2dlciBzZXRzIGxpbmUtaGVpZ2h0IDQ3cHggdG8gY2VudHJlIHRleHQgaW4gdGhlIG9sZCBsb3plbmdlLiBUaGVcbiAgICAvLyBmbGV4IGJveCBjZW50cmVzIGl0IG5vdywgc28gdGhpcyBoYXMgdG8gY29tZSBiYWNrIHRvIGEgcmVhbCB2YWx1ZSBvciB0aGVcbiAgICAvLyA0MHB4IGJveCBjYW5ub3QgY29udGFpbiBpdC5cbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIExlYWRpbmcgZm9sZGVyIGdseXBoLiBBcyBhIGZsZXggaXRlbSBpdCBvcmRlcnMgYmVmb3JlIHRoZSBsYWJlbCBzcGFuLFxuICAgIC8vIHdoaWNoIGlzIHdoeSB0aGlzIGlzIDo6YmVmb3JlIGFuZCBub3QgYSBiYWNrZ3JvdW5kIG9uIHRoZSB0cmlnZ2VyLlxuICAgIC8vXG4gICAgLy8gUGF0aCBpcyByZWxhdGl2ZSB0byBUSElTIHBhcnRpYWwsIG5vdCB0byB0aGUgZW50cnkgc2hlZXQgLVxuICAgIC8vIHJlc29sdmUtdXJsLWxvYWRlciAod2VicGFjay5jb25maWcuKi5qczoxMzcpIHJld3JpdGVzIGl0IGZyb20gaGVyZS4gVGhhdFxuICAgIC8vIG1hdGNoZXMgX3Byb2ZpbGVfYXRobGV0ZS5zY3NzOjIyMDE7IHRoZSBgLi4vaW1hZ2VzL2AgaW4gX3RlYW0tdGwuc2NzczoyNjVcbiAgICAvLyBpcyB0aGUgYnJva2VuIHNwZWxsaW5nLCBzaW5jZSBzcmMvc2Fzcy9pbWFnZXMvIGRvZXMgbm90IGV4aXN0LlxuICAgIC8vXG4gICAgLy8gVGhlIGFzc2V0IGlzIDMyeDMyIGZvciBhIDE2cHggYm94LCBzbyBpdCBzdGF5cyBjcmlzcCBvbiAyeCBkaXNwbGF5cyAtXG4gICAgLy8gaGVuY2UgdGhlIGV4cGxpY2l0IGJhY2tncm91bmQtc2l6ZSByYXRoZXIgdGhhbiBgY29udGFpbmAuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9wcm9ncmVzc19wYWdlX2ZvbGRlci5wbmcnKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAvLyBUYWtlcyB3aGF0IHRoZSB0d28gZ2x5cGhzIGxlYXZlOyBjbGlwcyByYXRoZXIgdGhhbiB3aWRlbmluZyB0aGUgY2hpcC5cbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgLy8gaC1jb21wYWN0LXRleHQgc2hpcHMgMTNweC9ib2xkL3VwcGVyY2FzZSB3aXRoICswLjRweCB0cmFja2luZy5cbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLS4ycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICAgIC8vIE51ZGlzdGEgc2l0cyBoaWdoIGluIGl0cyBib3ggLSBzYW1lIG9wdGljYWwgbnVkZ2UgYXMgdGhlIGRhdGUgdHJpZ2dlci5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBpY29uLWZvbnQgY2FyZXQgaXMgcmVwbGFjZWQgYnkgdGhlIDo6YWZ0ZXIgY2hldnJvbiBzbyBib3RoIGNvbnRyb2xzXG4gICAgLy8gZHJhdyB0aGUgc2FtZSBnbHlwaC5cbiAgICAuaWNvbi1jYXJldC1kcm9wZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIjeyRzcC1pY29uLWNhcmV0fVwiKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIG1lbnUgLS0gKi9cblxuICAuZHJvcGRvd24td3JhcHBlciAuc3VibWVudS13cmFwcGVyIHtcbiAgICAvLyB0aW55LXByb3NlIHNldHMgMTNweC9ib2xkL3VwcGVyY2FzZSBvbiB0aGUgd3JhcHBlciBhbmQgdGhlIGl0ZW1zIGluaGVyaXRcbiAgICAvLyBpdDsgcmVzZXQgaGVyZSBzbyBlYWNoIHJ1bGUgYmVsb3cgaXMgYSBwbGFpbiB2YWx1ZSwgbm90IGFuIG92ZXJyaWRlLlxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuXG4gICAgPiAuc3VibWVudS1jb250ZW50ID4gLnN1Ym1lbnUge1xuICAgICAgLy8gN3B4IGxlZ2FjeS4gNHB4IG1hdGNoZXMgdGhlIGRhdGUgcGFuZWwncyB0b3A6IGNhbGMoMTAwJSArIDRweCkuXG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAvLyBTYW1lIHdpZHRoIGFzIHRoZSB0cmlnZ2VyLCBib3JkZXJzIGZvbGRlZCBpbiBzbyB0aGUgdHdvIGVkZ2VzIGFsaWduLlxuICAgICAgLy8gLnN1Ym1lbnUtY29udGVudCBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgYW5kIHNocmluay10by1maXQsIHNvIHRoaXMgaXNcbiAgICAgIC8vIHdoYXQgYWN0dWFsbHkgc2l6ZXMgdGhlIHBhbmVsLlxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAkc3Atd2lkdGg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJveC1zaGFkb3c6ICRzcC1wYW5lbC1zaGFkb3c7XG4gICAgICAvLyBLZWVwcyB0aGUgZmlyc3QgYW5kIGxhc3Qgcm93cyBpbnNpZGUgdGhlIDhweCBjb3JuZXJzLlxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc3VibWVudSB1bCB7XG4gICAgICBwYWRkaW5nOiA2cHggMDtcblxuICAgICAgKyB1bCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJtZW51IGxpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICAvLyBMZWdhY3kgZmxvb3JzIHRoaXMgYXQgMjIzcHgsIHdoaWNoIHdvdWxkIHB1c2ggdGhlIHJvdyBwYXN0IHRoZSAyMDVweFxuICAgICAgLy8gcGFuZWwgYW5kIGRlZmVhdCB0aGUgd2lkdGggYWJvdmUuXG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAvLyAyMXB4IGxlZ2FjeS1kZXJpdmVkIGxlZnQgaW5zZXQsIHB1bGxlZCBpbiB0byAxMnB4LlxuICAgICAgcGFkZGluZzogMTBweCAxNnB4IDEwcHggMTJweDtcbiAgICAgIC8vIFBlciB0aGUgRmlnbWEgdHlwZSBzcGVjLiBIZWF2aWVyIGFuZCBsYXJnZXIgdGhhbiB0aGUgMTRweC81MDAgdGhlIGRhdGVcbiAgICAgIC8vIHNlbGVjdG9yJ3MgcHJlc2V0IHJhaWwgdXNlcyAtIHRoZSB0d28gbGlzdHMgZG8gbm90IG1hdGNoIG9uIHR5cGUuXG4gICAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICBjb2xvcjogIzAwMDAwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC8vIExlZ2FjeSBob3ZlciBpcyAjREVERkRFLCB3aGljaCByZWFkcyBhcyBhIHByZXNzZWQgc3RhdGUgbmV4dCB0byB0aGVcbiAgICAgICAgLy8gd2hpdGUgcGFuZWwuXG4gICAgICAgIGJhY2tncm91bmQ6ICRyb3ctaG92ZXI7XG4gICAgICB9XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAvLyBTZWxlY3RlZCByb3cuIFRoZSBpcy1zZWxlY3RlZCBjbGFzcyBpcyBzZXQgZm9yIGV2ZXJ5IGNvbnN1bWVyIG9mIHRoZVxuICAgICAgLy8gc2hhcmVkIHRlbXBsYXRlLCBidXQgb25seSB0aGlzIHZhcmlhbnQgZHJhd3MgYW55dGhpbmcgZm9yIGl0LiBFdmVyeVxuICAgICAgLy8gcm93IGlzIGFscmVhZHkgIzAwMCBoZXJlLCBzbyB0aGUgY2hlY2sgbWFyayBhbG9uZSBjYXJyaWVzIHRoZSBzdGF0ZS5cbiAgICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIjeyRzcC1pY29uLWNoZWNrfVwiKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBEYXRlIHJhbmdlIHNlbGVjdG9yIGZvciB0aGUgcHJvZ3Jlc3MgcmVwb3J0IHBhZ2UuXG5cbiAgIFBvcnRlZCBmcm9tIHRoZSBhcHAncyBkYXRlLWZpbHRlciAvIGRhdGUtZmlsdGVyLWRyb3Bkb3duIC8gY2FsZW5kYXItZ3JpZC5cbiAgIFRob3NlIGFyZSBUYWlsd2luZCwgc28gdGhlIHZhbHVlcyBiZWxvdyBhcmUgdGhlIGRlLUBhcHBseSdkIHRva2Vucy4gVGhlIGFwcFxuICAgb25seSBldmVyIHJlbmRlcnMgb25lIG1vbnRoOyB0aGUgdHdvLW1vbnRoIHZpZXcgaGVyZSBpcyBuZXcuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBhdXRvcHJlZml4ZXIgKG5vIGR2aCwgbm8gdW5wcmVmaXhlZC1vbmx5IHByb3BzKSxcbiAgIGFuZCByZXNwb25kKCkgb25seSBrbm93cyA3NjhweCAvIDQ4MHB4LiBUaGUgc2luZ2xlLW1vbnRoIGNvbGxhcHNlIGJlbG93IGlzXG4gICBhIHByb3BlcnR5IG9mIHRoaXMgcGFuZWwncyB3aWR0aCwgbm90IGEgcHJvamVjdCB0aWVyLCBzbyBpdCBpcyBhIGJhcmVcbiAgIG1lZGlhIHF1ZXJ5LiAqL1xuXG5cbi8vIEZpeGVkIGJveCAtIGl0IG11c3Qgbm90IHJlc2l6ZSBhcyB0aGUgbGFiZWwgY2hhbmdlcy4gQSBmdWxsIGN1c3RvbSByYW5nZVxuLy8gKFwiMDEuMjMuMjUgLSAwMi4yMy4yNVwiKSBuZWVkcyB+MTIwcHgsIGFuZCB0aGUgY2hyb21lIGFyb3VuZCB0aGUgbGFiZWwgaXNcbi8vIHNpemVkIHNvIDE5OHB4IGNsZWFycyB0aGF0OiAxOTggLSAyIGJvcmRlciAtIDE4IHBhZGRpbmcgLSAxNiBpY29uIC0gMTZcbi8vIGNhcmV0IC0gMTIgZ2FwcyA9IDEzNHB4IGZvciB0aGUgbGFiZWwuXG4kZHJzLXRyaWdnZXItd2lkdGg6ICAgICAxOThweDtcbiRkcnMtdHJpZ2dlci1oZWlnaHQ6ICAgIDQwcHg7XG4kZHJzLXRyaWdnZXItZ2FwOiAgICAgICA2cHg7XG4kZHJzLXJhaWwtd2lkdGg6ICAgICAgICAyMDBweDtcblxuLy8gVGhlIHR3by1tb250aCBjYWxlbmRhciBibG9jay4gVGhlIG1vbnRocyBkaXZpZGUgdGhlIHdpZHRoIGJldHdlZW4gdGhlbSBhbmRcbi8vIHRoZSBzaXggd2VlayByb3dzIGRpdmlkZSB0aGUgbGVmdG92ZXIgaGVpZ2h0LCBzbyB0aGUgYmxvY2sgbGFuZHMgb24gdGhpc1xuLy8gc2l6ZSBleGFjdGx5IHdoYXRldmVyIHRoZSBoZWFkZXIgYW5kIGRheS1vZi13ZWVrIHJvdyBjb3N0LiBIZWlnaHQgaXMgd2hhdFxuLy8gc2V0cyB0aGUgcGFuZWwncyBvdmVyYWxsIDQ0MXB4IC0gdGhlIHdlZWsgcm93cyB0YWtlIHRoZSBkaWZmZXJlbmNlLCBzb1xuLy8gc2hyaW5raW5nIGl0IHRpZ2h0ZW5zIHRoZSBjYWxlbmRhciByYXRoZXIgdGhhbiB0aGUgc3Vycm91bmRpbmcgc3BhY2luZy5cbiRkcnMtbW9udGhzLXdpZHRoOiAgICAgIDY4MHB4O1xuJGRycy1tb250aHMtaGVpZ2h0OiAgICAgMzQwcHg7XG4kZHJzLW1vbnRoLWdhcDogICAgICAgICAyNHB4O1xuXG4kZHJzLWZpZWxkLXdpZHRoOiAgICAgICAzMTlweDtcbiRkcnMtZmllbGQtaGVpZ2h0OiAgICAgIDQ5cHg7XG4kZHJzLWZpZWxkLXJhZGl1czogICAgICA5cHg7XG4kZHJzLWZpZWxkLWdhcDogICAgICAgICA0cHg7XG4kZHJzLWZpZWxkLXBhZC15OiAgICAgICA4cHg7XG4kZHJzLWZpZWxkLXBhZC14OiAgICAgICAxMnB4O1xuJGRycy1maWVsZC12YWx1ZS1pbms6ICAgIzFkMWQyOTtcbiRkcnMtZmllbGQtbGFiZWwtaW5rOiAgICM3NDc0OGE7XG4vLyBEZWVwZXIgdGhhbiAkcHVycGxlLTUwMDsgb25seSB0aGUgZmllbGQgYmVpbmcgZWRpdGVkIHdlYXJzIGl0LlxuJGRycy1maWVsZC1hY3RpdmU6ICAgICAgIzUzNGFiNztcbiRkcnMtZmllbGQtYWN0aXZlLWJvcmRlcjogMS41cHg7XG4kZHJzLWRheS1zaXplOiAgICAgICAgICAzNnB4O1xuLy8gVmVydGljYWwgaW5zZXQgb2YgdGhlIHJhbmdlIGJhbmQgaW5zaWRlIGl0cyBjZWxsLiBUd28gYWRqYWNlbnQgcm93cyBlYWNoXG4vLyBjb250cmlidXRlIG9uZSwgZ2l2aW5nIHRoZSAycHggb2Ygd2hpdGUgdGhlIGRlc2lnbiBhc2tzIGZvciBiZXR3ZWVuIHdlZWtzLlxuJGRycy1iYW5kLWluc2V0OiAgICAgICAgMXB4O1xuJGRycy1kYXktcmFkaXVzOiAgICAgICAgNHB4O1xuJGRycy1tb250aC13aWR0aDogICAgICAgJGRycy1kYXktc2l6ZSAqIDc7XG4kZHJzLXN0YWNrOiAgICAgICAgICAgICA3NjhweDtcblxuJGRycy10cmlnZ2VyLXNoYWRvdzogICAgMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAuMDUpO1xuJGRycy1wYW5lbC1zaGFkb3c6ICAgICAgMCAxMnB4IDE2cHggLTRweCByZ2JhKDE2LCAyNCwgNDAsIC4wOCksXG4gICAgICAgICAgICAgICAgICAgICAgICAwIDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIC4wMyk7XG5cbi5kYXRlLXJhbmdlLXNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICZfX3RyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAkZHJzLXRyaWdnZXItZ2FwO1xuICAgIC8vIEZpeGVkIGJveDogdGhlIGxhYmVsIHN3YXBzIGJldHdlZW4gYSBwcmVzZXQgbmFtZSBhbmQgYSBkYXRlIHJhbmdlLCBhbmRcbiAgICAvLyB0aGUgY2hpcCBtdXN0IG5vdCByZXNpemUgdW5kZXIgaXQuIE5vIGJvcmRlci1ib3ggcmVzZXQgaW4gdGhpcyBidWlsZCxcbiAgICAvLyBzbyB0aGUgYm9yZGVyIGFuZCBwYWRkaW5nIGhhdmUgdG8gYmUgZm9sZGVkIGluIGxvY2FsbHkuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJGRycy10cmlnZ2VyLXdpZHRoO1xuICAgIGhlaWdodDogJGRycy10cmlnZ2VyLWhlaWdodDtcbiAgICBwYWRkaW5nOiAwIDhweCAwIDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAkZHJzLXRyaWdnZXItc2hhZG93O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRibGFjay00MDA7XG4gICAgfVxuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJpZ2dlci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX3RyaWdnZXItbGFiZWwge1xuICAgIC8vIFRha2VzIHdoYXRldmVyIHRoZSB0d28gaWNvbnMgbGVhdmUsIGFuZCBjbGlwcyByYXRoZXIgdGhhbiBwdXNoaW5nIHRoZVxuICAgIC8vIGNoaXAgd2lkZXIgd2hlbiB0aGUgdGV4dCBpcyBhIGxvbmcgcHJlc2V0IG5hbWUuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAvLyBTbGlnaHQgbmVnYXRpdmUgdHJhY2tpbmcsIGFzIG9uIHRoZSBhcHAncyBidXR0b25zLiBXb3J0aCB+NHB4IGFjcm9zcyBhXG4gICAgLy8gZnVsbCBkYXRlIHJhbmdlLCB3aGljaCBpcyBtb3N0IG9mIHRoaXMgbGFiZWwncyBoZWFkcm9vbSBhdCAxOThweC5cbiAgICBsZXR0ZXItc3BhY2luZzogLS4ycHg7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICAvLyBOdWRpc3RhIHNpdHMgaGlnaCBpbiBpdHMgYm94OyBudWRnZSB0aGUgbGFiZWwgdG8gb3B0aWNhbCBjZW50ZXIuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gIH1cblxuICAmX190cmlnZ2VyLWNhcmV0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cztcbiAgfVxuXG4gICZfX3RyaWdnZXIuaXMtb3BlbiAmX190cmlnZ2VyLWNhcmV0IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG5cbiAgJl9fcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA2MDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogJGRycy1wYW5lbC1zaGFkb3c7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8qIC0tIHByZXNldCByYWlsIC0tICovXG5cbiAgJl9fcHJlc2V0cyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6ICRkcnMtcmFpbC13aWR0aDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxuXG4gICZfX3ByZXNldCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBMYWJlbCBzaXRzIDVweCBmdXJ0aGVyIGluIHRoYW4gdGhlIGNoZWNrIG1hcmsncyBndXR0ZXIuXG4gICAgcGFkZGluZzogMTBweCAxNnB4IDEwcHggMjFweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRyb3ctaG92ZXI7XG4gICAgfVxuXG4gICAgLy8gU2FtZSB3ZWlnaHQgYXMgdGhlIHJlc3Q7IHRoZSBjaGVjayBtYXJrIGFuZCBpbmsgY29sb3VyIGNhcnJ5IHRoZSBzdGF0ZS5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3ByZXNldC1jaGVjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fcnVsZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICB9XG5cbiAgLyogLS0gY2FsZW5kYXIgc2lkZSAtLSAqL1xuXG4gIC8qIFBhbmVsIGhlaWdodCBpcyBlbWVyZ2VudCwgbm90IGhhcmQtY29kZWQ6IDE2ICsgNDkgKGZpZWxkcykgKyAxNiAoZ2FwKVxuICAgICArIDM0MCAobW9udGhzKSArIDIwID0gNDQxLiBTcGFjaW5nIGlzIGhlbGQgYXQgY29tZm9ydGFibGUgdmFsdWVzIGFuZCB0aGVcbiAgICAgY2FsZW5kYXIgYmxvY2sgYWJzb3JicyB0aGUgaGVpZ2h0IHRhcmdldCB2aWEgJGRycy1tb250aHMtaGVpZ2h0LiAqL1xuICAmX19jYWxlbmRhcnMge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMjBweDtcbiAgfVxuXG4gICZfX2ZpZWxkcyB7XG4gICAgLy8gQW5jaG9ycyB0aGUgc2hhcmVkIGZpZWxkIHBpY2tlciBiZWxvdyB3aGljaGV2ZXIgZmllbGQgaXMgb3Blbi5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vIFNhbWUgd2lkdGggYXMgdGhlIGNhbGVuZGFyIGJlbG93LCB3aXRoIHRoZSB0d28gMzE5cHggZmllbGRzIHB1c2hlZCB0b1xuICAgIC8vIGl0cyBlZGdlcyBzbyB0aGUgcm93IGxpbmVzIHVwIHdpdGggdGhlIGdyaWQuXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAkZHJzLW1vbnRocy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fZmllbGQge1xuICAgIC8vIEZpeGVkIGJveCwgc28gdGhlIGJvcmRlciBhbmQgcGFkZGluZyBoYXZlIHRvIGJlIGZvbGRlZCBpbiAtIHRoaXMgYnVpbGRcbiAgICAvLyBoYXMgbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQuIEl0IGFsc28gbWVhbnMgdGhlIDEuNXB4IGFjdGl2ZSBib3JkZXJcbiAgICAvLyBkb2VzIG5vdCBudWRnZSB0aGUgbGF5b3V0LlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogJGRycy1maWVsZC1nYXA7XG4gICAgd2lkdGg6ICRkcnMtZmllbGQtd2lkdGg7XG4gICAgaGVpZ2h0OiAkZHJzLWZpZWxkLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkZHJzLWZpZWxkLXBhZC15ICRkcnMtZmllbGQtcGFkLXg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZHJzLWZpZWxkLXJhZGl1cztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMsIGJveC1zaGFkb3cgLjE1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIEhpbnQ6IHRoaXMgaXMgd2hlcmUgdGhlIG5leHQgY2xpY2sgb24gdGhlIHR3by1tb250aCBncmlkIGxhbmRzLlxuICAgICYuaXMtcGVuZGluZyB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBmaWVsZCBhY3R1YWxseSBiZWluZyBlZGl0ZWQuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJvcmRlcjogJGRycy1maWVsZC1hY3RpdmUtYm9yZGVyIHNvbGlkICRkcnMtZmllbGQtYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHBlci1maWVsZCBkYXkgLyBtb250aCAvIHllYXIgcGlja2VyIC0tICovXG5cbiAgJl9fZmllbGQtcGlja2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBNYXRjaGVzIHRoZSBmaWVsZCBpdCBkcm9wcyBvdXQgb2YuXG4gICAgd2lkdGg6ICRkcnMtZmllbGQtd2lkdGg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkZHJzLXBhbmVsLXNoYWRvdztcblxuICAgIC8vIFRoZSBUTyBmaWVsZCBzaXRzIGluIHRoZSByaWdodCBoYWxmIG9mIHRoZSByb3cuXG4gICAgJi5pcy10byB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmllbGQtcGlja2VyLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gICZfX2ZpZWxkLXBpY2tlci1zZWxlY3Qge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAvLyBUaGUgeWVhciBpcyBhIGZpeGVkIGZvdXIgZGlnaXRzOyBnaXZlIHRoZSBtb250aCBuYW1lIHRoZSBzbGFjay5cbiAgICAmLmlzLXllYXIge1xuICAgICAgZmxleDogMCAwIDc2cHg7XG4gICAgfVxuICB9XG5cbiAgLyogVGhlIHR3byBsaW5lcyBwbHVzIHRoZSA0cHggZ2FwIGhhdmUgdG8gbGFuZCBleGFjdGx5IG9uIHRoZSBmaWVsZCdzXG4gICAgIGNvbnRlbnQgYm94IC0gNDlweCBsZXNzIGl0cyBib3JkZXJzIGFuZCA4cHggdmVydGljYWwgcGFkZGluZyBpcyAzMXB4IC1cbiAgICAgc28gdGhlc2UgbGluZS1oZWlnaHRzIGFyZSBsb2FkLWJlYXJpbmcsIG5vdCBkZWNvcmF0aW9uLiAqL1xuICAmX19maWVsZC1sYWJlbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRkcnMtZmllbGQtbGFiZWwtaW5rO1xuICB9XG5cbiAgJl9fZmllbGQtdmFsdWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJGRycy1maWVsZC12YWx1ZS1pbms7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgJl9fbW9udGhzIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAkZHJzLW1vbnRoLWdhcDtcbiAgICB3aWR0aDogJGRycy1tb250aHMtd2lkdGg7XG4gICAgaGVpZ2h0OiAkZHJzLW1vbnRocy1oZWlnaHQ7XG4gIH1cblxuICAmX19tb250aCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fbW9udGgtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuXG4gICZfX21vbnRoLW5hbWUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAvLyBTdGF5cyB1bmRlciB0aGUgMjhweCBuYXYgYnV0dG9uLCBzbyB0aGUgaGVhZGVyIGhlaWdodCAtIGFuZCB3aXRoIGl0IHRoZVxuICAgIC8vIHNwYWNlIHRoZSB3ZWVrIHJvd3MgZGl2aWRlIC0gZG9lcyBub3QgbW92ZS5cbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19uYXYge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAjNmQ2ZDZkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICB9XG5cbiAgICAvLyBLZWVwcyB0aGUgbW9udGggbmFtZSBjZW50cmVkIG9uIHRoZSBzaWRlIHRoYXQgaGFzIG5vIGNoZXZyb24uXG4gICAgJi5pcy1wbGFjZWhvbGRlciB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgZWFybnMgaXRzIHBsYWNlIG9uY2UgdGhlIHNlY29uZCBtb250aCBpcyBoaWRkZW4uXG4gICAgJi5pcy1uYXJyb3ctb25seSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJl9fZG93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fZG93LWNlbGwge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX193ZWVrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogJGRycy1kYXktc2l6ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLW91dHNpZGUge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1udW1iZXIge1xuICAgIC8vIFNpdHMgYWJvdmUgdGhlIHJhbmdlIGJhbmQgZHJhd24gb24gdGhlIGNlbGwuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkZHJzLWRheS1zaXplIC0gKCRkcnMtYmFuZC1pbnNldCAqIDIpO1xuICAgIGhlaWdodDogJGRycy1kYXktc2l6ZSAtICgkZHJzLWJhbmQtaW5zZXQgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAkZHJzLWRheS1yYWRpdXM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgfVxuXG4gICZfX2RheS5pcy10b2RheSAmX19kYXktbnVtYmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkbXV0ZWQ7XG4gIH1cblxuICAmX19kYXkuaXMtb3V0c2lkZSAmX19kYXktbnVtYmVyIHtcbiAgICBjb2xvcjogJGJsYWNrLTMwMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgJl9fZGF5Om5vdCguaXMtb3V0c2lkZSk6aG92ZXIgJl9fZGF5LW51bWJlciB7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gIH1cblxuICAvKiBUaGUgaW4tcmFuZ2UgYmFuZCBpcyBhIHBzZXVkby1lbGVtZW50IHJhdGhlciB0aGFuIGEgYmFja2dyb3VuZCBvbiB0aGVcbiAgICAgY2VsbC4gVHdvIHJlYXNvbnM6IGluc2V0IHZlcnRpY2FsbHkgaXQgbGVhdmVzIDFweCBhYm92ZSBhbmQgYmVsb3csIHNvXG4gICAgIGNvbnNlY3V0aXZlIHJvd3Mga2VlcCAycHggb2Ygd2hpdGUgYmV0d2VlbiB0aGVtOyBhbmQgaXQgc2l0cyBiZWhpbmQgdGhlXG4gICAgIGRheSBudW1iZXIsIHNvIGFuIGVuZHBvaW50J3Mgc29saWQgc3F1YXJlIGlzIG5vdCByaW5nZWQgYnkgdGludC4gKi9cbiAgJl9fZGF5LmlzLWluLXJhbmdlOjpiZWZvcmUsXG4gICZfX2RheS5pcy1zdGFydDo6YmVmb3JlLFxuICAmX19kYXkuaXMtZW5kOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRkcnMtYmFuZC1pbnNldDtcbiAgICBib3R0b206ICRkcnMtYmFuZC1pbnNldDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICB9XG5cbiAgLyogQW4gZW5kcG9pbnQgb25seSBuZWVkcyB0byBicmlkZ2UgdGhlIGdhcCB0byBpdHMgbmVpZ2hib3VyLiBTdGFydGluZyB0aGVcbiAgICAgYmFuZCBhdCB0aGUgY2VsbCdzIG1pZHBvaW50IGtlZXBzIGl0IGVudGlyZWx5IHVuZGVyIHRoZSBzb2xpZCBzcXVhcmVcbiAgICAgZXhjZXB0IGZvciB0aGF0IGdhcCwgc28gbm8gdGludCBzaG93cyB0byB0aGUgb3V0c2lkZSBvZiBpdC4gKi9cbiAgJl9fZGF5LmlzLXN0YXJ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuXG4gICZfX2RheS5pcy1lbmQ6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuXG4gIC8vIEEgb25lLWRheSByYW5nZSBicmlkZ2VzIHRvIG5vdGhpbmcuXG4gICZfX2RheS5pcy1zdGFydC5pcy1lbmQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIFR3by1tb250aCBncmlkIG9ubHkuIEl0cyBibG9jayBoYXMgYSBmaXhlZCBoZWlnaHQsIHNvIHRoZSBzaXggd2VlayByb3dzXG4gICAgIGNhbiBzaGFyZSB3aGF0ZXZlciB0aGUgaGVhZGVyIGFuZCBkYXktb2Ytd2VlayByb3cgbGVhdmUuIFRoZSBmaWVsZCBwaWNrZXJcbiAgICAga2VlcHMgdGhlIGZpeGVkIDM2cHggY2VsbHMgYWJvdmUgLSBpdCBoYXMgbm8gZGVmaW5pdGUgaGVpZ2h0LCBzbyBhXG4gICAgIHBlcmNlbnRhZ2UgdGhlcmUgd291bGQgcmVzb2x2ZSB0byBhdXRvLiAqL1xuICAmX19tb250aHMgJl9fd2VlayB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gICZfX21vbnRocyAmX19kYXkge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gICZfX21vbnRocyAmX19kYXktbnVtYmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBTdGlsbCBleGFjdGx5IDJweCBzaG9ydGVyIHRoYW4gaXRzIHJvdywgc28gdGhlIHdoaXRlIGdhcCBiZXR3ZWVuIHdlZWtzXG4gICAgLy8gYW5kIHRoZSBmaXQgYWdhaW5zdCB0aGUgcmFuZ2UgYmFuZCBib3RoIHN1cnZpdmUgdGhlIHRhbGxlciByb3dzLlxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skZHJzLWJhbmQtaW5zZXQgKiAyfSk7XG4gIH1cblxuICAmX19kYXkuaXMtc3RhcnQgJl9fZGF5LW51bWJlcixcbiAgJl9fZGF5LmlzLWVuZCAmX19kYXktbnVtYmVyLFxuICAmX19kYXkuaXMtc3RhcnQ6aG92ZXIgJl9fZGF5LW51bWJlcixcbiAgJl9fZGF5LmlzLWVuZDpob3ZlciAmX19kYXktbnVtYmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuXG4gIC8qIEVhY2ggZW5kcG9pbnQga2VlcHMgaXRzIHJvdW5kaW5nIG9ubHkgb24gdGhlIG91dHNpZGUgb2YgdGhlIHJhbmdlOyB0aGVcbiAgICAgZWRnZSBmYWNpbmcgdGhlIGJhbmQgaXMgc3F1YXJlLCBzbyB0aGUgc29saWQgc3F1YXJlIGFuZCB0aGUgdGludCBtZWV0XG4gICAgIGZsdXNoIGluc3RlYWQgb2YgbGVhdmluZyBhIG5vdGNoLiAqL1xuICAvKiBUaGUgc3F1YXJlIGVkZ2UgYWxzbyBwdWxscyBpbiBieSAxcHgsIHNvIGEgc2xpdmVyIG9mIHRoZSBiYW5kIHNob3dzXG4gICAgIGJldHdlZW4gdGhlIHNvbGlkIGVuZHBvaW50IGFuZCB0aGUgcmFuZ2UgaXQgb3BlbnMuIFRoZSBtYXJnaW4gZWF0cyBpbnRvXG4gICAgIHRoZSBudW1iZXIncyB3aWR0aCByYXRoZXIgdGhhbiBtb3ZpbmcgaXQgLSBpdCBpcyBhIGZsZXggaXRlbSBzaXplZCB0b1xuICAgICAxMDAlIG9mIHRoZSBjZWxsLCBzbyBpdCBzaHJpbmtzIHRvIG1ha2Ugcm9vbS4gKi9cbiAgJl9fZGF5LmlzLXN0YXJ0ICZfX2RheS1udW1iZXIge1xuICAgIGJvcmRlci1yYWRpdXM6ICRkcnMtZGF5LXJhZGl1cyAwIDAgJGRycy1kYXktcmFkaXVzO1xuICAgIG1hcmdpbi1yaWdodDogJGRycy1iYW5kLWluc2V0O1xuICB9XG5cbiAgJl9fZGF5LmlzLWVuZCAmX19kYXktbnVtYmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICRkcnMtZGF5LXJhZGl1cyAkZHJzLWRheS1yYWRpdXMgMDtcbiAgICBtYXJnaW4tbGVmdDogJGRycy1iYW5kLWluc2V0O1xuICB9XG5cbiAgLy8gQSBvbmUtZGF5IHJhbmdlIGZhY2VzIG91dHdhcmQgb24gYm90aCBzaWRlcywgc28gbm90aGluZyBpcyBwdWxsZWQgaW4uXG4gICZfX2RheS5pcy1zdGFydC5pcy1lbmQgJl9fZGF5LW51bWJlciB7XG4gICAgYm9yZGVyLXJhZGl1czogJGRycy1kYXktcmFkaXVzO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8qIC0tIG5hcnJvdyAtLSAqL1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkZHJzLXN0YWNrKSB7XG4gICAgJl9fcGFuZWwge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgIH1cblxuICAgICZfX3ByZXNldHMge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fcHJlc2V0IHtcbiAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ydWxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgLy8gVHdvIG1vbnRocyBkbyBub3QgZml0OyBzaG93IHRoZSBsZWZ0IG9uZSBvbmx5LCBhbmQgbGV0IGl0IHRha2Ugb3ZlclxuICAgIC8vIHRoZSBmb3J3YXJkIGNoZXZyb24gdGhlIHJpZ2h0LWhhbmQgbW9udGggd2FzIGNhcnJ5aW5nLlxuICAgICZfX21vbnRoICsgJl9fbW9udGgge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19uYXYuaXMtbmFycm93LW9ubHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZml4ZWQgNjgweDM3NiBibG9jayBpcyBhIHdpZGUtdmlld3BvcnQgc2hhcGU7IGRyb3AgYmFjayB0byBjb250ZW50XG4gICAgLy8gc2l6aW5nIGhlcmUuIFRoYXQgYWxzbyBtZWFucyB0aGUgcGVyY2VudGFnZSBkYXkgaGVpZ2h0cyBubyBsb25nZXIgaGF2ZVxuICAgIC8vIGEgZGVmaW5pdGUgcGFyZW50LCBzbyByZXN0b3JlIHRoZSBmaXhlZCBjZWxsIHNpemVzIHdpdGggdGhlbS5cbiAgICAmX19maWVsZHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ZpZWxkLXBpY2tlciB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgICB9XG5cbiAgICAmX19tb250aHMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19tb250aCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAkZHJzLW1vbnRoLXdpZHRoO1xuICAgIH1cblxuICAgICZfX21vbnRocyAmX19kYXkge1xuICAgICAgaGVpZ2h0OiAkZHJzLWRheS1zaXplO1xuICAgIH1cblxuICAgICZfX21vbnRocyAmX19kYXktbnVtYmVyIHtcbiAgICAgIGhlaWdodDogJGRycy1kYXktc2l6ZSAtICgkZHJzLWJhbmQtaW5zZXQgKiAyKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLnBhZ2UtaGVhZGVyLWJhY2stbmF2IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuXG4gIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGkuaWNvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgfVxufVxuXG4udGVzdC1hcmNoaXZlcy1vcHRpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDMwcHggMCA1cHg7XG4gIHJvdy1nYXA6IDEwcHg7XG5cbiAgPiBkaXYgKyBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgLmRhdGUtcmFuZ2VzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGdhcDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5hcmNoaXZlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1hcmdpbjogMzBweCAwO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBpLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hcmNoaXZlLW5hbWUsXG4gICAgLmFyY2hpdmUtaW5mbyxcbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaW5mbyxcbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1pbmZvIHtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIH1cblxuICAgICYuaGVhZGVyLXJvdyB7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvL3ZlcnNpb24gMiBvZiBoZWFkZXIgKHNlZSBuZXctaGVhZGVyLmh0bWwgZm9yIHRlbXBsYXRlIChzd2l0Y2hlZCB2MikpXG4uaGVhZGVyLWNvbnRlbnQge1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChpbml0aWFsKTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODBweCk7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG4gIC5oZWFkZXItbG9nby1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItcHJhYy1idXJnZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzJlMmUyZTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLXByYWMtbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMxYzFjMWM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgLmhlYWRlci1wcmFjLW1lbnVfX2l0ZW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgbWF4LWhlaWdodDogNjBweDtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzO1xuICAgICAgY29sb3I6ICNhMGE0YTg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1wcmFjLXVzZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICAuaGVhZGVyLWxvZ28gIHtcbiAgICBtYXJnaW46IDEwcHggMzVweDtcbiAgXHRpbWcgIHtcbiAgXHRcdG1heC13aWR0aDogMTgwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiA3MHB4O1xuICBcdH1cbiAgfVxuICAucmVzcC1jZW50ZXIge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLnVzZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmhlYWRlci10ZWFtLW5hbWUge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0M4QzhDOTtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgfVxuICAgIGgzIHtcbiAgICAgIHBhZGRpbmc6IDBweCAxOHB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgIFxuICB9XG4gIC5oZWFkZXItdGVhbS1uYW1lLXJlc3Age1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgPiBoMyB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItdGVhbS1uYW1lLWxpbmsge1xuICAgIEBleHRlbmQgLmhlYWRlci10ZWFtLW5hbWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudGVhbS1zd2l0Y2hlciAge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogODAlO1xuICAgICAgbGVmdDogOTAlO1xuICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgIH1cbiAgfVxuICAudGVhbS1vcHRpb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDIlO1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjFmMTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoNjgsIDY3LCA3NiwgMC4yNSk7XG4gICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAzO1xuICAgIFxuICAgID5kaXYge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE0cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGZkZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2hpdGUtZmllbGQge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcblxuICAgIGkuaWNvbi1zaG9wIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICBtYXJnaW46IDBweDtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBtYXJnaW46IC0xcHggOHB4IDBweCAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudC1hdGhsZXRlIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3BhbiArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gZGl2ICsgZGl2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAmLnNpZ25vdXQge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNXB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zaG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDdweCAwIDE1cHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCAyNXB4IDAgN3B4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIGkuZmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaGVhZGVyLWNvbnRlbnQtLXByYWMge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuaGVhZGVyLXRlYW0tbmFtZSxcbiAgICAuaGVhZGVyLXRlYW0tbmFtZS1saW5rIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEYXJrIGFwcCBoZWFkZXIgc2hhcmVkIGJ5IGF0aGxldGUgYW5kIHByYWN0aXRpb25lciAoVmlzb3IgbG9nbyArIHByb2ZpbGUpLlxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1hdGhsZXRlLFxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1wcmFjIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLmF0aGxldGUtcHJvZmlsZS1zd2l0Y2gge1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWF4LWhlaWdodDogNjBweDtcbiAgfVxuXG4gIC5hdGhsZXRlLWhlYWRlci1sb2dvIHtcbiAgICBtYXJnaW46IDAgMjhweDtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDE0NXB4O1xuICAgICAgbWF4LWhlaWdodDogMjlweDtcbiAgICB9XG4gIH1cblxuICAudXNlcl9fbG9nbyB7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHdpZHRoOiA0NHB4O1xuICB9XG5cbiAgLnVzZXJfX25hbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLnVzZXJfX2luZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAudXNlcl9fbmFtZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAudXNlcl9fcm9sZSB7XG4gICAgY29sb3I6ICNFMUUxRTY7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8gTWVtYmVyIG1vYmlsZSBiYXI6IGJ1cmdlciAoZml4ZWQsIDYwcHggbGVmdCBjZWxsKSB8IFZpc29yIG1hcmsgfCBhdmF0YXIuXG4vLyBfcGFzc3BvcnQuc2NzcyBoaWRlcyAucGFzc3BvcnQgd2hvbGVzYWxlIHVuZGVyIDc2OHB4LCBzbyByZS1zaG93IGl0IGhlcmUgZm9yXG4vLyB0aGUgbWVtYmVyIGhlYWRlciBvbmx5IGFuZCBzaHJpbmsgdGhlIG1hcmsgdG8gZml0IHRoZSA2MHB4IGJhci5cbi5oZWFkZXItY29udGVudC5oZWFkZXItY29udGVudC0tYXRobGV0ZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC8vIENlbnRyZWQgYWdhaW5zdCB0aGUgYmFyIGl0c2VsZiwgbm90IHNhdCBiZXR3ZWVuIGl0cyBuZWlnaGJvdXJzOiB0YWtlblxuICAgIC8vIG91dCBvZiBmbG93IHNvIHRoZSBhdmF0YXIgb24gdGhlIHJpZ2h0IGNhbm5vdCBwdWxsIHRoZSBtYXJrIG9mZiBjZW50cmUuXG4gICAgLy8gLmhlYWRlci1jb250ZW50IGlzIHBvc2l0aW9uOiByZWxhdGl2ZSwgYW5kIC5hdGhsZXRlLXByb2ZpbGUtc3dpdGNoIGlzXG4gICAgLy8gbG9ja2VkIHRvIHRoZSBiYXIncyBvd24gNjBweCBhYm92ZSwgc28gdGhlIG9mZnNldHMgbGFuZCBleGFjdGx5LlxuICAgIC5wYXNzcG9ydCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtaGVhZGVyLWxvZ28ge1xuICAgICAgbWFyZ2luOiAwIDEycHg7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTEwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIG1lbWJlciBuYW1lIHdvdWxkIHNxdWVlemUgdGhlIG1hcmsgYWdhaW5zdCB0aGUgYXZhdGFyIGF0IHBob25lXG4gICAgLy8gd2lkdGhzOyB0aGUgYXZhdGFyIHN0YXlzIGFzIHRoZSBvbmx5IHByb2ZpbGUgYWZmb3JkYW5jZSwgbWF0Y2hpbmcgdGhlXG4gICAgLy8gcHJhY3RpdGlvbmVyIGJhciBhYm92ZS5cbiAgICAudXNlcl9fbmFtZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgdGVhbSBzd2l0Y2hlciBib3ggKEZpZ21hOiBib3JkZXJlZCBkcm9wZG93biBuZXh0IHRvIGxvZ28pLlxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1wcmFjIHtcbiAgLmF0aGxldGUtaGVhZGVyLWxvZ28ge1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgfVxuXG4gIC5oZWFkZXItdGVhbS1zd2l0Y2hlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG5cbiAgICAmX19idG4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDE4OHB4O1xuICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMTJweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2QzZDN0M7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzUzNTRCO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgICZfX2NhcmV0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuXG4gICAgLy8gRmlnbWE6IGxpZ2h0IHBhbmVsIGZsb2F0aW5nIG9mZiB0aGUgZGFyayBoZWFkZXIsIHJvd3MgZ3JvdXBlZCB1bmRlciBhXG4gICAgLy8gXCJUZWFtc1wiIGNhcHRpb24sIHdpdGggYSBjaGVjayBhZ2FpbnN0IHRoZSB0ZWFtIGN1cnJlbnRseSBpbiBjb250ZXh0LlxuICAgICZfX29wdGlvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvLyBGaWdtYSdzIDMyMHB4LCBidXQgYXMgYSBmbG9vciByYXRoZXIgdGhhbiBhIGZpeGVkIHdpZHRoOiBgYXV0b2Agd291bGRcbiAgICAgIC8vIHNocmluay10by1maXQgdGhlIHBvc2l0aW9uZWQgYW5jZXN0b3IgKHRoZSAxODhweCBidXR0b24pLCBzbyBuYW1lc1xuICAgICAgLy8gbG9uZ2VyIHRoYW4gdGhlIHBhbmVsIGdvdCBjbGlwcGVkLiBgbWF4LWNvbnRlbnRgIGlnbm9yZXMgaXQgYW5kIGdyb3dzXG4gICAgICAvLyByaWdodHdhcmRzIGZyb20gdGhlIHNwZWMnZCB3aWR0aCBpbnN0ZWFkLlxuICAgICAgbWluLXdpZHRoOiAzMjBweDtcbiAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgICAgLy8gM3B4IHRvcC9ib3R0b20gcGVyIEZpZ21hOyA0cHggZWFjaCBzaWRlIGlzIHRoZSAzMjAgLSAzMTIgcm93IGluc2V0LlxuICAgICAgcGFkZGluZzogM3B4IDRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAvLyBGaWdtYSBsaXN0cyB0aGUgI0VBRUNGMCBzdHJva2Ugb24gdGhlIGJvdHRvbSBlZGdlIGFsb25lOyB0aGUgY2FyZCByZWFkc1xuICAgICAgLy8gYXMgYSBjbG9zZWQgcmVjdGFuZ2xlIGluIHRoZSBmcmFtZSwgc28gaXQgcnVucyB0aGUgd2hvbGUgd2F5IHJvdW5kLlxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VBRUNGMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAwLjA4KSwgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAwLjAzKTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgLy8gQW4gYWRtaW4ncyBsaXN0IHNwYW5zIGV2ZXJ5IHRlYW0gdGhleSBhZG1pbmlzdGVyLCBzbyBjYXAgdGhlIGRyb3AtZG93blxuICAgICAgLy8gYW5kIHNjcm9sbCByYXRoZXIgdGhhbiBydW5uaW5nIGl0IG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC5cbiAgICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBjb2xvcjogIzRGNEY0RjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19vcHRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDhweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvLyAxMHB4IHBhZGRpbmcgYXJvdW5kIGEgMjBweCBsaW5lIGlzIEZpZ21hJ3MgNDBweCBib3ggZXhhY3RseTsgYG1pbi1gXG4gICAgICAvLyBzbyBhIHJvdyBjYXJyeWluZyBhbiBvcmdhbml6YXRpb24gc3ViLWxpbmUgZ3Jvd3MgaW5zdGVhZCBvZiBjbGlwcGluZy5cbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgICAgfVxuXG4gICAgICAvLyBQdXJwbGUgd2FzaCBzdGF5cyBwdXQgb24gaG92ZXI6IHRoZSByb3cgaXMgYWxyZWFkeSB0aGUgYWN0aXZlIG9uZS5cbiAgICAgICYtLXNlbGVjdGVkLFxuICAgICAgJi0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJlZGZjO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpZ21hJ3MgOHB4IGdhcCwgYmV0d2VlbiByb3dzIG9ubHk6IHRoZSBjYXB0aW9uIHNpdHMgdGlnaHQgdG8gdGhlIGZpcnN0LlxuICAgICZfX29wdGlvbiArIC5oZWFkZXItdGVhbS1zd2l0Y2hlcl9fb3B0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAmX19vcHRpb25fX3RleHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gQm90aCBsaW5lcyBzdGlsbCBlbGxpcHNpemUsIGZvciB0aGUgY2FzZSB3aGVyZSBtYXgtd2lkdGggY2xhbXBzIHRoZSBwYW5lbC5cbiAgICAmX19vcHRpb25fX25hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC8vIFRlYW0gbmFtZXMgcmVwZWF0IGFjcm9zcyBvcmdhbml6YXRpb25zLCBzbyBxdWFsaWZ5IHRoZW0gd2hlcmUgd2Uga25vdyBpdC5cbiAgICAmX19vcHRpb25fX29yZyB7XG4gICAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmX19vcHRpb25fX2NoZWNrIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGNvbG9yOiAjOTc2OGViO1xuICAgIH1cblxuICAgICZfX29wdGlvbi0tc2VsZWN0ZWQgLmhlYWRlci10ZWFtLXN3aXRjaGVyX19vcHRpb25fX2NoZWNrIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYtLXN3aXRjaGFibGUgLmhlYWRlci10ZWFtLXN3aXRjaGVyX19idG4ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlcG9ydHMgLyBEYXNoYm9hcmQgLyBBZG1pbiBlbnRyeSBwb2ludHMgZm9yIHRoZSBwYWdlcyB0aGF0IHJlbmRlciB3aXRob3V0XG4gIC8vIHRoZSBzaWRlYmFyOyBzaXRzIGltbWVkaWF0ZWx5IGxlZnQgb2YgdGhlIHByYWN0aXRpb25lciBpZGVudGl0eSBibG9jay5cbiAgLmhlYWRlci1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBwdXNoIHRoZSBuYXYgKGFuZCB0aGUgaWRlbnRpdHkgYmxvY2sgYWZ0ZXIgaXQpIHRvIHRoZSByaWdodCBlZGdlXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGdhcDogMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2X19idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBuZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICB9XG5cbiAgICAvLyBUaWdodCBwaG9uZSB3aWR0aHMga2VlcCB0aGUgaWNvbnMgb25seTsgdGhlIGxhYmVscyB3b3VsZCBwdXNoIHRoZVxuICAgIC8vIGlkZW50aXR5IGJsb2NrIG9mZiB0aGUgYmFyLlxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZ2FwOiAwO1xuICAgICAgcGFkZGluZzogMCA4cHg7XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1uYXZfX2ljb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFRoZSBuYXYgYWxyZWFkeSBjYXJyaWVzIHRoZSBhdXRvIG1hcmdpbiBpbiB0aGF0IGNhc2UuXG4gIC5oZWFkZXItbmF2ICsgLnVzZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gT24gbW9iaWxlIHRoZSBiYXIgaXMgdG9vIHRpZ2h0IGZvciB0aGUgdHdvLWxpbmUgaWRlbnRpdHkgYmxvY2ssIHNvIGRyb3AgdGhlXG4gIC8vIHByYWN0aXRpb25lciBuYW1lICsgdGl0bGUgYW5kIGxlYXZlIHRoZSBhdmF0YXIgYXMgdGhlIG9ubHkgcHJvZmlsZSBhZmZvcmRhbmNlLlxuICAudXNlcl9faW5mbyB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgcHJvZmlsZSB2aWV3IHdyYXBzIHRoZSBoZWFkZXIgaW5jbHVkZSBpbiBhbiBleHRyYSAuaGVhZGVyLWNvbnRlbnRcbi8vIGVsZW1lbnQgKGRlZmF1bHQgODBweCArIGJvdHRvbSBib3JkZXIpLiBDb2xsYXBzZSB0aGF0IHdyYXBwZXIgdG8gdGhlIHNhbWVcbi8vIDYwcHggc28gbm8gd2hpdGUgc3RyaXAgc2hvd3MgYmVuZWF0aCB0aGUgZGFyayBoZWFkZXIuXG4uaGVhZGVyLWNvbnRlbnQ6aGFzKC5oZWFkZXItY29udGVudC0tYXRobGV0ZSksXG4uaGVhZGVyLWNvbnRlbnQ6aGFzKC5oZWFkZXItY29udGVudC0tcHJhYykge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLy8gcmVzcG9uc2l2ZSB0d2Vha3MsIHNob3VsZCBqdXN0IGJlIGltcGxlbWVudGVkIHdpdGggdGhlIHJlc3RcbkBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gIC5oZWFkZXItY29udGVudC12MiB7XG4gICAgLndoaXRlLWZpZWxkICB7XG4gICAgICAgID4gZGl2ID4gZGl2ICB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaS5pY29uLXNob3AgIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiRndXR0ZXItd2lkdGg6IDE1cHg7XG4vLyAkY29sLWdhcDogMzBweDtcbiRjb2wtZ2FwOiAxNXB4O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWxsIHNpemVzIHJlc3BvbnNpdmVuZXNzIGFkanVzdG1lbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ud2hpdGVib2FyZCAge1xuICAgIG1pbi13aWR0aDogMDtcbn1cbnVsLmNhdGFsb2dfbmF2ICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIGxpID4gc3BhbiAge1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxufVxudWwuY2F0YWxvZ19uYXYgbGkgPiB1bCBsaSA+IHVsIGxpICB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB0ZXh0LWluZGVudDogMDtcbiAgICBAaW5jbHVkZSB5cGFkKDZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4OyAvLyB0aGlzIHdheSwgd2hlbiBpdCB3cmFwcywgaXQgZG9lc24ndCBsb29rIHN0cmFuZ2Vcbn1cblxuLmNhdGFsb2ctc2VsZWN0ZWQgLnRpdGxlLWNvbnRhaW5lciAucmV0dXJuLWxpbmsgIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGF0aGxldGUgZ3JpZCB1bml2ZXJzYWxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5hdGhsZXRlLWluZm8tYm94ICB7XG4gICAgLmJpby1oZWFkZXIgIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAuYXRobGV0ZS1udW1iZXIgIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJpby1ib2R5ICB7XG4gICAgICAgIC5hdGhsZXRlLXByb2ZpbGUgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICAucHJvZmlsZS1waWMgIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmF0aGxldGUtc3RhdHMgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMik7XG4gICAgICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgICAgICsgZGl2ICB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2FudmFzICB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWxsIHNpemVzID4gYXRobGV0ZSBsaXN0IHZpZXcgPiBsb2NrZWQvd3JhcHBlZCBhdGhsZXRlIG51bWJlci4uLlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmF0aGxldGUtbGlzdC12aWV3LnZpZXctbGF5b3V0ICB7XG4gICAgLmF0aGxldGUtbnVtYmVyICB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNTNweCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB9XG4gICAgLmF0aGxldGUtbmFtZSAge1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBhbGwgc2l6ZXMgPiBhdGhsZXRlIHByb2ZpbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5wcm9maWxlLXN1bW1hcnkgIHtcbiAgICAudG9kYXktcHJvZ3JhbSxcbiAgICAudG9kYXktbm90aWNlICB7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDZweDtcbiAgICB9XG59XG4uY29sdW1uLWNvbnRhaW5lci5wcm9maWxlLXNjb3JlICsgZGl2IHtcbiAgICBAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuICAgICAgICB3aWR0aDogMzgwcHg7XG4gICAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bml2ZXJzYWwgYnJlYWtwb2ludCBkcm9wZG93blxuLy8gb25jZSBicm93c2VyIHdpZHRoIGdvZXMgYmVsb3cgMTA1NCAoc2VlIG1peGluIHJlc3BvbmQoc20pKVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBib2R5ICAge1xuXG4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuIC8vIHNlY3Rpb24gPiB1bml2ZXJzYWxcbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAudmlldy1jb250YWluZXIgIHtcbiAgICB3aWR0aDogJGNvbXByZXNzZWRDb250ZW50V2lkdGg7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgQGluY2x1ZGUgeHBhZCgkZ3V0dGVyLXdpZHRoKTtcbiAgICAudmlldy1jb250YWluZXIgIHtcbiAgICAgICAgQGluY2x1ZGUgeHBhZCgwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG4ud2Vlay13cmFwcGVyIC53ZWVrLWRheS1jb2x1bW4gIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uaGVhZGVyLWNvbnRlbnQgLndoaXRlLWZpZWxkID4gZGl2ICB7XG4gICAgbWFyZ2luOiAwcHggMjBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gcHJvZmlsZSBwYWdlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ucHJvZmlsZS1kZXRhaWwgIHtcbiAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAucHJvZmlsZS1waWMgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAyMDAgLyAxNzU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaW1nICB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucHJvZmlsZS1hY3Rpb24gIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucHJvZmlsZS1zdW1tYXJ5ICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoNCk7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29sLWdhcDtcbiAgICA+IC5yb3ctY29udGFpbmVyLmRpdmlkZWQgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGNvbC1nYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNjb3JlLWNvbnRhaW5lciAge1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIC5wcm9maWxlLXNjb3JlICB7XG4gICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC5wcm9maWxlLXNjb3JlLWdyYXBoLWNhbnZhcyAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hhcnQtbWVudSAge1xuICAgIC5jaGFydC1tZW51LWl0ZW0gIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4O1xuICAgIH1cbn1cbi5wcm9ncmFtLWNoYXJ0LFxuLmxpbmUtY2hhcnQgIHtcbiAgICBAaW5jbHVkZSBmbGV4KDIpO1xufVxuLnByb2dyYW0tY2hhcnQgIHtcbiAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi52aWV3LWxheW91dCAudmlldy1jb250YWluZXIgLmxpbmUtY2hhcnQgIHtcbiAgICAubGluZS1jaGFydC1jYW52YXMgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG4uY2hhcnQtZGV0YWlscyAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb2wtZ2FwO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdW5pdmVyc2FsIChiYXNlZCBvZmYgb2YgcHJvZmlsZSA9PiBwcm9ncmFtcyA9PiB2ZXJ0aWNhbCBiYXIgY2hhcnQpXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5jYW52YXMgIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHByb2ZpbGUgPiBjYWxlbmRhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmNhbGVuZGFyLW1vbnRoICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoMik7XG4gICAgLndlZWstZGF5LWxhYmVscyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsZW5kYXItZGF5cyAge1xuICAgICAgICAuY2FsZW5kYXItZGF5ICB7XG4gICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogKDEwMC83KSoxJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm5vdGVzLWNhbGVuZGFyICB7XG4gICAgICAgIG1heC13aWR0aDogNDkycHg7XG4gICAgfVxufVxuLmNhbGVuZGFyLWRheS1pbmZvICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29sLWdhcDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLnNjaGVkdWxlLWNhbGVuZGFyLWxheW91dCB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5jYWxlbmRhci1tb250aCB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jYWxlbmRhci1kYXktaW5mbyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBhdGhsZXRlIGdyaWQgPiBsaXN0IHZpZXdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5hdGhsZXRlLWxpc3Qtdmlldy52aWV3LWxheW91dCAge1xuICAgIC5hdGhsZXRlLXN0YXQgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgwKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg3LjUlKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgfVxuICAgIC5hdGhsZXRlLXByb2dyYW1zICB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTglKTtcbiAgICB9XG4gICAgLmF0aGxldGUtbGFzdC1hY3Rpdml0eSAge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE4JSk7XG4gICAgfVxuICAgIC5hdGhsZXRlLXJvdyAge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IG1vZGFsc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLm1vZGFsICB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbn1cbi5tb2RhbC1jb250YWluZXIgIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IG5vdGVzID4gdHJhaW5pbmcgbG9hZCA+IG1pc2Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi50bC1lbnRyeS1oZWFkZXIgLnRsLXNlbGVjdCxcbi50bC1lbnRyeSAudGwtc2VsZWN0ICB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG59XG4udGwtZW50cnktaGVhZGVyIC50bC1pbnB1dCxcbi50bC1lbnRyeSAudGwtaW5wdXQgIHtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg2cHgpO1xufVxuLnRsLWVudHJ5IC50bC1pbnB1dCA+IC5iYXNpYy1pbnB1dC5zbWFsbCAge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLnRsLWVudHJ5LWhlYWRlciAge1xuICAgIC5maWVsZC1sYWJlbCAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiB1bml2ZXJzYWwgaW5wdXQgc2l6ZSByZWR1Y3Rpb24uLi5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuaW5wdXQuYmFzaWMtaW5wdXQsXG5kaXYuYmFzaWMtaW5wdXQsXG5kaXYuYmFzaWMtaW5wdXQtcmVhZG9ubHkge1xuICAgIHdpZHRoOiAxMDBweDtcbn1cblxuLy8gY3VycmVudFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gYXRobGV0ZSBuYXYgZmlsdGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYXRobGV0ZS1tZW51ICB7XG4gICAgLmF0aGxldGUtc2VhcmNoICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAuYXRobGV0ZS1maWx0ZXItc29ydCAge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoaW5pdGlhbCk7XG4gICAgICAgID4gLmF0aGxldGUtc29ydC1ib3ggIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIC5sYWJlbCAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDE3cHggMTVweCAxMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAmOmFmdGVyICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogN3B4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDM4JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmF0aGxldGUtcmVzZXQtdmlldyAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KGluaXRpYWwpO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLXRvZ2dsZS12aWV3ICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoaW5pdGlhbCk7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGhlYWRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4uaGVhZGVyLWNvbnRlbnQgIHtcbiAgICAud2hpdGUtZmllbGQgIHtcbiAgICAgICAgPiBkaXYgPiBkaXYgIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICsgZGl2ICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpLmljb24tc2hvcCAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uICB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuICAgIC5sb2dvICB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEyMHB4KTtcbiAgICB9XG4gICAgLndoaXRlLWZpZWxkID4gYnV0dG9uOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbn1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IGdyYXBoIGtleVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmxpbmUtY2hhcnQtbWVudSAge1xuICAgIC5jaGFydC1sZWdlbmQgIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxNnB4O1xuICAgICAgICA+IC5mYSAge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHRlc3RpbmcgcHJvbXB0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnByb21wdC1ib3ggIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuLnRlc3QtbGFuZGluZyAucHJvbXB0LWJveCAge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgIHtcbiAgICAudGVzdC1sYW5kaW5nICB7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMCA1NnB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX190aXRsZSAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19zZWN0aW9uICsgLnRlc3QtbGFuZGluZ19fc2VjdGlvbiAge1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19jYXJkLFxuICAgIC50ZXN0LWxhbmRpbmcgLnByb21wdC1ib3ggIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIC8vIFRoZSBkZXNrdG9wIHJ1bGVzIHBpbiB0aGUgY2FyZCB0byBhIGZpeGVkIDg0cHggc28gdGhlIG9uZS1saW5lIHJvd1xuICAgICAgICAvLyBzdGF5cyB1bmlmb3JtLiBTdGFja2luZyBtYWtlcyB0aGF0IGEgaGFyZCBjbGlwLCBzbyByZWxlYXNlIGl0IGhlcmUgb3JcbiAgICAgICAgLy8gdGhlIGJ1dHRvbiBzcGlsbHMgb3V0IG9mIHRoZSBjYXJkIGFuZCBvdmVyIHRoZSBuZXh0IG9uZS5cbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiA4NHB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgfVxuICAgIC50ZXN0LWxhbmRpbmdfX2NhcmQtYWN0aW9ucyAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19idG4gIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBtaXNjIGNoYXJ0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnJlcG9ydC1jaGFydC1jb250YWluZXIgIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAubGluZS1jaGFydCAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnJlcG9ydC1jaGFydC1kZXRhaWxzICB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC5yZXBvcnQtY2hhcnQtZGV0YWlsICB7XG4gICAgICAgICAgICA+IGRpdiAge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHJlcG9ydCB0YWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnJlcG9ydC1kZXRhaWxzLWNvbnRhaW5lciAge1xuICAgIC50aXRsZSAge1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgfVxufVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIHNlY3Rpb24gPiBtZCA+IGVuZFxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbn1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChzbSkgIHsgYm9keSAge1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNtID4gYXRobGV0ZSBncmlkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGNhdGFsb2cgbmF2XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYWRtaW4tbWVudSA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBjYXRhbG9nIHNpZGUgbmF2XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uY2F0YWxvZ19jb250YWluZXIgIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAyMDBweCk7XG59XG4uY2F0YWxvZy1zZWFyY2ggIHtcbiAgICBmb3JtICB7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaW5wdXRbdHlwZT0ndGV4dCddICB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uW3R5cGU9J3Jlc2V0J10gIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2F0YWxvZy1mZWF0dXJlIC5mZWF0dXJlLWNvbnRhaW5lciAuZmVhdHVyZS1jb250ZW50ICB7XG4gICAgbGVmdDogNDBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRlYW1zIHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5wcmFjdGl0aW9uZXJzVGFibGUsXG4udGVhbXNUYWJsZSAge1xuICAgID4gLnJvdy1jb250YWluZXIgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgID4gc3BhbiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ucHJhY3RpdGlvbmVyc1RhYmxlICB7XG4gICAgPiAucm93LWNvbnRhaW5lciAge1xuICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxMTJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDk2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxMDhweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhJbmxpbmVPdmVycmlkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTEwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNikgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSg4OHB4KTtcbiAgICAgICAgICAgICAgICBidXR0b24gIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGVhbXNUYWJsZSAge1xuICAgID4gLnJvdy1jb250YWluZXIgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgIC8vIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoOTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDEwMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTAwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkgIHtcbiAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxNjBweCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleElubGluZU92ZXJyaWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNSkgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSg3MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDYpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMjEycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBzbWFsbGVyIHNjcmVlbnMgdXBkYXRlc1xuQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcblx0Ly8gbWFrZSB0aGUgbG9nbyBhIGxpdHRsZSBzbWFsbGVyXG5cdC5oZWFkZXItbG9nbyAge1xuXHRcdG1hcmdpbjogMCAxNXB4O1xuXHRcdGltZyAge1xuXHRcdFx0d2lkdGg6IDEwMCU7IC8vIGRvbid0IHdvcnJ5LCB0aGVyZSdzIGFscmVhZHkgYSBtYXgtd2lkdGggYXBwbGllZCB0byB0aGlzXG5cdFx0fVxuXHR9XG5cblx0Ly8gaGlkZSB0aGUgbmF2IGljb25zIHRvIHNhdmUgc29tZSBzcGFjZVxuXHQuaGVhZGVyLWNvbnRlbnQgLndoaXRlLWZpZWxkID4gZGl2ID4gZGl2ICB7XG5cdFx0aSAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvLyBmb3Igc2NyZWVuIHNpemVzIGFyb3VuZCA3NjhweCwgMiB0ZWFtIG1lbWJlcnMgcGVyIHJvdyBsb29rcyBiZXR0ZXIgdGhhbiAzXG5cdC5hdGhsZXRlLWRhc2hib2FyZCAuYXRobGV0ZS1kYXNoYm9hcmQtY29udGFpbmVyIHtcblx0XHQuYXRobGV0ZS1pbmZvLWJveCxcblx0XHQuYXRobGV0ZS1hZGQtYm94ICB7XG5cdFx0XHR3aWR0aDogY2FsYygoMTAwJSAtIDIwcHgpIC8gMik7XG5cdFx0fVxuXHRcdC5hdGhsZXRlLWluZm8tYm94IC5iaW8tYm9keSAuYXRobGV0ZS1wcm9maWxlIC5wcm9maWxlLXBpYyAge1xuXHRcdFx0bWF4LWhlaWdodDogbm9uZTsgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgc3RyZXRjaCB3aGVuIG1peGVkIHdpdGggd2lkdGg6IDEwMCVcblx0XHR9XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGVuZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xufSB9IC8vIGVuZCByZXNwb25kKHNtKVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgYm9keSAuYXRobGV0ZS1kYXNoYm9hcmQgLmF0aGxldGUtZGFzaGJvYXJkLWNvbnRhaW5lciB7XG4gICAgLmF0aGxldGUtaW5mby1ib3gsXG4gICAgLmF0aGxldGUtYWRkLWJveCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGxpc3QgdmlldyA+IHNtYWxsIHNjcmVlbnNcbi8vIG92ZXJyaWRlIHJlc3BvbmQobWQpIHBlcmNlbnRhZ2UgbG9jay13aWR0aHMgc28gdGhlIHRhYmxlIHNjcm9sbHNcbi8vIGluc3RlYWQgb2YgY3J1c2hpbmcgY29sdW1ucyB0byA3LjUlLzE4JSBvZiBhIHRpbnkgdmlld3BvcnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZXRlc3QgcGFnZSA+IHNtYWxsIHNjcmVlbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAvLyBVbmxvY2sgdGhlIDc3MHB4IGxvY2sgb24gdGhlIEFuZ3VsYXJVSSBtb2RhbCBhbmltYXRlIGNvbnRhaW5lclxuICAubW9kYWwtYW5pbWF0ZS1jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkgIWltcG9ydGFudDtcbiAgfVxuICAvLyBCb290c3RyYXAgbW9kYWwgZGlhbG9nIGZhbGxiYWNrXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG4gIC8vIFJlbW92ZSAzMDBweCBtaW4td2lkdGggYW5kIHN0cmV0Y2ggY2hpbGRyZW4gc28gdGV4dGFyZWEgZmlsbHMgZnVsbCB3aWR0aFxuICAubW9kYWwtY29udGFpbmVyIHNlY3Rpb24ge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAvLyBDbGluaWNhbCByZXBvcnQgbW9kYWw6IGRyb3Bkb3duIGZpdHMgc2NyZWVuLCBzZWxlY3RlZCB2YWx1ZSB0cnVuY2F0ZXMgd2l0aCBlbGxpcHNpc1xuICBsYWJlbC5jbGluaWNhbC1mb3JtLWZpZWxkIHtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgfVxuICBmdXNpb24tb3JkZXJlZC1kcm9wLWRvd24uY2xpbmljYWwtZHJvcC1kb3duIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgPiBkaXYuY29sdW1uLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgLnNlbGVjdC10b2dnbGUgc3Bhbi5maWx0ZXJlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICB9XG59XG5cbi8vIFByb2dyYW0gZWRpdCBwYWdlIHJlc3BvbnNpdmUgcnVsZXMgYXJlIGluIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3Ncbi8vIChtdXN0IGJlIGluIHRoZSBzZWNvbmQtbG9hZGVkIGJ1bmRsZSB0byB3aW4gdGhlIGNhc2NhZGUpXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IC5hdGhsZXRlLWxpc3Qtdmlldy52aWV3LWxheW91dCB7XG4gICAgLmF0aGxldGUtaGVhZGVyLFxuICAgIC5hdGhsZXRlLXJvdyB7XG4gICAgICBtaW4td2lkdGg6IDY4MHB4O1xuICAgIH1cbiAgICAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLXN0YXQge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg3MHB4KTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMTBweCk7XG4gICAgfVxuICAgIC5hdGhsZXRlLWxhc3QtYWN0aXZpdHkge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG4gICAgfVxuICAgIC5hdGhsZXRlLXJvdyB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcIm1peGluczJcIjtcblxuXG4uYXJyb3dUYWJzICB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBAaW5jbHVkZSBncmlkeGdhcCgycHgpO1xuICAgID4gc3BhbiAge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlICB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjsgICAgICBcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMTZweCA2cHgsICRibHVlLCBkb3duKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjJGNEY1O1xuICAgICAgICAgICAgY29sb3I6ICNBQkIwQjM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIHNwYW4gIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDsgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSAge1xuICAgICAgICAgICAgJjpiZWZvcmUgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4gIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHByb2dyYW0gc2NoZWR1bGUgdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHByb2dyYW1TY2hlZHVsZVRhYmxlQXR0cnMoJGxlZnRQdWxsLCAkaW5uZXJTcGFjaW5nKSAgeyAgXG4gICAgJHByb2dyYW1icmVha3BvaW50OiAkbGFyZ2VCcmVha3BvaW50ICsgJGxlZnRQdWxsICsgNDBweDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyAgXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcHJvZ3JhbWJyZWFrcG9pbnQpIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGxlZnRQdWxsfSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbGVmdFB1bGwqLTE7XG4gICAgfVxuICAgIHRyICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbGVmdFB1bGw7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsgKiAgeyAgICAgIFxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAvNyoxJSkgLSAjeyRsZWZ0UHVsbC83fSk7XG4gICAgICAgICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGlubmVyU3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgKyB0ciAge1xuICAgICAgICAgICAgPiAqICB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRpbm5lclNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhlYWQgIHtcbiAgICAgICAgdGggIHtcbiAgICAgICAgICAgIGNvbG9yOiAjQkRDMUM1O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRib2R5ICB7XG4gICAgICAgIHRoICB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiAjODQ4OTkwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfSAgICBcbiAgICB9XG59XG4ucHJvZ3JhbVNjaGVkdWxlVGFibGUgIHtcbiAgICBAaW5jbHVkZSBwcm9ncmFtU2NoZWR1bGVUYWJsZUF0dHJzKDcwcHgsIDVweCk7XG59XG5cbkBtaXhpbiBhY3Rpdml0eVBpbGxHcm91cEF0dHMoJHBpbGxHYXApICB7XG4gICAgJHBpbGxIZWlnaHQ6ICRwaWxsR2FwKjIvMztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI0YyRjRGNTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uOyAgXG4gICAgaGVpZ2h0OiAxMTcuM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hY3Rpdml0eVBpbGwgIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMyUgLSAjeyRwaWxsSGVpZ2h0fSk7XG4gICAgICAgICsgLmFjdGl2aXR5UGlsbCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHBpbGxHYXA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFkZEljb24gIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNDREQzRDc7ICAgIFxuICAgICAgICBAaW5jbHVkZSBhYnNDZW50ZXJJY29uKDQwcHgpO1xuICAgIH0gIFxufVxuXG4uYWN0aXZpdHlQaWxsR3JvdXAgIHtcbiAgICBAaW5jbHVkZSBhY3Rpdml0eVBpbGxHcm91cEF0dHMoM3B4KTtcbn1cbi5hY3Rpdml0eVBpbGwgIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5hY3Rpdml0eVBpbGwtLXByb21wdCAge1xuICAgIGJhY2tncm91bmQ6ICNFNEU5RUM7XG4gICAgY29sb3I6ICNCREMxQzU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWN0aXZpdHlQaWxsLS1hY3RpdmUgIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTsgIFxuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgLmNsb3NlSWNvbiAge1xuICAgICAgICBAaW5jbHVkZSBhYnNDZW50ZXJJY29uX3koMTBweCk7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9ICAgXG59XG5cbi5hY3Rpdml0eVBpbGxHcm91cC0tZW1wdHkgIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmFkZEljb24gIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2VsZWN0ICsgYWRkIHBpbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgXG4uc2VsZWN0QWRkUGlsbCAge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAudGwtZW50cnkgLnRsLXNlbGVjdCxcbiAgICAudGwtZW50cnkgLnRsLXNlbGVjdC1pbnB1dCAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgICBidXR0b24ucHJpbWFyeSAge1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgID4gKiAge1xuICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgICsgKiAge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICB0aGlzIGlzIGFuIHVwZGF0ZWQgbWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgXG5cbkBtaXhpbiBldmVuLWNvbHMgIHtcbiAgQGluY2x1ZGUgZmxleC1yb3c7XG4gICAgJi5jb21wYWN0ICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zcGFjZWQtb3V0ICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmRlZmF1bHQtc3BhY2VkICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmJvdHRvbS1hbGlnbiAge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gICAgfVxuICAgICYuZXZlbi1jb2xzLS1zdHJpcElubmVyTWFyZ2lucyAge1xuICAgICAgPiAqICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gKiAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIGV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBpcyBuZXdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICBcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB0cmlhbmdsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG5cblxuQG1peGluIGdyaWR4Z2FwKCRnYXApICB7XG4gICAgbWFyZ2luOiAwICRnYXAqLTE7XG4gICAgPiAqICB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGdhcDtcbiAgICB9XG59XG5cblxuQG1peGluIGlubGluZS1ncmlkLWJhc2UgIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgPiAqICB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgICBcbiAgfVxufVxuQG1peGluIGlubGluZS1ncmlkLXgoJGdhcCkgIHtcbiAgQGluY2x1ZGUgeG1hcmdpbigkZ2FwKi0xKTtcbiAgPiAqICB7XG4gICAgQGluY2x1ZGUgeG1hcmdpbigkZ2FwKTtcbiAgfVxufVxuQG1peGluIGlubGluZS1ncmlkLXkoJGdhcCkgIHtcbiAgQGluY2x1ZGUgeW1hcmdpbigkZ2FwKi0xKTtcbiAgPiAqICB7XG4gICAgQGluY2x1ZGUgeW1hcmdpbigkZ2FwKTtcbiAgfVxufVxuXG5AbWl4aW4gaW5saW5lLWdyaWQteHkoJGdhcCkgIHtcbiAgbWFyZ2luOiAkZ2FwKi0xO1xuICA+ICogIHtcbiAgICBtYXJnaW46ICRnYXA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMyXCI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHZhcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuJGZsZXhGb3JtSW5wdXRfaDogNDZweDtcbiRmbGV4Rm9ybV9wYWQ6IDEycHg7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB0eXBvZ3JhcGh5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi50X3BhZ2VDb250ZW50VGl0bGUgIHtcblx0bWFyZ2luOiAwO1xuXHRjb2xvcjogJGJsdWU7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Ji50b3AgIHtcblx0XHRjb2xvcjogIzc1Nzg3Qjtcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBoZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi55Y2VudGVyLWl0ZW1zICB7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuLnhnYXBDaGlsZHJlbiAge1xuXHQ+ICogKyAqICB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR9XG59XG5cbi5pbmxpbmVTcGFjZWQgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQtYmFzZTtcdFxufVxuLmlubGluZVNwYWNlZC0tYWxpZ24tLXRvcCAge1xuXHQ+ICogIHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG59XG4uaW5saW5lU3BhY2VkLS1hbGlnbi0tbWlkZGxlICB7XG5cdD4gKiAge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cbn1cbi5pbmxpbmVTcGFjZWQtLWNvbXBhY3QgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteHkoMnB4KTtcbn1cbi5pbmxpbmVTcGFjZWQtLXNwYWNlZCAge1xuXHRAaW5jbHVkZSBpbmxpbmUtZ3JpZC14eSg4cHgpO1xufVxuLmlubGluZVNwYWNlZC0tc3BhY2VkTWVkICB7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLXh5KDRweCk7XG59XG4uaW5saW5lU3BhY2VkLS1vcHRpb25JbnB1dHMgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteCgxMHB4KTtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteSg0cHgpO1xufVxuLmlubGluZVNwYWNlZF9fY2hpbGQgIHtcblx0QGluY2x1ZGUgdHJpbUlubmVyTWFyZ2luO1xufVxuXG4uY29sb3ItLWJhZCAge1xuXHRjb2xvcjogJHJlZDtcbn1cbi5jb2xvci0tZ29vZCAge1xuXHRjb2xvcjogJGdyZWVuO1xufVxuLmNvbG9yLS1vayAge1xuXHRjb2xvcjogJHllbGxvdztcbn1cbi5jb2xvci0tbmV1dHJhbCAge1xuXHRjb2xvcjogJGdyZXk7XG59XG4uY29sb3ItLW5ldXRyYWxCbHVlLCBcbi5jb2xvci0tbGluayAge1xuXHRjb2xvcjogIzRBQjNEQSAhaW1wb3J0YW50OyAvLyBuZWVkcyB0byBvdmVycmlkZSBkZWZhdWx0IHN0eWxlcyBzaW5jZSBpdCBpcyBhIGhlbHBlciBjbGFzc1xufVxuXG4uZmxleFJvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdygpO1x0XG59XG4uZmxleFJvd19fZmxleCAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG5idXR0b24ud2lkZSAge1xuXHRtaW4td2lkdGg6IDIwMHB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYXBwLXNwZWNpZmljIG1peGluc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5AbWl4aW4gYmxvY2tTaGFkb3cgIHtcblx0Ym94LXNoYWRvdzogMCAwIDNweCByZ2JhKCMwMDAsIDAuMik7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBzY3JvbGwgc2VjdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5zY3JvbGxTaWRlV3JhcCAge1x0XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQtdXApICB7XG5cdFx0QGluY2x1ZGUgZmxleC1yb3c7XHRcblx0fVx0XG59XG4kc2Nyb2xsU2lkZVdyYXBfX3NpZGVfZGFya0M6ICMyOTMwNDA7XG4uc2Nyb2xsU2lkZVdyYXBfX3NpZGUgIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdGJhY2tncm91bmQ6ICMzNjNBNDY7XHRcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRtaW4td2lkdGg6IDI3NXB4O1xuXHRcdG1heC13aWR0aDogMzQ3cHg7XG5cdFx0d2lkdGg6IDI2LjclO1xuXHR9XHRcblx0QGluY2x1ZGUgcmVzcG9uZChzbSkgIHtcblx0XHRAaW5jbHVkZSBmbGV4LXJvdztcdFxuXHRcdGJhY2tncm91bmQ6ICRzY3JvbGxTaWRlV3JhcF9fc2lkZV9kYXJrQztcblx0XHQubG9nZ2VkSW5CbG9jayAge1xuXHRcdFx0d2lkdGg6IDI0MHB4O1xuXHRcdH1cdFxuXHRcdC5zaWRlQmFyTWFpbkNvbnRlbnQgIHtcblx0XHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0fVxuXHRcdC5zaWRlQmFyU2VjdGlvbiAge1x0XHRcdFxuXHRcdFx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdFx0XHQrIC5zaWRlQmFyU2VjdGlvbiAge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdH1cblx0XHR9XHRcdFx0XHRcblx0XHQuc2lkZUJhclNlY3Rpb25fX2NvbnRlbnQgIHtcblx0XHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0fVx0XHRcblx0fVx0XG59XG4uc2lkZUJhckZpbHRlckZpZWxkcyAge1xuXHRAaW5jbHVkZSByZXNwb25kKG1kLXVwKSAge1xuXHRcdD4gKiArICogIHtcblx0XHRcdG1hcmdpbi10b3A6IDExcHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdFx0QGluY2x1ZGUgZ3JpZHhnYXAoJGZsZXhGb3JtX3BhZC8yKTtcblx0XHQ+ICogIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4uc2Nyb2xsU2lkZVdyYXBfX21haW4gIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcblx0cGFkZGluZzogMjBweDtcblx0YmFja2dyb3VuZDogI0VGRjFGMjtcbn1cblxuQG1peGluIHNjcm9sbFNpZGVXcmFwWHBhZCAge1xuXHRAaW5jbHVkZSB4cGFkKDIycHgpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWRtaW4yIHNpZGViYXIgbG9nZ2VkIGluIGJsb2NrIGhpZ2ggbGV2ZWxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmxvZ2dlZEluQmxvY2sgIHtcblx0YmFja2dyb3VuZDogIzk3NjhFQjtcdFxuXHRAaW5jbHVkZSBzY3JvbGxTaWRlV3JhcFhwYWQ7XG5cdHBhZGRpbmctdG9wOiAxMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMjFweDtcbn1cbi5sb2dnZWRJbkJsb2NrX19uYW1lICB7XG5cdG1hcmdpbjogMCAwIDdweDtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMjZweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5sb2dnZWRJbkJsb2NrX19tZW51ICB7XG5cdFxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGFydCBvZiBsb2dnZWQgaW4gcHJvZmlsZSB0aGF0J3MganVzdCB0aGUgbWVudVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ubG9nZ2VkSW5NZW51ICB7XG5cdFxufVxuLmxvZ2dlZEluTWVudV9fZHJvcERvd24gIHtcblx0XG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cbn1cbi5sb2dnZWRJbk1lbnVfX3RyaWdnZXJfX2ltZyAge1x0XG5cdGltZyAge1xuXHRcdHdpZHRoOiAzMnB4O1xuXHRcdGhlaWdodDogMzJweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbi5sb2dnZWRJbk1lbnVfX3RyaWdnZXJfX25hbWUgIHtcblx0Y29sb3I6ICNmZmY7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcdFxuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IDE0cHg7XG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyX19pY29uICB7XHRcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbG9yOiAjZmZmO1xuXHRmb250LXNpemU6IDZweDtcblx0cGFkZGluZzogNnB4IDAgMCA1cHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBzaWRiZSBzZWN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zaWRlQmFyU2VjdGlvbiAge1xuXHRAaW5jbHVkZSBzY3JvbGxTaWRlV3JhcFhwYWQ7XG5cdEBpbmNsdWRlIHlwYWQoMjBweCk7XG5cdGNvbG9yOiAjZmZmO1xufVxuLnNpZGVCYXJTZWN0aW9uLS1kYXJrICB7XG5cdGJhY2tncm91bmQ6ICRzY3JvbGxTaWRlV3JhcF9fc2lkZV9kYXJrQ1xufVxuLnNpZGVCYXJTZWN0aW9uX19jb250ZW50ICB7XG5cdFxufVxuLnNpZGVCYXJTZWN0aW9uX19oZWFkZXIgIHtcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRtYXJnaW46IDAgMCAxNXB4O1xuXHR9XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0d2lkdGg6IDExMHB4O1xuXHR9XG59XG4uc2lkZUJhclNlY3Rpb25fX2hlYWRlcl9fdGl0bGUgIHtcblx0Zm9udC1zaXplOiAyMHB4O1xuXHRmb250LXdlaWdodDogNTAwO1x0XG59XG5cbi5ibG9ja0NvbnRlbnQgIHtcblx0QGluY2x1ZGUgdHJpbUlubmVyTWFyZ2luO1xufVxuXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZmllbGQgcGlsbHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuQG1peGluIG9wZW5GaWVsZF94cGFkKCRwYWQpICB7XG5cdD4gKiAge1xuXHRcdCY6Zmlyc3QtY2hpbGQgIHtcblx0XHRcdHBhZGRpbmctbGVmdDogJHBhZDtcblx0XHR9XG5cdFx0JjpsYXN0LWNoaWxkICB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAkcGFkO1xuXHRcdH1cblx0fVxufVxuLm9wZW5GaWVsZCAge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMzZweDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuXHRmb250LXNpemU6IDE0cHg7XHRcblx0QGluY2x1ZGUgZmxleC1yb3c7XHRcblx0QGluY2x1ZGUgb3BlbkZpZWxkX3hwYWQoMTJweCk7XHRcblx0aW5wdXQgIHtcblx0XHRwYWRkaW5nOiA1cHggMDtcblx0fVxufVxuLm9wZW5GaWVsZFRhbGxfYnRuICB7XG5cdG1heC1oZWlnaHQ6ICRmbGV4Rm9ybUlucHV0X2g7XG5cdG1pbi1oZWlnaHQ6ICRmbGV4Rm9ybUlucHV0X2g7XG5cdGhlaWdodDogJGZsZXhGb3JtSW5wdXRfaDtcbn1cbi5vcGVuRmllbGQtLXJvdW5kZWQgIHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0QGluY2x1ZGUgb3BlbkZpZWxkX3hwYWQoMjBweCk7XG59XG5cbkBtaXhpbiBvcGVuRmllbGRfY29sb3IoJHBsYWNlaG9sZGVyLCAkYWN0aXZlKSAge1xuXHRpbnB1dCAge1xuXHRcdGNvbG9yOiAjNzU3ODdCO1xuXHRcdEBpbmNsdWRlIHBsYWNlaG9sZGVyICB7XG5cdFx0XHRjb2xvcjogI0FBQUJBRjtcblx0XHR9XG5cdH1cblx0Lm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHRcdC50ZXh0ICB7XG5cdFx0XHRjb2xvcjogIzc1Nzg3Qjtcblx0XHRcdCYucGxhY2Vob2xkZXIgIHtcblx0XHRcdFx0Y29sb3I6ICNBQUFCQUY7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5vcGVuRmllbGQtLWRhcmtlciAge1xuXHRAaW5jbHVkZSBvcGVuRmllbGRfY29sb3IoI0FBQUJBRiwgIzc1Nzg3Qik7XHRcbn1cbi5vcGVuRmllbGQtLXRhbGwgIHtcblx0aGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHQub3BlbkZpZWxkU2VsZWN0X190cmlnZ2VyIGkgIHtcblx0XHRmb250LXNpemU6IDhweDtcblx0XHRwYWRkaW5nLXRvcDogNHB4O1xuXHR9XG59XG5cbi5vcGVuRmllbGRTZWxlY3QgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG59XG4kZGFya0lucHV0UGxhY2Vob2xkZXJPcGFjaXR5OiAwLjM4O1xuLm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0QGluY2x1ZGUgZmxleCgxKTtcblx0LnRleHQgIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRcdCYucGxhY2Vob2xkZXIgIHtcblx0XHRcdG9wYWNpdHk6ICRkYXJrSW5wdXRQbGFjZWhvbGRlck9wYWNpdHk7XG5cdFx0fVxuXHR9XG5cdGkgIHtcblx0XHRmb250LXNpemU6IDZweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0b3BhY2l0eTogMC4yNjtcblx0fVx0XG59XG5cbi5vcGVuRmllbGRJbnB1dCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0PiAqICB7XG5cdFx0KyAqICB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMTVweDtcblx0XHR9XG5cdH1cblx0aW5wdXQgIHtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcdFx0XG5cdH1cblx0LnN1Ym1pdFdyYXAgIHtcdFx0XG5cdFx0b3BhY2l0eTogMC4zNjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0QGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRcdCY6aG92ZXIgIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XHRcblx0Lmljb24tc2VhcmNoICB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG59XG4ub3BlbkZpZWxkU2VsZWN0LS1kYXJrICB7XG5cdGJhY2tncm91bmQ6ICM1MTU5NkY7XHRcbn1cblxuLm9wZW5GaWVsZElucHV0LS1saWdodCAge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ub3BlbkZpZWxkSW5wdXQtLWRhcmsgIHtcblx0YmFja2dyb3VuZDogIzQxNDk1Qztcblx0aW5wdXQgIHtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuXHRcdFx0b3BhY2l0eTogJGRhcmtJbnB1dFBsYWNlaG9sZGVyT3BhY2l0eTtcblx0XHR9XHRcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZGFyayBzaWRlIGxpbmtzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5kYXJrU2lkZUxpbmtzICB7XG5cdG1hcmdpbjogNTBweCAtMTBweDsgLy8gdGhlc2Ugc2hvdWxkIHRha2UgdXAgYSBiaXQgbW9yZSBvZiB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBzaWRlYmFyIHNlY3Rpb25cblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1x0XHRcblx0PiBsaSAge1xuXHRcdCsgbGkgIHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHR9XG5cdH1cblx0YSAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRcdGJhY2tncm91bmQ6ICM0MTQ5NUM7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZzogMTBweCAxN3B4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRib3JkZXItbGVmdDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdCY6aG92ZXIgIHtcblx0XHRcdFxuXHRcdH1cblx0XHQmLmFjdGl2ZSAge1xuXHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICRibHVlO1xuXHRcdFx0YmFja2dyb3VuZDogIzUxNTk2Rjtcblx0XHRcdC5udW0gIHtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC50ZXh0ICB7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblx0Lm51bSAge1xuXHRcdGNvbG9yOiAjNzA3Qzk3O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2VjdGlvbiBIZWFkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLnBhZ2VTZWN0aW9uQmxvY2sgIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XG5cdGJhY2tncm91bmQ6ICNmZmY7XHRcblx0QGluY2x1ZGUgYmxvY2tTaGFkb3c7XG5cdGJvcmRlci10b3A6IDVweCBzb2xpZCAkYmx1ZTtcbn1cbi5wYWdlU2VjdGlvbkJsb2NrX19oZWFkZXIgIHtcblx0cGFkZGluZzogMTBweCAxNXB4IDMwcHg7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFRUVFO1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHQ+ICogIHtcblx0XHQrICogIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0XHR9XG5cdH1cdFx0XG59XG4ucGFnZVNlY3Rpb25CbG9ja19wcmVIZWFkZXIgIHtcblx0bWFyZ2luOiAwIDAgMTBweDtcbn1cbi5hY3Rpb25zQmFyICB7XG5cdHBhZGRpbmc6IDhweCAxNXB4IDhweCA4cHg7XHRcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGJ1dHRvbiBhZGp1c3RtZW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5idXR0b24ucHJpbWFyeSAge1xuXHQmLnNtYWxsICB7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0bWF4LWhlaWdodDogbm9uZTtcblx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogNDFweDtcblx0XHRwYWRkaW5nOiAwIDE0cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBidG4gaWNvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmJ0bkljb24gIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IDIwcHg7XG5cdCYuaWNvbi1hZGQtdGVhbSAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxuXHQmLmljb24tYWRkLXBlcnNvbiAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxuXHQmLmljb24tYWRkLXByYWN0aXRpb25lciAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxufVxuLmJ0bkljb24tLWxlZnQgIHtcblx0cGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGljb25UZXh0TGlua1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaWNvblRleHRMaW5rICB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRmb250LXdlaWdodDogNTAwO1x0XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0aSAge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGFnZSBzZWN0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ucGFnZVNlY3Rpb24gIHtcblx0KyAucGFnZVNlY3Rpb24gIHtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGZpbHRlcnMgYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLnRhYmxlRmlsdGVyc1dyYXAgIHtcblx0QGluY2x1ZGUgZmxleC1yb3coKTtcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG5cdG1hcmdpbjogMCAwIDEwcHg7XG59XG4udGFibGVGaWx0ZXJzV3JhcF9fbWFpbiAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuLnRhYmxlRmlsdGVyc1dyYXBfX3NpZGUgIHtcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR3aWR0aDogMjUlO1xuXHRtaW4td2lkdGg6IDE4MHB4O1x0XG59XG5cbi5wYWdpbmF0aW9uSW5mbyAge1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xufVxuXG5cblxuLmNvbXBhY3RQYWdpbmF0aW9uICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cdD4gZGl2ICB7XHRcdFxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdHdpZHRoOiAzMXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAkYmx1ZTtcdFxuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRvcGFjaXR5OiAwLjQ7XHRcdFx0XHRcblx0XHQrICogIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdFx0fVx0XHRcblx0XHQmOmhvdmVyICB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0XHQmOmZpcnN0LWNoaWxkICB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cdFxuXHRcdCY6bGFzdC1jaGlsZCAge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVx0XG5cdH1cblx0aSAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC0xcHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGZvbnQtc2l6ZTogMjJweDtcdFxuXHRcdGxpbmUtaGVpZ2h0OiAyOHB4O1x0XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxufVxuXG5cbi5kcm9wZG93bi13cmFwcGVyLmRyb3Bkb3duLXdyYXBwZXItLWlubGluZSAge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHRcblx0LnRyaWdnZXIgIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0Lmljb24tY2FyZXQtZHJvcGRvd24gIHtcblx0XHRcdHBhZGRpbmctbGVmdDogNHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogNHB4O1x0XG5cdFx0fVxuXHR9XG5cdD4gLnN1Ym1lbnUtd3JhcHBlciAge1xuXHRcdD4gLnN1Ym1lbnUtY29udGVudCAge1xuXHRcdFx0PiAuc3VibWVudSAge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0XHRsaSAge1xuXHRcdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRcdFx0PiBzcGFuID4gc3BhbiAge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmljb24tLWZsaXAgIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc29ydCBJY29uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zb3J0ZWRUYWJsZUhlYWRlciAge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdCYuc29ydGVkLCBcblx0Jjpob3ZlciAge1xuXHRcdGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG5cdH1cbn1cbiRzb3J0SWNvbldyYXBfY19kZWZhdWx0OiAjRDhEOEQ4O1xuJHNvcnRJY29uV3JhcF9jX2FjdGl2ZTogIzc4N0I3RTtcbi5zb3J0SWNvbldyYXAgIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0aGVpZ2h0OiAxNnB4O1xuXHR3aWR0aDogOXB4O1xuXHRtYXJnaW4tbGVmdDogM3B4O1xuXHQmOmJlZm9yZSwgJjphZnRlciAge1xuXHRcdGhlaWdodDogMDtcblx0XHR3aWR0aDogMDtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogNnB4O1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDZweDtcblx0XHRib3JkZXItbGVmdC13aWR0aDogNHB4O1xuXHRcdGJvcmRlci1yaWdodC13aWR0aDogNHB4O1xuXHR9XG5cdCY6YmVmb3JlICB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2RlZmF1bHQ7XG5cdFx0dG9wOiAtNXB4O1xuXHR9XG5cdCY6YWZ0ZXIgIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiAkc29ydEljb25XcmFwX2NfZGVmYXVsdDtcblx0XHRib3R0b206IC01cHg7XG5cdH1cblx0LnNvcnRlZFRhYmxlSGVhZGVyLS1kZXNjICYgIHtcblx0XHQmOmJlZm9yZSAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XHRcblx0XHQmOmFmdGVyICB7XG5cdFx0XHRib3JkZXItdG9wLWNvbG9yOiAkc29ydEljb25XcmFwX2NfYWN0aXZlO1xuXHRcdH1cdFxuXHR9XG5cdC5zb3J0ZWRUYWJsZUhlYWRlci0tYXNjICYgIHtcblx0XHQmOmJlZm9yZSAge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2FjdGl2ZTtcblx0XHR9XG5cdFx0JjphZnRlciAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XHRcdFxuXHR9XHRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWN0aW9uIGljb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuXG4uYWN0aW9uSWNvbiAge1xuXHRmb250LXNpemU6IDE0MCU7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQmLmljb24tbGV0dGVyICB7XG5cdFx0Zm9udC1zaXplOiAxMDAlO1x0XHRcblx0fVxuXHQmLmljb24tbGF1bmNoICB7XG5cdFx0Zm9udC1zaXplOiAxOTIlO1xuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpY29uQWN0aXZlQ2hlY2tcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmljb25BY3RpdmVDaGVjayAge1xuXHRmb250LXNpemU6IDExMCU7XG5cdGNvbG9yOiAjREJEQkRCO1xufVxuLmljb25BY3RpdmVDaGVjay0tYWN0aXZlICB7XG5cdGNvbG9yOiAkZ3JlZW47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpbmxpbmUgcGVyc29uIGJhZGdlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pbmxpbmVQZXJzb25CYWRnZSAge1xuXHRmb250LXNpemU6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogMXB4O1x0XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWx0IHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbkBtaXhpbiBhbHRUYWJsZVhwYWQoJHBhZCkgIHtcdFxuXHQuYWx0VGFibGUgIHtcblx0XHR0ciAge1x0XHRcdFxuXHRcdFx0PiAqICB7XG5cdFx0XHRcdEBpbmNsdWRlIHhwYWQoJHBhZC8yKTtcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJHBhZDtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmxhc3QtY2hpbGQgIHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAkcGFkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5hbHRUYWJsZV9fcm93ICB7XG5cdFx0QGluY2x1ZGUgeHBhZCgkcGFkKTtcblx0fVx0XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWx0IHRhYmxlIHggcGFkZGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbkBpbmNsdWRlIHJlc3BvbmQobGcpICB7XG5cdEBpbmNsdWRlIGFsdFRhYmxlWHBhZCgyMHB4KTtcdFxufVx0XG5AaW5jbHVkZSByZXNwb25kKG1kKSAge1xuXHRAaW5jbHVkZSBhbHRUYWJsZVhwYWQoOHB4KTtcbn0gXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBhbHQgdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmFsdFRhYmxlX19pbm5lcldyYXAgIHtcblx0Y29sb3I6ICM3NTc4N0I7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0QGluY2x1ZGUgYmxvY2tTaGFkb3c7XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9ICBcbn1cblxuLmFsdFRhYmxlICB7XHRcdCBcblx0dGFibGUgIHtcblx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0fVxuXHR0ciAge1xuXHRcdD4gKiAge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcdFx0XHRcdFxuXHRcdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aCAge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDRkNGQ0Y7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0QGluY2x1ZGUgeXBhZCgxNHB4KTtcblx0XHR9XG5cdFx0dGQgIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFRUVFO1xuXHRcdFx0QGluY2x1ZGUgeXBhZCgxMnB4KTtcdFxuXHRcdH1cblx0fVx0XG59XG5cbi5hbHRUYWJsZV9fc2ltcGxlSGVhZGVyICB7XG5cdG1hcmdpbjogMCAwIDE1cHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LXNpemU6IDEzcHg7XHRcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYWx0VGFibGVfX2Zvb3RlckJhciAge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdEBpbmNsdWRlIHlwYWQoMTBweCk7XG59XG4uYnRuICB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uc2hvcnRXaWRlQnRuICB7XG5cdG1pbi13aWR0aDogMTY3cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcblx0cGFkZGluZzogMCAxNXB4O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4udGQtLW5hbWUgIHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2l0ZSBoZWFkZXIgYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zaXRlSGVhZGVyQmFyICB7XG5cdFxufVxuXG4uc2l0ZUhlYWRlckJhcl9fbG9nb0dyb3VwICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuXHQ+IGRpdiAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0XHRwYWRkaW5nOiAxNXB4IDIwcHg7XG5cdFx0KyBkaXYgIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0M4QzlDOTtcblx0XHR9XG5cdH1cbn1cblxuLnNpdGVIZWFkZXJCYXJfX2FjdGlvbnMgIHtcblx0cGFkZGluZy1yaWdodDogMjBweDtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGxvZ29zIFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ubG9nby0tZnVzU21hbGwgIHtcblx0d2lkdGg6IDExOXB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gIHRleHQgbGlua1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4udGV4dExpbmsgIHtcblx0Y29sb3I6ICRibHVlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTNweDtcdFxufVxuLnRleHRMaW5rLS1idW1wICB7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGJhY2sgYnRuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLmJhY2tCdG4gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0QGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6IDQ1cHg7XG5cdGhlaWdodDogMzlweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiAkYmx1ZTtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBmbGV4IGZvcm1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuJGZsZXhGb3JtX2hyOiAjRUZFRkYwO1xuLmZsZXhGb3JtICB7XG5cdGZpZWxkc2V0ICB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAkZmxleEZvcm1fcGFkIDA7XG5cdFx0KyBmaWVsZHNldCAge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRmbGV4Rm9ybV9ocjtcblx0XHR9XG5cdH1cbn1cbi5mbGV4Rm9ybUZvb3RlciAge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGZsZXhGb3JtX2hyO1xuXHRwYWRkaW5nOiAyMHB4ICRmbGV4Rm9ybV9wYWQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZsZXhGb3JtUm93ICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0cGFkZGluZzogMCAkZmxleEZvcm1fcGFkO1xuXHRtaW4taGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHQrIC5mbGV4Rm9ybVJvdyAge1xuXHRcdG1hcmdpbi10b3A6ICRmbGV4Rm9ybV9wYWQ7XG5cdH1cbn1cbi5mbGV4Rm9ybVJvdy0tbGFyZ2VTZWN0aW9uICB7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG5cdEBpbmNsdWRlIHlwYWQoMTJweCk7XHRcblx0LmZsZXhGb3JtUm93X19sYWJlbENvbCAge1xuXHRcdHBhZGRpbmctdG9wOiAxMnB4O1xuXHR9XG59XG5cblxuLmZsZXhGb3JtUm93X19sYWJlbENvbCAge1xuXHRtaW4taGVpZ2h0OiAxcHg7XG5cdHdpZHRoOiAxODJweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6ICM2QzZENkM7XG5cdHBhZGRpbmctcmlnaHQ6IDI3cHg7XG59XG4uZmxleEZvcm1Sb3dfX2ZpZWxkc0NvbCAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG4uZmllbGRzUm93ICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBncmlkeGdhcCgkZmxleEZvcm1fcGFkLzIpO1xufVxuLmZpZWxkc1Jvdy0tY29tcHJlc3NlZCAge1xuXHRtYXgtd2lkdGg6IDUwMHB4O1xufVxuLmZpZWxkc1Jvdy0tdHdvQ29sICB7XG5cdD4gKiAge1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cbn1cbi5maWVsZHNSb3ctLXRocmVlQ29sICB7XG5cdD4gKiAge1xuXHRcdHdpZHRoOiAzMy4zMyU7XG5cdH1cbn1cbi5maWVsZHNSb3ctLWZvdXJDb2wgIHtcblx0PiAqICB7XG5cdFx0d2lkdGg6IDI1JTtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaWNvbiBsYWJlbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaWNvbkxhYmVsICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdGkgIHtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0Y29sb3I6ICNBQzlFQTU7XG5cdH1cblx0c3BhbiAge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR9XG59XG5cbi51cGxvYWRCbG9jayAge1xuXHRtYXgtd2lkdGg6IDM5MHB4O1xuXHRiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6IDIwcHggMTVweCAyMHB4IDIwcHg7XG59XG5cbi5pbnB1dElubmVyTGFiZWwgIHtcblx0Y29sb3I6ICNBQUFCQUY7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBjb2xsYXBzZWQgcmV1c2FibGUgZWxlbWVudHMgXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5jb2xsYXBzZWRfX2RlZmF1bHRFbGVtZW50ICB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdC5jb2xsYXBzZWQgJiAge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jb2xsYXBzZWRfX2FsdEVsZW1lbnQgIHtcblx0LmNvbGxhcHNlZCAmICB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdG9nZ2xlckJhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4udG9nZ2xlckJhciAge1xuXHRwYWRkaW5nOiAxMnB4IDE3cHg7XG5cdGJhY2tncm91bmQ6ICNGNEY0RjQ7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0KyAudG9nZ2xlckJhciAge1xuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0fVxuXHQmLmNvbGxhcHNlZCAge1xuXHRcdC50b2dnbGVyQmFyX19jb250ZW50ICB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4udG9nZ2xlckJhcl9fdHJpZ2dlciAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1x0XG59XG4udG9nZ2xlckJhcl9fdHJpZ2dlcl9fYWxsVG9nZ2xlSW5wdXQgIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcbn1cbi50b2dnbGVyQmFyX190cmlnZ2VyX19pY29uICB7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBhZGRpbmc6IDVweDtcbn1cblxuLnRvZ2dsZXJCYXJfX2NvbnRlbnQgIHtcblx0cGFkZGluZzogMjRweCAwIDA7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpbnB1dCBvcHRpb25zIHRyZWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmlucHV0T3B0aW9uc1RyZWUgIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1x0XG5cdHVsICB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDAgMCAwIDMwcHg7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHRsaSArIGxpLCBcblx0bGFiZWwgKyB1bCB7XHRcdFxuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0fVxuXHQ+IGxpICB7XG5cdFx0PiBsYWJlbCBzcGFuIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0fVxuXHRcdD4gdWwgIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XG5cdFx0XHQ+IGxpICB7XG5cdFx0XHRcdD4gdWwgIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxOHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jb2x1bW5zTGlzdCAge1xuXHRsaXN0LXN0eWxlOiBub25lO1x0XG5cdG1hcmdpbjogMzBweCAwO1xuXHRwYWRkaW5nOiAwO1xuXHQ+IGxpICB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTFweDtcblx0fVxufVxuXG4uY29sdW1uc0xpc3QtLTQgIHtcblx0QGluY2x1ZGUgY29sdW1uLWNvdW50KDQpO1xufVxuXG4uY2xvc2FibGVCdXR0b24gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0YmFja2dyb3VuZDogI0U5RjBGMjtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRwYWRkaW5nOiA4cHggMTZweDtcblx0Y29sb3I6ICM3NTc4N0I7XG5cdHNwYW4gIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1x0XHRcblx0XHRmb250LXNpemU6IDEycHg7XHRcdFxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuOXB4O1xuXHR9XG5cdGkgIHtcblx0XHRtYXJnaW4tbGVmdDogN3B4O1xuXHRcdHBhZGRpbmc6IDNweCAwO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmb250LXNpemU6IDE4cHg7XHRcdFxuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bml2ZXJzYWwgcmFkaW8vY2hlY2tib3ggdGV4dCBzdHlsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5sYWJlbC5jaGVja2JveC1pbnB1dCwgXG5sYWJlbC5yYWRpby1pbnB1dCAge1xuXHRzcGFuICB7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiAjNzU3NzdBO1xuXHR9XHRcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbnNpdmUgc2hvdyBoZWxwZXIgY2xhc3Nlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5yZXNwb25zaXZlU2hvdyAge1xuXHRkaXNwbGF5OiBub25lO1x0XG59XG4ucmVzcG9uc2l2ZVNob3ctLW1kVXAgIHtcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuLnJlc3BvbnNpdmVTaG93LS1zbURvd24gIHtcblx0QGluY2x1ZGUgcmVzcG9uZChzbSkgIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpY29uIGNvbCBjZWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pY29uQ29sQ2VsbCAge1xuXHR3aWR0aDogMjBweDtcblx0Lmljb24tZWRpdCAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC0ycHg7XG5cdH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiOyIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiOyIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWRkaXRpb25hbCBoZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLy8gZmllbGQgd2lkdGhzXG4ub3BlbkZpZWxkV2lkdGgtLW1heDEwMCAge1xuXHRtYXgtd2lkdGg6IDEwMCU7IC8vIG1ha2Ugc3VyZSBpdCBpcyBzdGlsbCBmbGV4aWJsZS4uLlxufVxuLm9wZW5GaWVsZFdpZHRoLS1zbWFsbCAge1xuXHR3aWR0aDogNTJweDtcbn1cbi5vcGVuRmllbGRXaWR0aC0tbWVkaXVtICB7XG5cdHdpZHRoOiAxNDhweDtcbn1cblxuLm9wZW5GaWVsZFdpZHRoLS1ycGUgIHtcblx0d2lkdGg6IDIwMHB4O1xufVxuXG4vLyBjZWxsIHdpZHRoc1xuLmNlbGxXaWR0aC0tdHJhaW5pbmdMb2FkICB7XG5cdHdpZHRoOiAxMzJweDtcbn0gXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bmlxdWUgc3R5bGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuXG4uc2NvcmVOdW0gIHtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Zm9udC1zaXplOiAxOHB4O1xufVxuXG4ub3BlbkZpZWxkLS1jZW50ZXJlZCAge1xuXHRpbnB1dCAge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4kdGxGaWx0ZXJzLXhnYXA6IDE1cHg7XG4kdGxGaWx0ZXJzLVhlZGdlR2FwOiAxNXB4O1xuXG4udGxGaWx0ZXJzSGVhZGVyICB7XG5cdHBhZGRpbmc6IDE1cHggJHRsRmlsdGVycy1YZWRnZUdhcDtcbn1cblxuLnRsRmlsdGVyc0hlYWRlck1haW4gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdD4gKiArICogIHtcblx0XHRwYWRkaW5nLWxlZnQ6ICR0bEZpbHRlcnMteGdhcDtcblx0fVxufVxuXG4uZmxUYWJsZSAge1xuXHR0ciAge1xuXHRcdD4gKiAge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHQrICogIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAkdGxGaWx0ZXJzLXhnYXA7XG5cdFx0XHR9XG5cdFx0XHQmOmZpcnN0LWNoaWxkICB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogJHRsRmlsdGVycy1YZWRnZUdhcDtcblx0XHRcdH1cblx0XHRcdCY6bGFzdC1jaGlsZCAge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAkdGxGaWx0ZXJzLVhlZGdlR2FwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQucHJvY2Nlc3NBcnJvdyAge1x0XHRcblx0XHRtYXJnaW4tcmlnaHQ6ICR0bEZpbHRlcnMteGdhcCotMTtcblx0fVxufVxuLmZsVGFibGVDb2xXaWR0aCAge1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbkBpbmNsdWRlIHJlc3BvbmQobGcpICB7XG5cdC5mbFRhYmxlQ29sV2lkdGgtLXRpdGxlICB7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHR9XG5cdC5mbFRhYmxlQ29sV2lkdGgtLXNlc3Npb24gIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLmZsVGFibGVDb2xXaWR0aC0tZHVyYXRpb25UYXJnZXQgIHtcblx0d2lkdGg6IGF1dG87XG59XG5cbi5zbWFsbEZpZWxkTGFiZWwgIHtcdFxuXHRwYWRkaW5nOiAwIDAgN3B4O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xufVxuXG5cbi50bEZpbHRlcnNIZWFkZXJTaWRlICB7XG5cdEBpbmNsdWRlIGZsZXgtY29sdW1uO1xuXHRAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbn1cblxuLm51bU5hbWUgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cbi5udW1OYW1lX19udW0gIHtcblx0b3BhY2l0eTogMC40O1xufVxuLm51bU5hbWVfX25hbWUgIHtcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuXG4ubnVtTmFtZS0tbGlnaHQgIHtcblx0Y29sb3I6ICM3NTc3N0E7XG59XG4kb3BlbkZpZWxkTWVkSGVpZ2h0OiAzOXB4O1xuJG9wZW5GaWVsZFRhbGxIZWlnaHQ6IDQ2cHg7XG4ub3BlbkZpZWxkLS1tZWRpdW0gIHtcblx0aGVpZ2h0OiAkb3BlbkZpZWxkTWVkSGVpZ2h0O1xufVxuXG4kc2VsZWN0QmFybGg6IDIxcHg7XG4kc2VsZWN0QmFyeXBhZDogKCRvcGVuRmllbGRNZWRIZWlnaHQgLSAkc2VsZWN0QmFybGgpLzI7XG4kc2VsZWN0QmFyeXBhZEJpZzogKCRvcGVuRmllbGRUYWxsSGVpZ2h0IC0gJHNlbGVjdEJhcmxoKS8yO1xuLnNlbGVjdEJhciAge1xuXHRiYWNrZ3JvdW5kOiAjOTc2OEVCO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiAxNXB4O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6ICN7JHNlbGVjdEJhcnlwYWR9IDE1cHg7XG5cdGxpbmUtaGVpZ2h0OiAkc2VsZWN0QmFybGg7XG5cdCYudGFsbCAge1xuXHRcdHBhZGRpbmc6ICRzZWxlY3RCYXJ5cGFkQmlnIDE1cHg7XG5cdH1cblx0aSAge1xuXHRcdGRpc3BsYXk6IG5vbmU7IC8vIG9ubHkgc2hvdyB0aGUgY2hlY2ttYXJrIGljb24gd2hlbiBcImlzU2VsZWN0ZWRcIiBjbGFzcyBpcyBwcmVzZW50Li4uLlxuXHRcdHBhZGRpbmctbGVmdDogNXB4O1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0fVxuXHQmLmlzU2VsZWN0ZWQgIHtcblx0XHRiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuXHRcdGNvbG9yOiAjQzdDQkNFO1xuXHRcdGkgIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHR9XG5cdH1cbn1cbi5zdWJtZW51X19udW1UZXh0V3JhcCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0Zm9udC1zaXplOiAxM3B4O1xuXHQubnVtICB7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzZDNkQ2Qztcblx0XHR3aWR0aDogMTVweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdH1cblx0LnRleHQgIHtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHR9XG59XG5cblxuLmNvbnRlbnRXaXRoUHJvY2Vzc0Fycm93V3JhcCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHQ+ICo6Zmlyc3QtY2hpbGQgIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHR9XG5cdC5wcm9jY2Vzc0Fycm93ICB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiA0MHB4O1xuXHRcdGNvbG9yOiAjRUZGMUYyO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdH1cblx0fVxufVxuLm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHQuaWNvbi10YXJnZXQgIHtcblx0XHRmb250LXNpemU6IDE5cHg7XG5cdFx0Y29sb3I6ICNBQUFCQUY7XG5cdFx0cGFkZGluZy1yaWdodDogOHB4O1xuXHR9XHRcbn1cblxuXG4uVEwtRHVyYXRpb24ge1xuICBpbnB1dDppbnZhbGlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0MwMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI0ZGQ0NDQztcbiAgfVxufVxuXG5cbi5iYWNrVG9MaW5rICB7XG5cdG1hcmdpbjogIDAgMCAyMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiAjOTc2OEVCO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcblxuXHRpICB7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdC50ZXh0ICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdH1cbn1cblxuXG4uY29tcGFjdEZvcm1TdGFjayAge1xuXHQ+ICogIHtcblx0XHQrICogIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGlubGluZSBvdmVybGF5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLmlubGluZU92ZXJsYXlXcmFwICB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlubGluZU92ZXJsYXkgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxMDtcdFxuXHR0b3A6IGNhbGMoMTAwJSAtIDE1cHgpO1xuXHRsZWZ0OiA1MCU7XHRcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdHdpZHRoOiAzNzdweDtcblx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblx0cGFkZGluZzogMTVweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI0VFRUVFRTtcblx0Ym94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoIzAwMDAwMCwgMC4xMyk7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5pbmxpbmVPdmVybGF5X190cmlhbmdsZSAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogM3B4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKTtcblx0d2lkdGg6IDI5cHg7XG5cdGhlaWdodDogMTdweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9vdmVybGF5LXRyaWFuZ2xlLnBuZykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5pbmxpbmVPdmVybGF5X19jbG9zZSAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTVweDtcblx0cmlnaHQ6IDE1cHg7XG5cdGZvbnQtc2l6ZTogMTdweDtcblx0Y29sb3I6ICRibHVlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW5saW5lT3ZlcmxheV9fdGl0bGUgIHtcblx0bWFyZ2luOiAwIDAgMjBweDtcblx0cGFkZGluZzogMCAzMHB4O1xuXHRmb250LXNpemU6IDE4cHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBkbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uY2hhcnQtZGF0ZS1oZWFkZXIgKyAuZGxSb3cgIHtcblx0bWFyZ2luOiAxMHB4IDAgMjBweDtcbn1cbi5kbFJvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG5cdCsgLmNoYXJ0LWRhdGUtaGVhZGVyICB7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0fVxuXHQrIC5kbFJvdyAge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmRsSXRlbSAge1xuXHRcbn1cbi5kbEl0ZW1fX2xhYmVsICB7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGNvbG9yOiAjNzU3NzdBO1xuXHRmb250LXNpemU6IDE0cHg7XG59XG5cbi5kbEl0ZW1fX251bSAge1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRmb250LXNpemU6IDMwcHg7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcblx0LnNjb3JlQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdFx0Zm9udC1zaXplOiA3cHg7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdH1cbn1cblxuLm1lbnUtcG9pbnRlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLndlZWtseVNjb3JlQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdGZvbnQtc2l6ZTogN3B4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4ucHJvZmlsZVRMQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZy1yaWdodDogMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogM3B4O1xufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJcbi5yZXZpZXctY29udGFpbmVyIHtcbiAgICAucmV2aWV3LXRhYnMgKyBkaXYge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwYWY7XG4gICAgfVxuXG4gICAgLnJldmlldy1mcmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBcbiAgICAgICAgZmxleDogMC45NTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNjMGMwYzA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmLmVycm9yIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogIzIyMjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGkuZmEuZmEtdHJhc2gge1xuICAgICAgICAgICAgY29sb3I6ICNjMGMwYzA7XG4gICAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzk5MDAwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMGFmO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FiYztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMGFmO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3IqPVwiS2V5cG9pbnRzXCJdLFxuICAgIGxhYmVsW2Zvcio9XCJSZXBzXCJdLFxuICAgIGxhYmVsW2Zvcio9XCJDb21wZW5zYXRpb25zXCJdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAtMXB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2FiYztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGZvbnRhd2Vzb21lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICM3ODk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3IqPVwiS2V5cG9pbnRzXCJdOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYxOTInO1xuICAgIH1cbiAgICBsYWJlbFtmb3IqPVwiUmVwc1wiXTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMGNiJztcbiAgICB9XG4gICAgbGFiZWxbZm9yKj1cIkNvbXBlbnNhdGlvbnNcIl06YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjFmZSc7XG4gICAgfVxuXG4gICAgLmNvbXBzIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzY29yZV9ncmVlbjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzY29yZV9ncmVlbjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAmLmZvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NvcmVfcmVkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNjb3JlX3JlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oYXJkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBwdXJwbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuZWRnZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FiYztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNhYmM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmFzc2Vzc21lbnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICYubW9yZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICA+ZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICB9XG4gIH1cblxuICAmLmluZm8tb25seSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcblxuICAgID4ubGlzdC1jb250YWluZXIge1xuICAgICAgPmRpdjpub3QoLnNjcm9sbC1jb250YWluZXIpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+LmJhbm5lciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzljOWM5O1xuICAgIH1cbiAgfVxuXG4gID4ubGlzdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG5cbiAgICA+ZGl2Om5vdCguc2Nyb2xsLWNvbnRhaW5lcikge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyBcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtaW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICA+YSB7XG4gICAgICAgICAgPnNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICAgID5idXR0b24ge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhlYWRlci1yb3cge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICA+LnNjcm9sbC1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIFxuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyBcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICBcbiAgICAgICAgLmxpc3QtaW5mbyB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgICAgJi5hY3Rpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNjBweDtcbiAgICAgICAgICAgID5idXR0b24ge1xuICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+Lm5vLWRhdGEge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG5cbiAgLmluZm8tY29sdW1uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgbWluLXdpZHRoOiAyNDBweDtcblxuICAgID4uaW5mby1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogOHB4OyBcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG5cbiAgICAgID4uYmFubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtYXJnaW46IDhweCAwcHg7IFxuICAgICAgICBtaW4taGVpZ2h0OiAzNXB4OyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgICAgIH1cblxuICAgICAgPmRpdjpub3QoLmJhbm5lcikge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgID5kaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgfVxuICAgICAgICA+ZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgfVxuICAgICAgICAmLnN0YXRlLWluZm8ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby1jb250YWluZXIgKyAuaW5mby1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cblxuICAubWVkaWEtY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gIH1cblxuICAudmlkZW8tY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgPnZpZGVvLFxuICAgID5jYW52YXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyBDYXAgYnkgdmlld3BvcnQgaGVpZ2h0IHNvIHRhbGwvcG9ydHJhaXQgdmlkZW9zIHN0YXkgaW5zaWRlIHRoZSB2aXNpYmxlXG4gICAgICAvLyBhcmVhOyBhdXRvIHdpZHRoL2hlaWdodCBwcmVzZXJ2ZXMgdGhlIGludHJpbnNpYyBhc3BlY3QgcmF0aW8uXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTYwcHgpO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnZpZGVvLXBsYXktb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLy8gTGV0IHRoZSBjbGljayBmYWxsIHRocm91Z2ggdG8gdGhlIGNhbnZhcywgd2hpY2ggb3ducyBwbGF5L3BhdXNlLlxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICYuaXMtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogODRweDtcbiAgICAgICAgaGVpZ2h0OiA4NHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAzOHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRldGFpbC1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLnRhYmxlLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAuZGV0YWlsLXRhYmxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICA+ZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICAgJi5oZWFkZXIge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLml0ZW1zIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGFkYWRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmV4ZXJjaXNlLXRhYmxlIHtcbiAgICAgIG1pbi13aWR0aDogNzAwcHg7XG4gICAgfVxuXG4gICAgLmV4ZXJjaXNlLWxpc3Qge1xuICAgICAgJi5pdGVtcyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICAgIH1cblxuICAgICAgPi5uYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguNik7XG4gICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgPi5zdGF0dXMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KC40KTtcbiAgICAgICAgbWluLXdpZHRoOiAxMTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA+LnJlYXNvbmluZyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMS40KTtcbiAgICAgICAgbWluLXdpZHRoOiAzNDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgPi5hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICA+YnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAucmVhc29uLWVudHJ5ICsgLnJlYXNvbi1lbnRyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkbGlnaHRfZ3JleTtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1zb3VyY2Uge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDRlbTtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24tcmVhc29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24td2FybmluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJHllbGxvdywgMjIlKTtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1tdXRlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBjb2xvcjogJGdyZXk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lYXN1cmVtZW50LWxpc3Qge1xuICAgICAgJi5oZWFkZXIge1xuICAgICAgICAubmFtZSB+IGRpdiB7XG4gICAgICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+Lm5hbWUge1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLm5hbWUgfiBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gIFxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NvcmVfZ3JlZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzY29yZV9ncmVlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJi5pbmFjdGl2ZSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaW5hY3RpdmU6bm90KC5mb3VuZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMGMwYzA7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzBjMGMwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb3VuZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjb3JlX3JlZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRzY29yZV9yZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXhlcmNpc2Utc3RhdHVzIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICA+ZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzBjMGMwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xuXG4gICAgICAgICYucGVuZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjk2ZFxuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICYubWFudWFsIHsgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgICAgICAmLnBlbmRpbmcgeyBjb2xvcjogI2VmZWZlZjsgfVxuICAgICAgICAgICYuY29tcGxldGUgeyBjb2xvcjogIzJkNmIxZDsgfVxuICAgICAgICAgICYuYWJvcnRlZCB7IGNvbG9yOiAjMmQxODE4OyB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVhc3VyZW1lbnQtc2F2ZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICA+YnV0dG9uIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvLyBQcm9ncmFtcyBwYWdlIGNhcmQgZ3JpZCAoLyMvcHJvZ3JhbXMvOmF0aGxldGVJZCkgLSByZXBsYWNlcyB0aGUgbGVnYWN5XG4vLyAuY2F0YWxvZy1oaXN0b3J5IHRhYmxlLiBVc2VzIHJlYWwgZmxleC9ncmlkIHJhdGhlciB0aGFuIHRoZSByb3ctY29udGFpbmVyIG1peGlucy5cblxuJHByb2dyYW0tY2FyZC10aXRsZTogIzFmMWYyODtcbiRwcm9ncmFtLWNhcmQtdGFnLWJnOiAjZjJmMmY0O1xuJHByb2dyYW0tY2FyZC1oaXN0b3J5LXRodW1iLWJnOiAjZDlkOWQ5O1xuJHByb2dyYW0tY2FyZC1ub3RpY2UtYmc6ICNmZGY4ZWM7XG4kcHJvZ3JhbS1jYXJkLW5vdGljZS1ib3JkZXI6ICNmMmUzYmQ7XG4kcHJvZ3JhbS1jYXJkLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1jYXJkLWNoaXAtb2ZmOiAjYzRjNGM4O1xuXG4vLyBEZWxpYmVyYXRlbHkgbm90IC53aGl0ZWJvYXJkLy5jb2x1bW4tY29udGFpbmVyIC0gLndoaXRlYm9hcmQgZm9yY2VzIG1pbi13aWR0aDogNjQwcHgsXG4vLyB3aGljaCB3b3VsZCBkZWZlYXQgdGhlIGdyaWQncyBtb2JpbGUgcmVmbG93LlxuLy8gUGFpbnRzIHRoZSBwYWdlIGJhY2tncm91bmQgZWRnZSB0byBlZGdlIGFuZCBjZW50ZXJzIGl0cyBzaW5nbGUgY2hpbGQsIHNvIHRoZSBjYXRhbG9nXG4vLyBhbmQgcHJvZ3JhbSBkZXRhaWwgcGFuZXMgY2FuIGNhcCB0aGVpciB3aWR0aCB3aXRob3V0IGxlYXZpbmcgYSBncmV5IGNvbHVtbiBzdHJhbmRlZFxuLy8gb24gdGhlIHdoaXRlIC52aWV3LWxheW91dC4gTm8gZWZmZWN0IG9uIHRoZSBjYXJkIGdyaWQsIHdoaWNoIGhhcyBubyBtYXgtd2lkdGguXG4ucHJvZ3JhbXMtcGFnZS1ob3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnByb2dyYW1zLXBhZ2Uge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMjRweCAzMnB4IDQ4cHg7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICAvLyBEbyBub3Qgc2V0IGhlaWdodDogYXV0byBoZXJlIC0gaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cblxuICAvLyBFdmVyeSBjb250cm9sIG9uIHRoaXMgcGFnZSBzdGFuZHMgNDBweC4gVGhlIGdsb2JhbCBidXR0b24geyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gIC8vIGluIF9iYXNlLnNjc3Mgc2V0cyBgaGVpZ2h0YCwgd2hpY2ggdGhlIGAucHJvZ3JhbXMtcGFnZSBidXR0b25gIHJlc2V0IGFib3ZlIGRvZXNcbiAgLy8gTk9UIGNsZWFyIChpdCBvbmx5IGRyb3BzIG1pbi1oZWlnaHQgLyBtYXgtaGVpZ2h0KSwgc28gZWFjaCBvZiB0aGVzZSBuZWVkcyB0aGVcbiAgLy8gaGVpZ2h0IHN0YXRlZCBvdXRyaWdodCAtIHBhZGRpbmcgYWxvbmUgbmV2ZXIgd2lucyBhZ2FpbnN0IGl0LlxuICAmX19jYXRhbG9nLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgLy8gUmVhZHMgYXMgYW4gb3V0bGluZSBidXR0b24gbGlmdGVkIG9mZiB0aGUgcGFnZSByYXRoZXIgdGhhbiBhIHdoaXRlIGNhcmQgb24gZ3JleS5cbiAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJl9fdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAmX190YWItY291bnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAyMnB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhcmQtdGFnLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX190YWItLWFjdGl2ZSAmX190YWItY291bnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG5cbiAgJl9fbm90aWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC1ub3RpY2UtYmc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByb2dyYW0tY2FyZC1ub3RpY2UtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgIC8vIE9wdGljYWwgYWxpZ25tZW50IGFnYWluc3QgdGhlIHRleHQsIHNldCBieSBleWUgLSBjZW50ZXJpbmcgdGhlIGJveGVzIHNpdHNcbiAgICAvLyB0aGUgZ2x5cGggbG93IGFnYWluc3QgdGhlIGNhcCBoZWlnaHQgb2YgdGhlIDE2LzIwIGxhYmVsLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cblxuICAmX19ub3RpY2UtdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgJl9fbm90aWNlLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gV2l0aG91dCB0aGlzIGl0IGluaGVyaXRzIHRoZSBnbG9iYWwgNTBweCBhbmQgb3ZlcmZsb3dzIHRoZSA0NHB4IG5vdGljZSBiYXIuXG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAzNjFweCk7XG4gICAgZ2FwOiAyNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWdyaWQge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOTZweCAyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNGY0ZjRmO1xuICB9XG5cbiAgJl9fZW1wdHkgLnByb2dyYW1zLXBhZ2VfX2NhdGFsb2ctYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS10YWJsZS13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gICZfX2hpc3RvcnktdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogNjQwcHg7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG5cbiAgJl9faGlzdG9yeS10aCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYtLW5hbWUge1xuICAgICAgd2lkdGg6IDM4JTtcbiAgICB9XG5cbiAgICAmLS1kYXRlIHtcbiAgICAgIHdpZHRoOiAxNiU7XG4gICAgfVxuXG4gICAgJi0tY3JlYXRlZCB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3Rvcnktc29ydCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBGaWdtYSBzb3J0IGdseXBoOiBkb3duIGFycm93IChsZWZ0KSArIHVwIGFycm93IChyaWdodCkuIFRoZSBhcnJvdyBtYXRjaGluZ1xuICAvLyB0aGUgYWN0aXZlIHNvcnQgZGlyZWN0aW9uIHR1cm5zIHB1cnBsZTsgYm90aCBzdGF5IGdyZXkgb3RoZXJ3aXNlLlxuICAmX19oaXN0b3J5LXNvcnQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuXG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiAkYmxhY2stNjAwO1xuICAgIH1cblxuICAgICYtLWFzYyAucHJvZ3JhbXMtcGFnZV9faGlzdG9yeS1zb3J0LXVwLFxuICAgICYtLWRlc2MgLnByb2dyYW1zLXBhZ2VfX2hpc3Rvcnktc29ydC1kb3duIHtcbiAgICAgIGZpbGw6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3Rvcnktcm93IHtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3RvcnktdGQge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgJi0tbmFtZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmLS1kYXRlIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIH1cblxuICAgICYtLWNyZWF0ZWQge1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgYmxvY2sgLSBjb21wbGV0ZWQgcHJvZ3JhbXMgbm8gbG9uZ2VyIHJlbmRlciBhIHRodW1ibmFpbCBpbWFnZS5cbiAgJl9faGlzdG9yeS10aHVtYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXJkLWhpc3RvcnktdGh1bWItYmc7XG4gIH1cblxuICAmX19oaXN0b3J5LXNrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICB9XG5cbiAgJl9faGlzdG9yeS1za2VsZXRvbi1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19oaXN0b3J5LXNrZWxldG9uLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS1uYW1lIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19oaXN0b3J5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZ2VucmUge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgIC8vIFRoZSBtb2JpbGUgbGlzdCBpcyBhIHN0YWNrIG9mIHNlcGFyYXRlIGNhcmRzLCBzbyB0aGUgY291bnQgbGluZSBmbG9hdHMgYmVuZWF0aFxuICAgIC8vIHRoZW0gaW5zdGVhZCBvZiBjbG9zaW5nIG9mZiBhIGJvcmRlcmVkIHRhYmxlIGJveC5cbiAgICAmLS1jYXJkcyB7XG4gICAgICBwYWRkaW5nOiA0cHggNHB4IDA7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDb21wbGV0ZWQgdGFiLCBtb2JpbGUuIFJlbmRlcmVkIG9ubHkgdW5kZXIgbmctaWY9XCJ2bS5pc01vYmlsZVwiICg8PSA3NjhweCksXG4gIC8vIHNvIHRoZXNlIHJ1bGVzIGRlbGliZXJhdGVseSBsaXZlIG91dHNpZGUgYSBtZWRpYSBxdWVyeS5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2hpc3RvcnktY2FyZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19oaXN0b3J5LXNvcnRiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBMb2NhbGl6ZWQgbGFiZWxzIChcIlN0YXJ0IERhdHVtXCIgLyBcIkVuZGRhdHVtXCIpIGNhbiBvdXRncm93IGEgMzIwcHggdmlld3BvcnQ7XG4gICAgLy8gc2Nyb2xsIHRoZSBjaGlwcyByYXRoZXIgdGhhbiB3cmFwcGluZyB0aGVtIG9udG8gYSBzZWNvbmQgcm93LlxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIH1cblxuICAmX19oaXN0b3J5LWNoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBTaGFwZSBkZWxpYmVyYXRlbHkgbWlycm9ycyAucHJvZ3JhbXMtcGFnZV9fdGFiIGFib3ZlIC0gc2FtZSA2cHggcmFkaXVzLCBib3JkZXJcbiAgICAvLyBhbmQgdHlwZSAtIHNvIHRoZSBzb3J0IHJvdyByZWFkcyBhcyBhIHNpYmxpbmcgb2YgdGhlIEN1cnJlbnQvQ29tcGxldGVkIHRhYnNcbiAgICAvLyByYXRoZXIgdGhhbiBhcyBhIGRpZmZlcmVudCBraW5kIG9mIGNvbnRyb2wuXG4gICAgLy8gVGhlIGdsb2JhbCBidXR0b24geyBsb2NrLWhlaWdodCg1MHB4KSB9IHNldHMgYGhlaWdodGAsIHdoaWNoIHRoZVxuICAgIC8vIGAucHJvZ3JhbXMtcGFnZSBidXR0b25gIHJlc2V0IGRvZXMgTk9UIG5ldXRyYWxpemUgKGl0IG9ubHkgY2xlYXJzIG1pbi1oZWlnaHQgL1xuICAgIC8vIG1heC1oZWlnaHQpLiBXaXRob3V0IGFuIGV4cGxpY2l0IGhlaWdodCB0aGVzZSByZW5kZXIgNTBweCB0YWxsLlxuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIE1hdGNoZXMgdGhlIGFjdGl2ZSB0cmVhdG1lbnQgb24gLnByb2dyYW1zLXBhZ2VfX3RhYiBhYm92ZS5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3RvcnktY2hpcC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAmX19oaXN0b3J5LWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTYsIDI0LCA0MCwgMC4wNCk7XG4gIH1cblxuICAmX19oaXN0b3J5LWNhcmQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgZmxleCBpdGVtIHJlZnVzZXMgdG8gc2hyaW5rIGFuZCBsb25nIHRpdGxlcyBwdXNoIHRoZSBjYXJkIHdpZGUuXG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gVHdvIGxpbmVzIG1heCwgc28gYSA2MC1jaGFyYWN0ZXIgcHJvZ3JhbSBuYW1lIGNhbm5vdCBtYWtlIG9uZSBjYXJkIHRocmVlIHRpbWVzXG4gIC8vIHRoZSBoZWlnaHQgb2YgaXRzIG5laWdoYm91cnMuXG4gICZfX2hpc3RvcnktY2FyZCAmX19oaXN0b3J5LXRpdGxlIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19oaXN0b3J5LWRhdGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweCAyNHB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZGF0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFRoZSA8dGhlYWQ+IGlzIGdvbmUgb24gbW9iaWxlLCBzbyBlYWNoIHZhbHVlIGNhcnJpZXMgaXRzIG93biBsYWJlbC5cbiAgJl9faGlzdG9yeS1kYXRlLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZGF0ZS12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cbn1cblxuLnByb2dyYW0tY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzNjFweDtcbiAgLy8gMzQ4IHBlciBGaWdtYS4gVGhlIGJvZHkgZ2V0cyAxOTQgb2YgdGhhdCAoMzQ4IC0gMiBib3JkZXIgLSAxNTIgbWVkaWEpLCB3aGljaCB0aGVcbiAgLy8gdGFsbGVzdCB2YXJpYW50IC0gdW5zY2hlZHVsZWQsIDMgbWV0YSByb3dzIC0gc3BlbmRzIGFzIDI0IHBhZGRpbmcgKyAyMCB0aXRsZSArXG4gIC8vIDIwIHRhZ3MgKyA1NiBtZXRhICsgNDggYWN0aW9ucyArIDI0IGdhcHMgPSAxOTIuIFRyaW1taW5nIGFueSBvZiB0aGUgcm93cyBiZWxvd1xuICAvLyBpcyB3aGF0IGtlZXBzIF9fbWV0YSBmcm9tIHNocmlua2luZyBhbmQgY2xpcHBpbmcgaXRzIGxhc3QgbGluZS5cbiAgaGVpZ2h0OiAzNDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAmX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMTUycHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDtcbiAgfVxuXG4gICZfX2JhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMnB4O1xuICAgIGxlZnQ6IDEycHg7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjJlZGZjO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzUzM2Q4MjtcbiAgfVxuXG4gICZfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gICZfX21lbnUtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhcmQtdGFnLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtbGlzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNiwgMjQsIDQwLCAwLjEyKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fbWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogI2YwNDQzODtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZlZjNmMjtcbiAgICAgIGNvbG9yOiAjZjA0NDM4O1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtaXRlbS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cblxuICAmX190YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190YWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDRweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC10YWctYmc7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RhZy1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAmLS1pbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIC8vIDRweCBnYXAgLT4gMjBweCByb3cgcGl0Y2gsIG1hdGNoaW5nIHRoZSBGaWdtYSBtZXRhIHN0YWNrLlxuICAgIGdhcDogNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX21ldGEtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gUHJhY3RpdGlvbmVyIG5hbWVzIGNvbWUgZnJvbSB0aGUgQVBJIGFuZCBydW4gdG8gYW55IGxlbmd0aCwgc28gdGhlIG5hbWUgaXMgdGhlIHBhcnRcbiAgLy8gdGhhdCBnaXZlczogaXQgdHJ1bmNhdGVzIChmdWxsIHRleHQgc3RheXMgaW4gdGhlIHRpdGxlIGF0dHJpYnV0ZSkgcmF0aGVyIHRoYW4gcHVzaGluZ1xuICAvLyB0aGUgYXNzaWdubWVudCBkYXRlIG9mZiB0aGUgY2FyZCBvciB3cmFwcGluZyB0aGUgcm93IGFuZCBjbGlwcGluZyB0aGUgcm93cyB1bmRlciBpdC5cbiAgJl9fbWV0YS1uYW1lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbWV0YS1kYXRlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbWV0YS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuXG4gICAgJi0taW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgIC8vIElubGluZSBTVkcgKHBlcnNvbiBnbHlwaCBzaGFyZWQgd2l0aCB0aGUgbmF2IGJhcikgc2l0cyBvbiB0aGUgc2FtZSAxNHB4IHJhaWxcbiAgICAvLyBhcyB0aGUgaW1hZ2UgaWNvbnMgYWJvdmUuXG4gICAgJi0tc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX21ldGEtZG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW46IDAgLTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtY2hpcC1vZmY7XG4gIH1cblxuICAmX19zY2hlZHVsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIH1cblxuICAmX19zY2hlZHVsZS1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLXRpdGxlO1xuICB9XG5cbiAgJl9fZGF5cyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gICZfX2RheSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC1jaGlwLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC1jaGlwLW9mZjtcblxuICAgICYtLW9uIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gIH1cblxuICAmX19jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHggMCAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG5cbiAgICAmLS1naG9zdCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgY29sb3I6ICRibHVlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJi0tc2tlbGV0b24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLnByb2dyYW0tY2FyZF9fbWVkaWEge1xuICAgICAgYmFja2dyb3VuZDogI2VjZWNlZjtcbiAgICAgIGFuaW1hdGlvbjogaG9tZS1za2VsZXRvbi1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi10YWcge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogNzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1tZXRhIHtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDU4JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1jdGEge1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAucHJvZ3JhbXMtcGFnZSB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDQwcHg7XG5cbiAgICAmX19ncmlkIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzYxcHgpO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyYW1zLXBhZ2Uge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAmX19jYXRhbG9nLWJ0biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBCb3RoIHRhYnMgc3RheSBvbiBvbmUgcm93LiBUaGV5IHNoYXJlIHRoZSB3aWR0aCBhbmQgc2hyaW5rIHRoZWlyIG93biBsYWJlbHNcbiAgICAvLyByYXRoZXIgdGhhbiB3cmFwcGluZyB0aGUgc2Vjb25kIHRhYiBvbnRvIGEgbGluZSBvZiBpdHMgb3duLlxuICAgICZfX3RhYnMge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgLy8gZmxleC1iYXNpczogYXV0byBzbyB0aGUgbG9uZ2VyIGxhYmVsIChcIkNvbXBsZXRlZCBQcm9ncmFtc1wiKSBrZWVwcyBhXG4gICAgICAvLyBwcm9wb3J0aW9uYWxseSB3aWRlciBzaGFyZSBpbnN0ZWFkIG9mIGJlaW5nIGZvcmNlZCBpbnRvIGFuIGVxdWFsIGhhbGYuXG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIGxhYmVsIGlzIHdoYXQgZ2l2ZXM7IHRoZSBjb3VudCBiYWRnZSBuZXZlciBzaHJpbmtzLiBBdCAzNzVweCBib3RoIGxhYmVsc1xuICAgIC8vIGZpdCBvdXRyaWdodCwgYW5kIGJlbG93IHRoYXQgdGhleSBlbGxpcHNpcyBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIHJvdyB3aWRlLlxuICAgICZfX3RhYi1sYWJlbCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX3RhYi1jb3VudCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgICZfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNjFweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDU2cHggMTZweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUb2FzdCAodGVtcGxhdGVzL3Byb2dyYW1fY2FyZHMuaHRtbCAtPiBQcm9ncmFtQ29udHJvbGxlci5fc2hvd1RvYXN0KS5cbi8vIFNhbWUgYmFyIGFzIHRoZSBwcm9maWxlIHNhdmUgdG9hc3QgKC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0KTogNDRweCwgIzM1MzU0Yixcbi8vIDRweCBjb3JuZXJzLCAzMnB4IGdhcHMsIHNhbWUgY2hlY2sgYW5kIGNsb3NlIGljb25zIC0gdGhlIGNoZWNrIG9ubHkgb24gdGhlXG4vLyBzY2hlZHVsZS1jb25maXJtYXRpb24gdmFyaWFudC4gVGhlIGFuY2hvcmluZyBkaWZmZXJzOiB0aGF0IG9uZSBoYW5ncyBvZmYgdGhlXG4vLyBwcm9maWxlIGNhcmQsIHRoaXMgb25lIGlzIGZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0IHNvXG4vLyAucHJvZ3JhbXMtcGFnZSdzIG93biBzY3JvbGwgY29udGFpbmVyLCB3aGljaCB0aGUgZ3JpZCBsaXZlcyBpbiwgY2Fubm90IGNhcnJ5XG4vLyBpdCBvZmYgc2NyZWVuLlxuLy9cbi8vIEhvcml6b250YWxseSBpdCBpcyBjZW50cmVkIG9uIHRoZSBjb250ZW50IGNvbHVtbiByYXRoZXIgdGhhbiB0aGUgdmlld3BvcnQsIHNvXG4vLyBpdCBsaW5lcyB1cCB3aXRoIHRoZSBwYWdlIGJvZHkgYW5kIHRoZSBzaXRlIGZvb3RlciAodmlld3MvcHJvZ3JhbXMuaHRtbCAtPlxuLy8gLmZvb3Rlci1jb250ZW50LCB3aGljaCB0aGUgc2lkZWJhciBydWxlIGluIF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIGJ5IHRoZVxuLy8gcmFpbCB3aWR0aCkuIHBvc2l0aW9uOiBmaXhlZCByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydCwgc28gdGhlIHJhaWwgd2lkdGhcbi8vIGhhcyB0byBiZSBhZGRlZCBiYWNrIGJ5IGhhbmQ7IHRoZSB0d28gc2NvcGVkIHJ1bGVzIGJlbG93IGRvIHRoYXQgdXNpbmcgdGhlIHNhbWVcbi8vIDpoYXMoKSBjb25kaXRpb25zIHRoYXQgZHJpdmUgdGhlIGNvbnRlbnQgbWFyZ2luLCBzbyBwYWdlcyB3aXRob3V0IGEgcmFpbCBhbmRcbi8vIHRoZSBjb2xsYXBzZWQgcmFpbCBib3RoIHN0YXkgY29ycmVjdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wcm9ncmFtcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAzMnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLy8gT3ZlciB0aGUgcGFnZSBhbmQgaXRzIHN0aWNreSBoZWFkZXI7IGJlbG93IC5tb2RhbC12aWV3ICgxMDAwKSwgd2hpY2ggaXMgZ29uZVxuICAvLyBieSB0aGUgdGltZSB0aGlzIHNob3dzIGJ1dCBtdXN0IHN0aWxsIHdpbiBpZiB0aGUgdHdvIGV2ZXIgb3ZlcmxhcC5cbiAgei1pbmRleDogOTAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMzJweDtcbiAgLy8gRml4ZWQgNDRweCwgcGVyIHRoZSBkZXNpZ24uIFRoZSBtZXNzYWdlIGVsbGlwc2lzZXMgcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHNvXG4gIC8vIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IGdyb3cgdGhlIGJhciBpbnRvIGEgc2Vjb25kIGxpbmUuXG4gIGhlaWdodDogNDRweDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgcGFkZGluZzogOHB4IDhweCA4cHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiAkc2lkZWJhci10aXRsZTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xufVxuXG4vLyBSYWlsIHByZXNlbnQ6IHNoaWZ0IHRoZSBjZW50cmUgcmlnaHQgYnkgaGFsZiB0aGUgcmFpbCwgYW5kIHRha2UgdGhlIHJhaWwgb3V0IG9mXG4vLyB0aGUgd2lkdGggY2FwIHNvIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IHJ1biBvZmYgdGhlIHJpZ2h0IGVkZ2UuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAvIDIpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRhdGhsZXRlLXNpZGViYXItd2lkdGh9IC0gMzJweCk7XG59XG5cbi8vIENvbGxhcHNlZCByYWlsLiBXaW5zIG92ZXIgdGhlIHJ1bGUgYWJvdmUgb24gc3BlY2lmaWNpdHkgYWxvbmUgKG9uZSBtb3JlIGNsYXNzXG4vLyBpbnNpZGUgdGhlIDpoYXMoKSksIG1hdGNoaW5nIGhvdyB0aGUgbWFyZ2luLWxlZnQgcGFpciBpbiBfYXRobGV0ZV9zaWRlYmFyLnNjc3Ncbi8vIGlzIGxheWVyZWQuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAucHJvZ3JhbXMtdG9hc3Qge1xuICBsZWZ0OiBjYWxjKDUwJSArICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC8gMik7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC0gMzJweCk7XG59XG5cbi5wcm9ncmFtcy10b2FzdCB7XG5cbiAgLy8gVGhlIDMycHggZmxleCBnYXAgaXMgdGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgbWVzc2FnZSBhbmQgdGhlIGNsb3NlIGJ1dHRvbjtcbiAgLy8gdGhlIGNoZWNrIHNpdHMgdGlnaHQgYWdhaW5zdCBpdHMgb3duIG1lc3NhZ2UgaW5zdGVhZCwgc28gaXQgcHVsbHMgdGhhdCBnYXBcbiAgLy8gYmFjayBkb3duIHRvIDEycHggKDE2cHggb24gbW9iaWxlLCB3aGVyZSB0aGUgYmFzZSBnYXAgaXMgMTZweCkuXG4gICZfX2NoZWNrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbiAgLy8gU2l0cyBpbnNpZGUgLnByb2dyYW1zLXBhZ2UsIHNvIHRoZSBlbGVtZW50LWxldmVsIGJ1dHRvbiBjaHJvbWUgKGxvY2staGVpZ2h0XG4gIC8vIDUwcHgsIG1pbi13aWR0aCAxMTBweCwgYm9yZGVyLCB1cHBlcmNhc2UpIGlzIGFscmVhZHkgaGFsZi1uZXV0cmFsaXplZCB0aGVyZTtcbiAgLy8gdGhlIHJlc3QgaXMgdW5kb25lIGhlcmUuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmFtcy10b2FzdCB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICAgIGdhcDogMTZweDtcblxuICAgICZfX2NoZWNrIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgcmFpbCBnb2VzIG9mZi1jYW52YXMgaGVyZSBhbmQgdGhlIGNvbnRlbnQgc3BhbnMgdGhlIGZ1bGwgd2lkdGgsIHNvIHRoZVxuICAvLyB0b2FzdCBpcyBjZW50cmVkIG9uIHRoZSB2aWV3cG9ydCBhZ2Fpbi4gQm90aCBzY29wZWQgc2VsZWN0b3JzIGFyZSByZXBlYXRlZFxuICAvLyBiZWNhdXNlIGVhY2ggb3V0LXNwZWNpZmllcyBhIGJhcmUgLnByb2dyYW1zLXRvYXN0LlxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkgLnByb2dyYW1zLXRvYXN0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWxldGUgY29uZmlybWF0aW9uICh0ZW1wbGF0ZXMvbW9kYWxfcHJvZ3JhbV9kZWxldGUuaHRtbCwgb3BlbmVkIHZpYVxuLy8gTW9kYWxTZXJ2aWNlLm9wZW4gKyBDb25maXJtQ29udHJvbGxlciBmcm9tXG4vLyBQcm9ncmFtQ29udHJvbGxlci5kZWxldGVBdGhsZXRlUHJvZ3JhbSkuXG4vL1xuLy8gT3duIHJvb3QgY2xhc3MgcmF0aGVyIHRoYW4gLm1vZGFsLWNvbnRhaW5lciwgc28gbm9uZSBvZiB0aGUgbGVnYWN5IG1vZGFsXG4vLyBjaHJvbWUgYXBwbGllcyAtIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIGxvYWRzIGFmdGVyIHRoaXMgYnVuZGxlIGFuZCBzZXRzXG4vLyBgLm1vZGFsLWNvbnRhaW5lciBoZWFkZXIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VCRUJFQiAhaW1wb3J0YW50IH1gLFxuLy8gd2hpY2ggbm8gc3BlY2lmaWNpdHkgaGVyZSBjYW4gdW5kbywgcGx1cyBwYWRkaW5nIGFuZCBqdXN0aWZ5LWNvbnRlbnQgb24gdGhlXG4vLyBjb250YWluZXIvZm9vdGVyLiBTaWRlc3RlcHBpbmcgdGhlIGVsZW1lbnQgc2VsZWN0b3JzIGlzIHRoZSBvbmx5IHN0YWJsZSBmaXguXG4vLyBQcmVjZWRlbnQ6IC50b2RheS1leGl0LCAubWVpLW1vZGFsLCAuYm10LW1vZGFsLCAud2NyLW1vZGFsLlxuLy9cbi8vIC5tb2RhbCAodGhlIHRyYW5zY2x1c2lvbiB3cmFwcGVyKSBzdGlsbCBjb250cmlidXRlcyBtaW4taGVpZ2h0OiAxMDBweCBhbmQsIG9uXG4vLyBtb2JpbGUsIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkuIEJvdGggYXJlIGhhcm1sZXNzIGF0IHRoaXMgc2l6ZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3JhbS1kZWxldGUtd2lkdGg6IDUxMnB4O1xuJHByb2dyYW0tZGVsZXRlLWd1dHRlcjogMzJweDtcbiRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW46IDE2cHg7XG5cbi5wcm9ncmFtLWRlbGV0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gRmlnbWE6IDUxMngxNTYuIFRoZSBoZWlnaHQgaXMgdGhlIHN1bSBvZiB0aGUgYm94IGJlbG93IHJhdGhlciB0aGFuIGEgZml4ZWRcbiAgLy8gdmFsdWUsIHNvIGEgd3JhcHBlZCB0aXRsZSBncm93cyB0aGUgY2FyZCBpbnN0ZWFkIG9mIGNsaXBwaW5nOlxuICAvLyAzMiBwYWQgKyAyOCB0aXRsZSArIDI0IGdhcCArIDQ4IGJ1dHRvbnMgKyAyNCBwYWQgPSAxNTYuXG4gIHdpZHRoOiAkcHJvZ3JhbS1kZWxldGUtd2lkdGg7XG4gIC8vIC5tb2RhbCBpcyBhIGNvbnRlbnQtc2l6ZWQgZmxleCBpdGVtIGluc2lkZSAubW9kYWwtdmlldywgc28gYSBwZXJjZW50YWdlXG4gIC8vIG1heC13aWR0aCBoYXMgbm8gZGVmaW5pdGUgcGFyZW50IHdpZHRoIHRvIHJlc29sdmUgYWdhaW5zdCBhbmQgdGhlIGNhcmQgd291bGRcbiAgLy8ga2VlcCBpdHMgNTEycHggb24gYSBwaG9uZSwgb3ZlcmZsb3dpbmcgdGhlIChvdmVyZmxvdzogaGlkZGVuKSB2aWV3cG9ydC4gQVxuICAvLyB2aWV3cG9ydCB1bml0IGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIGl0LlxuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIHBhZGRpbmc6ICRwcm9ncmFtLWRlbGV0ZS1ndXR0ZXIgJHByb2dyYW0tZGVsZXRlLWd1dHRlciAyNHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4yNCk7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI4cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgNDBweCAwIDA7IC8vIGtlZXBzIHRoZSBxdWVzdGlvbiBjbGVhciBvZiB0aGUgY2xvc2UgYnV0dG9uXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweCAtIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSA0OHB4IGhlcmUuXG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgIC8vIFRoZSBGaWdtYSB3aWR0aHMgYXJlIHRoZSBsYWJlbHMgYXQgdGhlaXIgZ2l2ZW4gcGFkZGluZzsgbWluLXdpZHRoIHJhdGhlclxuICAgIC8vIHRoYW4gd2lkdGggc28gYSBsb25nZXIgbGFiZWwgd2lkZW5zIHRoZSBidXR0b24gaW5zdGVhZCBvZiBvdmVyZmxvd2luZyBpdC5cbiAgICAmLS1naG9zdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDg4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBtaW4td2lkdGg6IDk0cHg7XG4gICAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3JhbS1kZWxldGUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICB0b3A6IDE2cHg7XG4gICAgICByaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIENhdGFsb2cgcGFnZSAoLyMvcHJvZ3JhbXMvOmF0aGxldGVJZCwgdm0uY2F0YWxvZ09wZW4pLiBSZXBsYWNlcyB0aGUgb2xkXG4vLyAuY2F0YWxvZ19uYXYgc2xpZGUtb3Zlci4gTm90ZSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MgaXMgYSBkaWZmZXJlbnQgdGhpbmcgZW50aXJlbHkgLVxuLy8gaXQgc3R5bGVzIHRoZSBwcm9ncmFtICpkZXRhaWwqIHBhbmUgKC5jYXRhbG9nLXNlbGVjdGVkKS5cblxuJHByb2dyYW0tY2F0YWxvZy10aXRsZTogIzFmMWYyODtcbiRwcm9ncmFtLWNhdGFsb2ctZmlsdGVyLXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAwLjA1KTtcbiRwcm9ncmFtLWNhdGFsb2ctY2hpcC1iZzogI2YyZjJmNDtcbiRwcm9ncmFtLWNhdGFsb2ctbWVkaWEtYmc6ICNkOWQ5ZDk7XG4kcHJvZ3JhbS1jYXRhbG9nLWhlYWRlci1iZzogI2Y3ZjdmODtcbiRwcm9ncmFtLWNhdGFsb2ctYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ6ICMxNzk0NWE7XG5cbi5wcm9ncmFtLWNhdGFsb2cge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NDhweDtcbiAgcGFkZGluZzogMjRweCAzMnB4IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICAvLyBEbyBub3Qgc2V0IGhlaWdodDogYXV0byBoZXJlIC0gaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFNhbWUgc3RvcnkgZm9yIGlucHV0W3R5cGU9dGV4dF0gaW4gX2Jhc2Uuc2NzcyAoMXB4IHNvbGlkICRncmV5OyByYWRpdXMgMnB4O1xuICAvLyBwYWRkaW5nIDNweCkuIEl0IGlzIGFuIGF0dHJpYnV0ZSBzZWxlY3Rvciwgc28gaXQgb3V0LXNwZWNpZmllcyBhIHNpbmdsZSBjbGFzcyAtXG4gIC8vIHRoZSByZXNldCBoYXMgdG8gYmUgc2NvcGVkIGxpa2UgdGhpcyByYXRoZXIgdGhhbiBsaXZpbmcgb24gX19zZWFyY2gtaW5wdXQuXG4gIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgLy8gLS0gYnJlYWRjcnVtYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19icmVhZGNydW1iIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gICAgfVxuXG4gICAgJi0tY3VycmVudCB7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY3J1bWItc2VwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cblxuICAmX190b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJl9fZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC8vIFdpZHRoIGlzIGludGVudGlvbmFsbHkgaW50cmluc2ljLiBUaGUgc3BlYydzIDg1IC8gMTA3IC8gMTA4cHggYXJlIHdoYXQgRmlnbWFcbiAgLy8gbWVhc3VyZWQgZm9yIE1vdmUgLyBQZXJmb3JtIC8gUmVjb3ZlciwgaS5lLiB0aGUgcmVzdWx0IG9mIHRoZXNlIHBhZGRpbmdzIHBsdXMgZWFjaFxuICAvLyBsYWJlbCAtIGhhcmRjb2RpbmcgdGhlbSB3b3VsZCBjbGlwIGxvbmdlciB0cmFuc2xhdGlvbnMgKGRlOiBcIkVyaG9sZW5cIikuXG4gICZfX2ZpbHRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3gtc2hhZG93OiAkcHJvZ3JhbS1jYXRhbG9nLWZpbHRlci1zaGFkb3c7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmlsdGVyLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIC8vIFJlbmRlcmVkIGFzIGEgbWFzayBzbyB0aGUgU1ZHIGNhbiB0YWtlIHRoZSBhY3RpdmUgY29sb3VyOyBhbiA8aW1nPlxuICAgIC8vIGNhbid0IGJlIHJlY29sb3VyZWQgZnJvbSBDU1MuXG4gICAgJi0taW1nIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2YzZjN2M7XG4gICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAtd2Via2l0LW1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmX19maWx0ZXItLWFjdGl2ZSAmX19maWx0ZXItaWNvbi0taW1nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTm90IC5jYXRhbG9nLXNlYXJjaCBmcm9tIF9jYXRhbG9nX25hdi5zY3NzLCB3aGljaCBsb2NrcyBhIDUwcHggaGVpZ2h0IGFuZFxuICAvLyB0cmFpbHMgYSBncmV5IHJlc2V0IGJ1dHRvbi5cbiAgJl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIxNXB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0taW5saW5lIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDEycHggMjBweDtcbiAgICB9XG4gIH1cblxuICAmX19zZWFyY2gtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc2VhcmNoLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLXRpdGxlO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlYXJjaC1jbGVhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC8vIC0tIGdlbnJlIGdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZ3JvdXBzLFxuICAmX19zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX3NlY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5cbiAgJl9fZ3JvdXAge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYtLW9wZW4ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19ncm91cC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19ncm91cC0tb3BlbiAmX19ncm91cC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhdGFsb2ctaGVhZGVyLWJnO1xuICB9XG5cbiAgLy8gbnVkaXN0YS13ZWIgb25seSBzaGlwcyB3ZWlnaHQgMzAwLzQwMC83MDAgKF90ZW1wLW5ldy5zY3NzOjEyLTUxKS4gQSByZXF1ZXN0IGZvciA2MDBcbiAgLy8gaGFzIG5vIGV4YWN0IGZhY2UsIGFuZCBwZXIgdGhlIENTUyBmb250LW1hdGNoaW5nIHNwZWMgYSB3ZWlnaHQgYWJvdmUgNTAwIHNlYXJjaGVzXG4gIC8vIHVwd2FyZCBmaXJzdCwgbGFuZGluZyBvbiA3MDAgKHRydWUgQm9sZCkgcmF0aGVyIHRoYW4gYSBsaWdodGVyIHN5bnRoZXNpemVkIHNlbWlib2xkLlxuICAvLyA1MDAgaGFzIHRoZSBzYW1lIGdhcCBidXQgc2VhcmNoZXMgdG93YXJkIDQwMCBmaXJzdCwgc28gaXQgcmVuZGVycyBhcyBSZWd1bGFyIGluc3RlYWRcbiAgLy8gb2YganVtcGluZyB0byBCb2xkLiBSZW5kZXJpbmcgdGhlIEZpZ21hLXNwZWNpZmllZCBTZW1pQm9sZCBmb3IgcmVhbCBuZWVkcyBhbiBhY3R1YWxcbiAgLy8gNTAwLzYwMC13ZWlnaHQgTnVkaXN0YSBmaWxlIGFkZGVkIHRvIHRoZSBwcm9qZWN0OyB0aGVyZSBpc24ndCBvbmUgdG8gcG9pbnQgYXQgeWV0LlxuICAmX19ncm91cC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gIH1cblxuICAmX19ncm91cC1jb3VudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDIycHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1jaGlwLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gR2VucmUgbGFiZWwgaW5zaWRlIHRoZSBcIk15IFByb2dyYW1zXCIgLyBcIk15IEV4ZXJjaXNlc1wiIHNlY3Rpb25zLCB3aGljaCBncm91cCBvbmVcbiAgLy8gbGV2ZWwgZGVlcGVyIHRoYW4gdGhlIG1haW4gYWNjb3JkaW9uLlxuICAmX19zdWJncm91cC10aXRsZSB7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGhlaWdodDogYXV0byBwZXIgY29tcG9uZW50IHJhdGhlciB0aGFuIG9uIHRoZSBibGFua2V0IGJ1dHRvbiByZXNldCBhYm92ZSAtXG4gIC8vIGJ1dHRvbntsb2NrLWhlaWdodCg1MHB4KX0gc2V0cyBoZWlnaHQgYXMgd2VsbCBhcyB0aGUgbWluL21heCB1bnN0eWxlLWJ1dHRvblxuICAvLyBjbGVhcnMsIGFuZCBhIHdyYXBwaW5nIHByb2dyYW0gbmFtZSBoYXMgdG8gYmUgYWJsZSB0byBwdXNoIHRoZSByb3cgdGFsbGVyLlxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciBzcXVhcmUgc3RhbmRpbmcgaW4gZm9yIHByb2dyYW0gYXJ0d29yayB1bnRpbCB0aGUgY2F0YWxvZyBBUElcbiAgLy8gcmV0dXJucyByZWFsIGltYWdlcy5cbiAgJl9fdGh1bWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1tZWRpYS1iZztcbiAgfVxuXG4gIC8vIEFic29yYnMgdGhlIGZyZWUgc3BhY2Ugc28gbWV0YSBhbmQgY2hldnJvbiBzaXQgaGFyZCByaWdodCB3aXRob3V0IGF1dG8gbWFyZ2luc1xuICAvLyBjb21wZXRpbmcgZm9yIGl0IC0gcm93cyB3aXRoIGFuZCB3aXRob3V0IG1ldGEgYWxpZ24gaWRlbnRpY2FsbHkuXG4gICZfX21haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gNTAwLCBub3QgNjAwIC0gc2VlIHRoZSBub3RlIG9uICZfX2dyb3VwLXRpdGxlIGFib3ZlLiBNYXRjaGVzIHRoZSB3ZWlnaHQgdGhlIGdyb3VwXG4gIC8vIGhlYWRlciByZW5kZXJzIGF0IHNvIGEgcm93IGRvZXNuJ3QgbG9vayBoZWF2aWVyIHRoYW4gdGhlIGJveCBpdCBleHBhbmRlZCBmcm9tLlxuICAmX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2F0YWxvZy10aXRsZTtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAmX19iYWRnZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1iYWRnZS1iZztcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fbWV0YS1zZXAge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gICZfX3Jvdy1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBmaXJzdC1sb2FkIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNaXJyb3JzIGEgY29sbGFwc2VkICZfX2dyb3VwIHNvIHRoZSByZWFsIGhlYWRlcnMgbGFuZCBpbiB0aGUgc2FtZSBib3hlcy5cbiAgJl9fc2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuXG4gICAgJi0tc2hvcnQge1xuICAgICAgd2lkdGg6IDEyOHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTFweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGFjdGlvbiByb3dzIChSZXN1bWUgRWRpdCAvIENyZWF0ZSAuLi4pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uLWljb24sXG4gICZfX2FjdGlvbi1wbHVzIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fYWN0aW9uLXBsdXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgJl9fYWN0aW9uLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX2FjdGlvbi1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQod2lkZS1kb3duKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA0MHB4O1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJl9fdG9vbGJhciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC8vIExldCB0aGUgbmFtZS9iYWRnZSBhbmQgdGhlIG1ldGEgc3RhY2sgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIHRoZSB0aXRsZSB0byBub3RoaW5nLlxuICAgICZfX21haW4ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLy8gQ2F0YWxvZyByb3dzIGNhcnJ5IGEgdGh1bWIgKyBtZXRhLCBzbyBhdCB0aGlzIHdpZHRoIHRoZSBuYW1lIGdldHMgaXRzIG93blxuICAgIC8vIGZ1bGwtd2lkdGggbGluZSB3aXRoIHRoZSBtZXRhIGJlbmVhdGggaXQgYW5kIHRoZSB0aHVtYiBzcGFubmluZyBib3RoLiBTY29wZWRcbiAgICAvLyB0byBfX2dyb3VwczogdGhlIF9fc2VjdGlvbnMgcm93cyAoTXkgUHJvZ3JhbXMgLyBNeSBFeGVyY2lzZXMpIGhhdmUgbm8gbWV0YSxcbiAgICAvLyBhbmQgdGhlIGV4ZXJjaXNlIG9uZXMgbm8gdGh1bWIsIHNvIHRoZSBmbGV4IHJvdyBhYm92ZSBhbHJlYWR5IGZpdHMgdGhlbS5cbiAgICAmX19ncm91cHMgJl9fcm93IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICd0aHVtYiBtYWluIGNoZXZyb24nXG4gICAgICAgICd0aHVtYiBtZXRhIGNoZXZyb24nO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICByb3ctZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX3RodW1iIHtcbiAgICAgIGdyaWQtYXJlYTogdGh1bWI7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICB9XG5cbiAgICAmX19ncm91cHMgJl9fbWFpbiB7XG4gICAgICBncmlkLWFyZWE6IG1haW47XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX21ldGEge1xuICAgICAgZ3JpZC1hcmVhOiBtZXRhO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICZfX2dyb3VwcyAmX19yb3ctY2hldnJvbiB7XG4gICAgICBncmlkLWFyZWE6IGNoZXZyb247XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIGRldGFpbCBwYW5lICgvIy9wcm9ncmFtcy86YXRobGV0ZUlkIHdpdGggdm0uY3VycmVudFByb2dyYW0gc2V0KS4gUmVwbGFjZXMgdGhlXG4vLyBsZWdhY3kgdHdvLWNvbHVtbiAuY2F0YWxvZy1zZWxlY3RlZCBsYXlvdXQgZnJvbSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MuXG4vL1xuLy8gVGhlIHNlc3Npb24gdGFicywgc2VjdGlvbiBhY2NvcmRpb24gYW5kIGV4ZXJjaXNlIHJvd3MgZGVsaWJlcmF0ZWx5IG1pcnJvclxuLy8gX3Byb2dyYW1fc3VtbWFyeS5zY3NzOjIwMi0zMjAgc28gdGhlIHR3byByZWFkIGFzIHRoZSBzYW1lIGNvbXBvbmVudC4gV29ydGggZm9sZGluZ1xuLy8gaW50byBvbmUgc2hhcmVkIGJsb2NrIGlmIGEgdGhpcmQgcGFnZSBuZWVkcyBpdC5cblxuJHByb2dyYW0tZGV0YWlsLXRpdGxlOiAjMWYxZjI4O1xuJHByb2dyYW0tZGV0YWlsLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1kZXRhaWwtbm90aWNlLWJnOiAjZmZmYWYwO1xuLy8gTWlycm9ycyB0aGUgXCJDdXJyZW50IFByb2dyYW1cIiBiYWRnZSBvbiB0aGUgY2F0YWxvZyBsaXN0IChfcHJvZ3JhbV9jYXRhbG9nX3BhZ2Uuc2NzczoxNy0xOCk7XG4vLyB0aG9zZSB2YXJzIGFyZSBmaWxlLXNjb3BlZCwgc28gdGhlIHZhbHVlcyBhcmUgcmVwZWF0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQuXG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDogIzE3OTQ1YTtcbiRwcm9ncmFtLWRldGFpbC1kYW5nZXI6ICNjNDJhM2I7XG5cbi5wcm9ncmFtLWRldGFpbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLWNhdGFsb2cgc28gdGhlIGNvbnRlbnQgYm94IGRvZXMgbm90IGp1bXAgd2lkdGggd2hlbiBtb3ZpbmdcbiAgLy8gYmV0d2VlbiB0aGUgY2F0YWxvZyBhbmQgYSBwcm9ncmFtLCB3aGljaCBhcmUgYWRqYWNlbnQgc3RlcHMgaW4gb25lIGZsb3cuXG4gIG1heC13aWR0aDogODQ4cHg7XG4gIHBhZGRpbmc6IDI0cHggMzJweCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfS5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyAtLSBicmVhZGNydW1iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2JyZWFkY3J1bWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICB9XG5cbiAgICAmLS1jdXJyZW50IHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jcnVtYi1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaXRsZSBvbiB0aGUgbGVmdCwgcHJpbWFyeSBhY3Rpb24gb24gdGhlIHJpZ2h0LiBXcmFwcyB0byB0d28gcm93cyB3aGVuIHRoZSB0aXRsZVxuICAvLyBpcyBsb25nIG9yIHRoZSB2aWV3cG9ydCBpcyBuYXJyb3cuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2hlYWRlci1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX2NoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgICYtLXdhcm4ge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC1kYW5nZXI7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgICYtLWN1cnJlbnQge1xuICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDtcbiAgICB9XG4gIH1cblxuICAmX19jaGlwLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gYWN0aW9uIHNsb3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tZGV0YWlsLW5vdGljZS1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYW1iZXItMTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX25vdGljZS10ZXh0IHtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhLXdlYlwiLCBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgLy8gVGFrZXMgdGhlIG5vdGljZSBzbG90IG9uY2UgdGhlIHByb2dyYW0gaXMgc2NoZWR1bGVkLiBTYW1lIGRhdGEgYXMgdGhlIHdlZWtkYXkgY2hpcHMgb25cbiAgLy8gdGhlIGNhcmQgZ3JpZCAoLnByb2dyYW0tY2FyZF9fc2NoZWR1bGUpLCBib3hlZCB0byBzaXQgaW4gdGhlIHBhZ2UgZmxvdy5cbiAgJl9fc2NoZWR1bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAmX19zY2hlZHVsZS1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YS13ZWJcIiwgXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2RheXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAmLS1vbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX19zY2hlZHVsZS1lZGl0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fc2NoZWR1bGUtZWRpdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIC8vIEZpeGVkIDE4M3g0NCBzbG90LiBtaW4td2lkdGggcmF0aGVyIHRoYW4gd2lkdGggc28gYSBsb25nZXIgdHJhbnNsYXRpb25cbiAgLy8gKFwiUHJvZ3JhbW0gdGVybWluaWVyZW5cIikgZ3Jvd3MgdGhlIGJ1dHRvbiBpbnN0ZWFkIG9mIHNwaWxsaW5nIG91dCBvZiBpdC5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMTgzcHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idXR0b24taWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAvLyAtLSBzdGF0IGNhcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0YXRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gICZfX3N0YXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG4gICAgZmxleDogMSAxIDIyMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cblxuICAmX19zdGF0LWJvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIHRhYnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gYm9yZGVyLXJhZGl1czogMCB1bmRvZXMgdGhlIGdsb2JhbCBidXR0b257Ym9yZGVyLXJhZGl1czo2cHh9LCB3aGljaCB1bnN0eWxlLWJ1dHRvblxuICAvLyBhYm92ZSBkb2VzIG5vdCBjbGVhciAtIGl0IHdvdWxkIHJvdW5kIHRoZSBlbmRzIG9mIHRoZSAycHggYWN0aXZlIHVuZGVybGluZS5cbiAgJl9fdGFiIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzZWN0aW9uIGFjY29yZGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICB9XG5cbiAgLy8gMzZweCB3aWRlIHRvIG1hdGNoIF9fZXhlcmNpc2UtYWN0aW9uIGJlbG93LCBzbyB0aGUgY2hldnJvbiBhbmQgdGhlIGV4ZXJjaXNlXG4gIC8vIGFycm93cyBzaGFyZSBvbmUgcmlnaHQtaGFuZCBheGlzLiBXaWR0aCBvbmx5IC0gYSAzNnB4IGhlaWdodCB3b3VsZCBncm93IHRoZSBoZWFkZXIuXG4gICZfX3NlY3Rpb24tY2hldnJvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcblxuICAgIC8vIFRoZSBzdmcgcG9pbnRzIHVwIChleHBhbmRlZCk7IGZsaXAgaXQgZm9yIGEgY29sbGFwc2VkIHNlY3Rpb24uXG4gICAgJi0tY29sbGFwc2VkIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlY3Rpb24tYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgfVxuXG4gIC8vIC0tIGV4ZXJjaXNlIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIEVhY2ggYXR0cmlidXRlIGNlbnRlcnMgaXRzIG93biBjb250ZW50cyBzbyB0aGUgZG90IGJlbG93IGxhbmRzIG9uIHRoZSB0ZXh0J3NcbiAgICAvLyBvcHRpY2FsIGNlbnRlci4gZ2FwIHJlcGxhY2VzIHRoZSBtYXJrdXAgd2hpdGVzcGFjZSBiZXR3ZWVuIHRoZSBcIlNldHM6XCIgbGFiZWwgYW5kXG4gICAgLy8gaXRzIHZhbHVlLCB3aGljaCBhIGZsZXggYm94IGRyb3BzLlxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAvLyBEb3QgYmV0d2VlbiBhZGphY2VudCBhdHRyaWJ1dGVzIChzZXRzIC8gcmVwcyAvIGR1cmF0aW9uIC8gLi4uKS4gRWFjaCBhdHRyaWJ1dGVcbiAgICAvLyBjYXJyaWVzIGl0cyBvd24gbmctaWYsIHdoaWNoIHJlbW92ZXMgdGhlIGVsZW1lbnQgcmF0aGVyIHRoYW4gaGlkaW5nIGl0LCBzbyB0aGVcbiAgICAvLyBhZGphY2VudC1zaWJsaW5nIHJ1bGUgb25seSBmaXJlcyBiZXR3ZWVuIHR3byB0aGF0IGFjdHVhbGx5IHJlbmRlcmVkLlxuICAgIC8vIDRweCBtYXJnaW4gKyB0aGUgNHB4IGdhcCA9IHRoZSA4cHggdGhlIHBhcmVudCBnYXAgcHV0cyBvbiB0aGUgZG90J3Mgb3RoZXIgc2lkZS5cbiAgICA+IHNwYW4gKyBzcGFuOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMzAwO1xuICAgICAgLy8gTnVkZ2VkIGRvd24gMXB4IHRvIHNpdCBvbiB0aGUgdGV4dCdzIHZpc3VhbCBjZW50ZXI7IHRyYW5zZm9ybSBrZWVwcyB0aGUgcm93IGhlaWdodC5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWRldGFpbC1jaGlwLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGRlc3RydWN0aXZlIGFjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZGVsZXRlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLWRhbmdlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGxvYWRpbmcgc2tlbGV0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gcHJvZ3JhbV9kZXRhaWxfc2tlbGV0b24uaHRtbC4gRWFjaCBibG9jayBpcyBzaXplZCB0byB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIHRleHQgaXRcbiAgLy8gc3RhbmRzIGluIGZvciwgc28gdGhlIHJlYWwgY29udGVudCBsYW5kcyBpbiB0aGUgc2FtZSBib3hlcyB3aGVuIGl0IGFycml2ZXMuXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogNXB4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIDE4cHggZ2x5cGggKyAxMHB4IHBhZGRpbmcgZWFjaCBzaWRlLCBtYXRjaGluZyBfX3N0YXQtaWNvbi5cbiAgJl9fc2tlbGV0b24tc3RhdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC1sYWJlbCB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIG1hcmdpbjogM3B4IDAgNXB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC12YWx1ZSB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbjogNHB4IDA7XG4gIH1cblxuICAvLyBTYW1lIGJveCBhcyBfX3RhYiwgbGVzcyB0aGUgMnB4IHVuZGVybGluZSwgd2hpY2ggdGhlIHNrZWxldG9uIGhhcyBubyBhY3RpdmUgdGFiIGZvci5cbiAgJl9fc2tlbGV0b24tdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRhYi1sYWJlbCB7XG4gICAgd2lkdGg6IDcycHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9uLXRpdGxlIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogMTI4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJlZCBpbiB0aGUgMzZweCBjb2x1bW4gX19zZWN0aW9uLWNoZXZyb24gcmVzZXJ2ZXMuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh3aWRlLWRvd24pIHtcbiAgLnByb2dyYW0tZGV0YWlsIHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNDBweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3JhbS1kZXRhaWwge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgLy8gU3RheXMgYSByb3c6IGZsZXgtYmFzaXMgb24gYSBjb2x1bW4gaXMgaGVpZ2h0LCBzbyBgZmxleDogMSAxIDIyMHB4YCB3YXMgbWFraW5nXG4gICAgLy8gZWFjaCBjYXJkIDIyMHB4IHRhbGwuIEdyaWQgYWxzbyBtYWtlcyB0aGF0IGJhc2lzIGluZXJ0IOKAlCBncmlkIGl0ZW1zIGlnbm9yZSBpdCDigJRcbiAgICAvLyBzbyB0aGUgdHdvIGNhcmRzIHNwbGl0IHRoZSByb3cgZXZlbmx5IHdpdGhvdXQgZmlnaHRpbmcgdGhlIGJhc2UgcnVsZS5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC8vIEVhY2ggY2FyZCBoYXMgaXRzIG93biBuZy1pZjsgYSBsb25lIGNhcmQgc2hvdWxkIGZpbGwgdGhlIHJvdywgbm90IHNpdCBhdCBoYWxmXG4gICAgLy8gd2lkdGggYmVzaWRlIGFuIGVtcHR5IHRyYWNrLlxuICAgICZfX3N0YXQ6b25seS1jaGlsZCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAvLyBUaGUgcm93IG5lZWRzIH41NzBweCBmb3IgbGFiZWwgKyA3IGRheSBzcXVhcmVzICsgdGhlIGVkaXQgYnV0dG9uLCBzbyBiZWxvdyB0aGVcbiAgICAvLyBkZXNrdG9wIGxheW91dCBpdCBoYXMgdG8gd3JhcCAtIGFuZCBhIGZpeGVkIDYwcHggaGVpZ2h0IHdvdWxkIGNsaXAgdGhlIHNlY29uZCBsaW5lLlxuICAgICZfX3NjaGVkdWxlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICB9XG5cbiAgICAmX19kYXlzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190YWJzIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLy8gS2VlcCB0aGUgYXJyb3cgYmVzaWRlIHRoZSBuYW1lIGFuZCBsZXQgdGhlIGF0dHJpYnV0ZXMgd3JhcCBiZW5lYXRoLlxuICAgICZfX2V4ZXJjaXNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5wcm9ncmFtLWRldGFpbCB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4IDMycHg7XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gICAgfVxuXG4gICAgLy8gMThweCBnbHlwaCArIDEwcHggcGFkZGluZyA9IGEgMzhweCB0aWxlIGF0IGJhc2U7IDdweCBicmluZ3MgaXQgdG8gMzJweC5cbiAgICAmX19zdGF0LWljb24ge1xuICAgICAgcGFkZGluZzogN3B4O1xuICAgIH1cblxuICAgICZfX3N0YXQtbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICZfX3N0YXQtdmFsdWUge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBEYWlseSBzZXNzaW9uIHBhZ2UgKC8jL3NjaGVkdWxlLzphdGhsZXRlSWQvZGFpbHkvOnNjaGVkdWxlSWQgLSB2aWV3cy9kYWlseS5odG1sKS5cbi8vIFJlcGxhY2VzIHRoZSBsZWdhY3kgLnByb2dyYW0tZWRpdCAvIC5wcm9ncmFtLXN0cmF0ZWd5IC8gLnByb2dyYW0tdGVjaG5pcXVlIG1hcmt1cCB0aGlzXG4vLyBwYWdlIHVzZWQgdG8gYm9ycm93IGZyb20gX3Byb2dyYW1fZWRpdC5zY3NzLiBUaGF0IHBhcnRpYWwgaXMgc3RpbGwgc2hhcmVkIHdpdGhcbi8vIC93aGl0ZWJvYXJkIGFuZCB2aWV3cy9wcm9ncmFtLmh0bWwsIHNvIHRoaXMgaXMgYSBuZXcgYmxvY2sgcmF0aGVyIHRoYW4gYW4gZWRpdCB0aGVyZS5cbi8vXG4vLyBUaGUgaGVhZGVyLCBzZWN0aW9uIGFjY29yZGlvbiBhbmQgZXhlcmNpc2Ugcm93cyBkZWxpYmVyYXRlbHkgbWlycm9yXG4vLyBfcHJvZ3JhbV9kZXRhaWwuc2NzcyBzbyBvcGVuaW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIGNhdGFsb2cgcHJvZ3JhbSByZWFkIGFzIHRoZVxuLy8gc2FtZSBjb21wb25lbnQuIFRoZSB0ZWNobmlxdWUgc3ViLWhlYWRlciBpcyB0aGUgb25lIGFkZGl0aW9uLCB0YWtlbiBmcm9tXG4vLyBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MgLSBhIGRhaWx5IHN0cmF0ZWd5IGNhbiBob2xkIHNldmVyYWwgdGVjaG5pcXVlcy5cblxuJGRhaWx5LXByb2dyYW0tdGl0bGU6ICMxZjFmMjg7XG4kZGFpbHktcHJvZ3JhbS1jaGlwLWJnOiAjZjJmMmY0O1xuLy8gSGVhZGVyIGJhZGdlcyBvbmx5LCBhbmQgZGFya2VyIHRoYW4gJGRhaWx5LXByb2dyYW0tY2hpcC1iZyBvbiBwdXJwb3NlIC0gc3RyYWlnaHQgb2ZmXG4vLyB0aGUgRmlnbWEuIERvIG5vdCBmb2xkIHRoZSB0d28gdG9nZXRoZXIuXG4kZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZzogI2Q5ZDRlMjtcblxuLy8gQ2VudHJlcyB0aGUgY29udGVudCBjb2x1bW4gdGhlIHdheSAucHJvZ3JhbXMtcGFnZS1ob3N0IGRvZXMgZm9yIHRoZSBjYXRhbG9nIGFuZFxuLy8gZGV0YWlsIHBhbmVzLCBzbyB0aGUgdHdvIHBhZ2VzIHNoYXJlIGEgcGFnZSBmcmFtZSBhcyB3ZWxsIGFzIGEgY2FyZCBzdHlsZS5cbi5kYWlseS1wcm9ncmFtLWhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4uZGFpbHktcHJvZ3JhbSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLXN1bW1hcnkgc28gdGhlIGNvbnRlbnQgYm94IGlzIHRoZSBzYW1lIHdpZHRoIG9uIGJvdGggcGFnZXMuXG4gIG1heC13aWR0aDogNjQwcHg7XG4gIC8vIE5vIHNpZGUgcGFkZGluZywgc28gdGhlIGNhcmRzIGFuZCB0aGUgZm9vdGVyIGJ1dHRvbiBzcGFuIHRoZSBmdWxsIDY0MHB4LlxuICAvLyBWaWV3cG9ydHMgYXQgb3IgYmVsb3cgNjQwcHggcGljayB1cCB0aGVpciBvd24gMTZweCBndXR0ZXIgZnJvbSB0aGUgbWVkaWFcbiAgLy8gYmxvY2sgYXQgdGhlIGVuZC5cbiAgcGFkZGluZzogMzJweCAwIDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVGh1bWJuYWlsIGJlc2lkZSBhbiBpZGVudGl0eSBjb2x1bW4sIHNhbWUgc3BlYyBhcyAucHJvZ3JhbS1zdW1tYXJ5X19oZWFkZXIuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgLy8gVGhlIHBpY3R1cmUgaXMgYW4gZXhlcmNpc2UgdmlkZW8ncyBwb3N0ZXIgZnJhbWUsIGFuZCB0aG9zZSBhcmUgbm90IGFsbCBvbmUgcmF0aW8sXG4gIC8vIHNvIGEgZml4ZWQgMTM2eDg4IGJveCBjYW5ub3QgaG9sZCBldmVyeSBvbmUgb2YgdGhlbTogY292ZXIgY3JvcHBlZCB0aGUgZWRnZXMgb2ZmLFxuICAvLyBhbmQgY29udGFpbiBsZXR0ZXJib3hlZCBpbnN0ZWFkLCB3aGljaCBsZWZ0IHRoZSBwaWN0dXJlJ3Mgb3duIHNxdWFyZSBjb3JuZXJzXG4gIC8vIHNpdHRpbmcgaW5zaWRlIHRoZSByb3VuZGVkIGJveC4gU28gdGhlIHRpbGUgdGFrZXMgdGhlIHBpY3R1cmUncyByYXRpbyByYXRoZXIgdGhhblxuICAvLyBpbXBvc2luZyBvbmUgLSBoZWlnaHQgaXMgZml4ZWQsIHdpZHRoIGZvbGxvd3MsIGFuZCB0aGUgcmFkaXVzIGxhbmRzIG9uIHRoZSBpbWFnZVxuICAvLyBpdHNlbGYgd2l0aCBub3RoaW5nIHRvIGNyb3AgYW5kIG5vIGJhcnMuXG4gICZfX3RodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICRkYWlseS1wcm9ncmFtLWNoaXAtYmc7XG4gIH1cblxuICAmX19pZGVudGl0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGRhaWx5LXByb2dyYW0tdGl0bGU7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC8vIEZpbGxlZCBiYWRnZSBmb3IgY2F0ZWdvcmljYWwgbGFiZWxzIChnZW5yZSwgcHJvZ3JhbSB0eXBlKS4gTWV0cmljcyBmcm9tIHRoZSBGaWdtYTpcbiAgLy8gMnB4LzhweCBwYWRkaW5nIG92ZXIgYSAxNnB4IGxpbmUgYm94IGdpdmVzIHRoZSBzcGVjaWZpZWQgMjBweCBoZWlnaHQuXG4gICZfX3BpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLy8gU2l6ZWQgaGVyZSByYXRoZXIgdGhhbiBsZWZ0IHRvIHRoZSBpbWcgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMsIHdoaWNoIGFueSBnbG9iYWxcbiAgLy8gYGltZ2AgcnVsZSBpbiBlaXRoZXIgYnVuZGxlIGNhbiBvdmVycmlkZS5cbiAgJl9fcGlsbC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIFVuZmlsbGVkIGljb24gKyB2YWx1ZSBmb3IgY291bnRzIC0gLnByb2dyYW0tZGV0YWlsX19jaGlwLiBEZWxpYmVyYXRlbHkgbm90IGEgcGlsbCxcbiAgLy8gc28gbWVhc3VyZW1lbnRzIHJlYWQgYXMgZGF0YSByYXRoZXIgdGhhbiBhcyBhbm90aGVyIGxhYmVsLlxuICAmX19tZXRyaWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX21ldHJpYy1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIC0tIGJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxyZWFkeS1jb21wbGV0ZWQgc2Vzc2lvbi4gTXV0ZWQgcmF0aGVyIHRoYW4gZGlzYWJsZWQgLSB0aGUgYnV0dG9uIGlzIHN0aWxsIHRoZVxuICAgIC8vIG9ubHkgd2F5IGJhY2sgdG8gdGhlIHByb2ZpbGUgZnJvbSB0aGlzIHBhZ2UuXG4gICAgJi0tZG9uZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJGRhaWx5LXByb2dyYW0tZGlzYWJsZWQtYmc7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYWlseS1wcm9ncmFtLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tIHNlY3Rpb24gYWNjb3JkaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgfVxuXG4gICZfX3NlY3Rpb24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX3NlY3Rpb24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJl9fc2VjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRkYWlseS1wcm9ncmFtLXRpdGxlO1xuICB9XG5cbiAgLy8gQ2VudHJlZCBpbiBhIDM2cHggYm94IHRvIG1hdGNoIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIGV4ZXJjaXNlIHJvd3MgYmVsb3cuXG4gIC8vIEJvdGggc2l0IGFnYWluc3QgdGhlIHNhbWUgMjBweCBndXR0ZXIsIHNvIGVxdWFsIHdpZHRocyBwdXQgdGhlaXIgY2VudHJlcyBvblxuICAvLyBvbmUgdmVydGljYWwgbGluZS4gV2lkdGggb25seSAtIGEgMzZweCBoZWlnaHQgd291bGQgc3RyZXRjaCB0aGUgaGVhZGVyLlxuICAmX19zZWN0aW9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19zZWN0aW9uLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIH1cblxuICAvLyBUZWNobmlxdWUgc3ViLWhlYWRlciwgc2hvd24gb25seSB3aGVuIGEgc3RyYXRlZ3kgaG9sZHMgbW9yZSB0aGFuIG9uZSB0ZWNobmlxdWUuXG4gICZfX3RlY2huaXF1ZSB7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBleGVyY2lzZSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFRoZSByb3cgaXRzZWxmIGlzIHRoZSA8YnV0dG9uPiB0aGF0IG9wZW5zIHRoZSBleGVyY2lzZSBtb2RhbCwgc28gaXQgaGFzIHRvIHVuZG9cbiAgLy8gdGhlIGdsb2JhbCBidXR0b24gY2hyb21lICh3aGl0ZSBmaWxsLCAycHggYmx1ZSBib3JkZXIsIDZweCByYWRpdXMsIGNlbnRyZWQgdGV4dClcbiAgLy8gdGhlIHdheSAmX19zZWN0aW9uLWhlYWRlciBkb2VzLlxuICAvL1xuICAvLyBGaXhlZCA2MnB4LCBzYW1lIGFzIC5wcm9ncmFtLXN1bW1hcnlfX2V4ZXJjaXNlLiBOb3RoaW5nIGluc2lkZSBpcyB0YWxsZXIgdGhhbiB0aGVcbiAgLy8gMzZweCBhcnJvdyBib3gsIHNvIHRoZSBjb250ZW50IGNlbnRyZXMgd2l0aG91dCB2ZXJ0aWNhbCBwYWRkaW5nIC0gYW5kXG4gIC8vIF9fZXhlcmNpc2UtbmFtZSB0cnVuY2F0ZXMgcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHdoaWNoIHdvdWxkIHB1c2ggcGFzdCB0aGUgaGVpZ2h0LlxuICAmX19leGVyY2lzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjJweDtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBhcnJvdyBwaWNrcyB1cCB0aGUgYWNjZW50IG9uIHJvdyBob3Zlciwgc28gdGhlIHdob2xlIHJvdyByZWFkcyBhcyBvbmUgdGFyZ2V0LlxuICAmX19leGVyY2lzZTpob3ZlciAmX19leGVyY2lzZS1hY3Rpb24ge1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gIC8vIFNwYW5zLCBub3QgZGl2cyAtIHRoZXkgbGl2ZSBpbnNpZGUgdGhlIHJvdyA8YnV0dG9uPiwgd2hpY2ggb25seSB0YWtlcyBwaHJhc2luZ1xuICAvLyBjb250ZW50IC0gc28gdGhlIGJsb2NrIGJlaGF2aW91ciBoYXMgdG8gYmUgc2V0IGhlcmUuXG4gICZfX2V4ZXJjaXNlLWluZm8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLW5hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRkYWlseS1wcm9ncmFtLXRpdGxlO1xuICB9XG5cbiAgLy8gVGhlIHVuY2xhc3NlZCB2YWx1ZSBzcGFucyBpbmhlcml0IGZyb20gaGVyZSwgc28gNTAwIGlzIHRoZSB2YWx1ZSB3ZWlnaHQgYW5kXG4gIC8vIF9fYXR0cmlidXRlLWxhYmVsIG92ZXJyaWRlcyBpdCBiYWNrIHRvIDYwMCBmb3IgdGhlIFwiU2V0czpcIiAvIFwiUmVwczpcIiBsYWJlbHMgLVxuICAvLyBzYW1lIHNwbGl0IGFzIC5wcm9ncmFtLXN1bW1hcnlfX2V4ZXJjaXNlLWF0dHJpYnV0ZXMuXG4gICZfX2V4ZXJjaXNlLWF0dHJpYnV0ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHggMTZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjb2xvcjogJGRhaWx5LXByb2dyYW0tdGl0bGU7XG4gIH1cblxuICAmX19lbXB0eSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBmb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNpbmdsZSBmdWxsLXdpZHRoIHByaW1hcnkgLSB0aGUgc2Vzc2lvbidzIG9uZSBjbG9zaW5nIGFjdGlvbi5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19mb290ZXIgJl9fYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59XG5cbi8vIE1pcnJvcnMgLnByb2dyYW0tc3VtbWFyeTogdGhlIG9uZSBxdWVyeSBmaXJlcyB3aGVuIHRoZSB2aWV3cG9ydCByZWFjaGVzIHRoZVxuLy8gY29sdW1uIHdpZHRoLCB3aGljaCBpcyB0aGUgb25seSBwb2ludCB0aGUgbGF5b3V0IGhhcyB0byBjaGFuZ2UuIEEgcmVzcG9uZCgpXG4vLyB0aWVyIHdvdWxkIGZpcmUgYXQgNzY4cHggb3IgNDgwcHgsIG5laXRoZXIgb2Ygd2hpY2ggaXMgd2hlcmUgNjQwcHggcnVucyBvdXQuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmRhaWx5LXByb2dyYW0ge1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCA0MHB4O1xuXG4gICAgLy8gVGh1bWJuYWlsIG92ZXIgdGhlIGlkZW50aXR5IGJsb2NrIC0gc2lkZSBieSBzaWRlIGxlYXZlcyB0aGUgdGl0bGUgdG9vIG5hcnJvdy5cbiAgICAmX19oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxNHB4O1xuICAgIH1cblxuICAgIC8vIEZ1bGwgd2lkdGgsIGFuZCB0aGUgaGVpZ2h0IGZvbGxvd3MgdGhlIHBpY3R1cmUncyBvd24gcmF0aW8gLSBzYW1lIHJlYXNvbmluZyBhc1xuICAgIC8vIHRoZSBkZXNrdG9wIHRpbGUuIEEgZml4ZWQgMTYwcHggaGVyZSB3YXMgYSAyOjEtdG8tNDoxIGJveCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gcGhvbmUsIHdoaWNoIGNyb3BwZWQgdGhlIHBpY3R1cmUgaGFyZCBpbiB3aGljaGV2ZXIgZGlyZWN0aW9uIGRpZCBub3QgbWF0Y2guXG4gICAgJl9fdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICBnYXA6IDhweCAxMnB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5kYWlseS1wcm9ncmFtIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMzJweDtcblxuICAgICZfX3NlY3Rpb24taGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9fZXhlcmNpc2Uge1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgIH1cblxuICAgICZfX3RlY2huaXF1ZSB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE2cHggNHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RlcCAxIG9mIHRoZSBTY2hlZHVsZSBQcm9ncmFtIGZsb3cgKC8jL3Byb2dyYW0vOmF0aGxldGVJZC86YXRobGV0ZVByb2dyYW1JZC9zdW1tYXJ5KTpcbi8vIGEgcmVhZC1vbmx5IHJlY2FwIG9mIHRoZSBwcm9ncmFtIGJlZm9yZSBhbnkgZGF0ZXMgYXJlIHBpY2tlZC5cbi8vIEFsc28gY2FycmllcyAuc2NoZWR1bGUtc3RlcHMsIHRoZSBzdGVwcGVyIHNoYXJlZCB3aXRoIHRoZSBTY2hlZHVsZSBzdGVwLlxuXG4kcHJvZ3JhbS1zdW1tYXJ5LWNoaXAtYmc6ICNmMmYyZjQ7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3RlcHBlciAodGVtcGxhdGVzL3NjaGVkdWxlX3N0ZXBzLmh0bWwpIC0gc2hhcmVkIGFjcm9zcyB0aGUgZmxvdywgc28gaXQgaXNcbi8vIHNjb3BlZCB0byBpdHNlbGYgcmF0aGVyIHRoYW4gbmVzdGVkIHVuZGVyIC5wcm9ncmFtLXN1bW1hcnkuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zY2hlZHVsZS1zdGVwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuXG4gICZfX3N0ZXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX21hcmtlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBjb2xvcjogJGJsYWNrLTUwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTUwMDtcbiAgfVxuXG4gICZfX3N0ZXAtLWFjdGl2ZSAmX19tYXJrZXIge1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgfVxuXG4gICZfX3N0ZXAtLWFjdGl2ZSAmX19sYWJlbCB7XG4gICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICB9XG5cbiAgLy8gQ29tcGxldGVkIHN0ZXBzIHN3YXAgdGhlIG51bWJlciBmb3IgYSBjaGVjayBhbmQgc3RheSBtdXRlZC5cbiAgJl9fc3RlcC0tY29tcGxldGUgJl9fbWFya2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxuXG4gICZfX3N0ZXAtLWNvbXBsZXRlICZfX2xhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIFNpZGUgYnkgc2lkZSB0aGUgdGhyZWUgc3RlcHMgbWVhc3VyZSB+NTA0cHgsIHNvIG9uY2UgdGhlIGNvbHVtbiBkcm9wcyBiZWxvd1xuICAvLyB0aGF0IHRoZSB0aGlyZCBvbmUgd3JhcHMgb250byBpdHMgb3duIHJvdyBhbmQgdGhlIDQwcHggZ2FwIG9wZW5zIGEgd2lkZSBiYW5kXG4gIC8vIG9mIGRlYWQgc3BhY2UgYmV0d2VlbiB0aGUgdHdvIHJvd3MuIFN0YWNrIHRoZW0gYXMgYSBwbGFpbiBsaXN0IGluc3RlYWQuXG4gIC8vIFRoZSByb3cgZ2FwIGlzIDEwcHggc28gdGhlIGJsb2NrIGtlZXBzIHRoZSBoZWlnaHQgaXQgaGFkIHdoZW4gd3JhcHBlZCAtXG4gIC8vIDIgcm93cyBhdCAyMnB4IHBsdXMgb25lIDQwcHggZ2FwIGlzIDg0cHgsIDMgcm93cyBhdCAyMnB4IHBsdXMgdHdvIDEwcHggZ2Fwc1xuICAvLyBpcyA4NnB4IC0gYW5kIG5vdGhpbmcgYmVsb3cgdGhlIHN0ZXBwZXIgbW92ZXMuXG4gIEBpbmNsdWRlIHJlc3BvbmQoc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZ2FwOiAxMHB4O1xuICAgIC8vIFNocmluayB0aGUgYm94IHRvIGl0cyB3aWRlc3Qgc3RlcCwgdGhlbiBjZW50cmUgdGhlIGJveC4gYWxpZ24taXRlbXMga2VlcHNcbiAgICAvLyB0aGUgdGhyZWUgcm93cyBvbiBvbmUgc2hhcmVkIGxlZnQgZWRnZSByYXRoZXIgdGhhbiBjZW50cmluZyBlYWNoIHJvdyBvblxuICAgIC8vIGl0cyBvd24gbGFiZWwsIHdoaWNoIHdvdWxkIGxlYXZlIGEgcmFnZ2VkIGxlZnQuIGZpdC1jb250ZW50IGNsYW1wcyBpdHNlbGZcbiAgICAvLyB0byB0aGUgY29sdW1uIHdoZW4gYSB0cmFuc2xhdGVkIGxhYmVsIHJ1bnMgbG9uZywgc28gdGhlcmUgaXMgbm8gb3ZlcmZsb3dcbiAgICAvLyB0byBndWFyZCBhZ2FpbnN0LlxuICAgIHdpZHRoOiAtbW96LWZpdC1jb250ZW50O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdW1tYXJ5IHBhZ2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2ggbG9hZHNcbi8vIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaCBjb2xsYXBzZXMgdGhlXG4vLyBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLiBNYXRjaGluZyB0d28gY2xhc3NlcyBvdXQtc3BlY2lmaWVzIGl0LlxuLnZpZXctZmxleC5wcm9ncmFtLXN1bW1hcnktcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBzdHJldGNoLCBub3QgYHdpZHRoOiAxMDAlYDogX2F0aGxldGVfc2lkZWJhci5zY3NzIGluZGVudHMgc2libGluZ3Mgb2ZcbiAgLy8gLm1lbnUtY29udGVudCB3aXRoIG1hcmdpbi1sZWZ0LCBhbmQgYSB2aWV3cG9ydC13aWRlIDEwMCUgYm94IHRoZW4gb3ZlcmZsb3dzXG4gIC8vIHRvIHRoZSByaWdodCBhbmQgY2VudHJlcyB0aGUgY29sdW1uIGFnYWluc3QgdGhlIHZpZXdwb3J0IGluc3RlYWQgb2YgdGhlXG4gIC8vIHJhaWwtYWRqYWNlbnQgY29udGVudCBjb2x1bW4gKGFuZCB0aGUgc2l0ZSBmb290ZXIpLlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnByb2dyYW0tc3VtbWFyeSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgLy8gTm8gc2lkZSBwYWRkaW5nLCBzbyB0aGUgY2FyZHMgc3BhbiB0aGUgZnVsbCA2NDBweC4gVmlld3BvcnRzIGF0IG9yIGJlbG93XG4gIC8vIDY0MHB4IHBpY2sgdXAgdGhlaXIgb3duIDE2cHggZ3V0dGVyIGZyb20gdGhlIG1lZGlhIGJsb2NrIGF0IHRoZSBlbmQuXG4gIHBhZGRpbmc6IDMycHggMCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH0gcnVsZXMuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIGNhcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gIC8vIFRoZSBwaWN0dXJlIGlzIGFuIGV4ZXJjaXNlIHZpZGVvJ3MgcG9zdGVyIGZyYW1lLCBhbmQgdGhvc2UgYXJlIG5vdCBhbGwgb25lIHJhdGlvLFxuICAvLyBzbyBhIGZpeGVkIDEzNng4OCBib3ggY2Fubm90IGhvbGQgZXZlcnkgb25lIG9mIHRoZW06IGNvdmVyIGNyb3BzIHRoZSBlZGdlcyBvZmYsXG4gIC8vIGFuZCBjb250YWluIGxldHRlcmJveGVzIGluc3RlYWQsIHdoaWNoIGxlYXZlcyB0aGUgcGljdHVyZSdzIG93biBzcXVhcmUgY29ybmVyc1xuICAvLyBzaXR0aW5nIGluc2lkZSB0aGUgcm91bmRlZCBib3guIFNvIHRoZSB0aWxlIHRha2VzIHRoZSBwaWN0dXJlJ3MgcmF0aW8gcmF0aGVyIHRoYW5cbiAgLy8gaW1wb3Npbmcgb25lIC0gaGVpZ2h0IGlzIGZpeGVkLCB3aWR0aCBmb2xsb3dzLCBhbmQgdGhlIHJhZGl1cyBsYW5kcyBvbiB0aGUgaW1hZ2VcbiAgLy8gaXRzZWxmIHdpdGggbm90aGluZyB0byBjcm9wIGFuZCBubyBiYXJzLiBTYW1lIGNhbGwgYXMgLmRhaWx5LXByb2dyYW1fX3RodW1iLlxuICAmX190aHVtYiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1zdW1tYXJ5LWNoaXAtYmc7XG4gIH1cblxuICAmX19pZGVudGl0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIDhweCB3YXMgdHVuZWQgZm9yIGNoaXBzIHRoYXQgY2FycmllZCB0aGVpciBvd24gMTBweCBvZiBwYWRkaW5nOyBub3cgdGhhdFxuICAvLyBXZWVrcyAvIERheXMgYXJlIHVucGFkZGVkIHRoZSByb3cgbmVlZHMgdGhlIHNlcGFyYXRpb24gaW4gdGhlIGdhcCBpbnN0ZWFkLlxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIC8vIFdlZWtzIC8gRGF5cy1wZXItd2VlayByZWFkIGFzIHBsYWluIG1ldGFkYXRhIC0gbm8gZmlsbCwgYW5kIG5vIHBhZGRpbmcgZWl0aGVyLFxuICAvLyB3aGljaCBvbiBhIHRyYW5zcGFyZW50IGNoaXAgd291bGQgb25seSBwdXNoIHRoZSByb3cgYXBhcnQuXG4gICZfX2NoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIFRoZSBwcm9ncmFtIHR5cGUgaXMgdGhlIG9uZSBjaGlwIHRoYXQgc3RheXMgYSBiYWRnZS5cbiAgICAmLS10eXBlIHtcbiAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19jaGlwLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gLS0gc2Vzc2lvbiB0YWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNYXRjaGVzIHRoZSBwcmFjdGl0aW9uZXIgYnVpbGQgcGFnZSAoX3Byb2dyYW1fYnVpbGQuc2Nzcyk6IGEgMzZweCB0cmFja1xuICAvLyBob2xkaW5nIGZpeGVkIDgzeDI4IHNlbGVjdG9ycy5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLXN1bW1hcnktY2hpcC1iZztcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA4M3B4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAycHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBhY2NvcmRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIENlbnRyZWQgaW4gYSAzNnB4IGJveCB0byBtYXRjaCB0aGUgcGxheSBidXR0b24gb24gdGhlIGV4ZXJjaXNlIHJvd3MgYmVsb3cuXG4gIC8vIEJvdGggc2l0IGFnYWluc3QgdGhlIHNhbWUgMjBweCBndXR0ZXIsIHNvIGVxdWFsIHdpZHRocyBwdXQgdGhlaXIgY2VudHJlcyBvblxuICAvLyBvbmUgdmVydGljYWwgbGluZS4gV2lkdGggb25seSAtIGEgMzZweCBoZWlnaHQgd291bGQgc3RyZXRjaCB0aGUgaGVhZGVyLlxuICAmX19zZWN0aW9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM2cHg7XG5cbiAgICAvLyBUaGUgc3ZnIHBvaW50cyB1cCAoZXhwYW5kZWQpOyBmbGlwIGl0IGZvciBhIGNvbGxhcHNlZCBzZWN0aW9uLlxuICAgICYtLWNvbGxhcHNlZCBzdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cblxuICAmX19zZWN0aW9uLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICB9XG5cbiAgLy8gLS0gZXhlcmNpc2Ugcm93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBGaXhlZCA2MnB4IHJvd3MuIE5vdGhpbmcgaW5zaWRlIGlzIHRhbGxlciB0aGFuIHRoZSAzNnB4IHBsYXkgYnV0dG9uLCBzbyB0aGVcbiAgLy8gY29udGVudCBjZW50cmVzIHdpdGhvdXQgdmVydGljYWwgcGFkZGluZyAtIGFuZCBfX2V4ZXJjaXNlLW5hbWUgdHJ1bmNhdGVzXG4gIC8vIHJhdGhlciB0aGFuIHdyYXBwaW5nLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgcHVzaCBhIHJvdyBwYXN0IHRoZSBoZWlnaHQuXG4gICZfX2V4ZXJjaXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2MnB4O1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19leGVyY2lzZS1pbmZvIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19leGVyY2lzZS1uYW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gVGhlIHVuY2xhc3NlZCB2YWx1ZSBzcGFucyBpbmhlcml0IGZyb20gaGVyZSwgc28gNTAwIGlzIHRoZSB2YWx1ZSB3ZWlnaHQgYW5kXG4gIC8vIF9fYXR0cmlidXRlLWxhYmVsIG92ZXJyaWRlcyBpdCBiYWNrIHRvIDYwMCBmb3IgdGhlIFwiU2V0czpcIiAvIFwiUmVwczpcIiBsYWJlbHMuXG4gICZfX2V4ZXJjaXNlLWF0dHJpYnV0ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHggMTZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLXBsYXkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyYW0tc3VtbWFyeS1jaGlwLWJnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBwbGF5IGFzc2V0IGlzIGZ1bGwtYmxlZWQgaW4gaXRzIGNhbnZhcywgc28gMTZweCBsYW5kcyBpdCBvbiB0aGUgc2FtZVxuICAvLyBvcHRpY2FsIHNpemUgdGhlIHByYWN0aXRpb25lciBwYWdlIGdpdmVzIGl0LlxuICAmX19leGVyY2lzZS1wbGF5LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gLS0gbG9hZGluZyBza2VsZXRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19za2VsZXRvbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmLS1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICB9XG4gIH1cblxuICAmX19za2VsZXRvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTM2cHg7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWlkZW50aXR5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyBNaXJyb3JzIF9fbWV0YTogdHlwZSBiYWRnZSBwbHVzIHdlZWtzIGFuZCBkYXlzLXBlci13ZWVrIGNoaXBzLlxuICAmX19za2VsZXRvbi1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0tdHlwZSB7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICB3aWR0aDogODhweDtcbiAgICB9XG5cbiAgICAmLS13ZWVrcyB7XG4gICAgICB3aWR0aDogNzJweDtcbiAgICB9XG5cbiAgICAmLS1mcmVxdWVuY3kge1xuICAgICAgd2lkdGg6IDEwNHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLXRhYnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzZweDtcbiAgICB3aWR0aDogMjU4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDU1JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIHdpZHRoOiAxNDBweDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBmb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgcGFkZGluZzogMjBweCAxNnB4IDQwcHg7XG5cbiAgICAmX19oZWFkZXIsXG4gICAgJl9fc2tlbGV0b24taGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10aHVtYiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogODhweDtcbiAgICB9XG5cbiAgICAvLyBGdWxsIHdpZHRoLCBhbmQgdGhlIGhlaWdodCBmb2xsb3dzIHRoZSBwaWN0dXJlJ3Mgb3duIHJhdGlvIC0gc2FtZSByZWFzb25pbmcgYXNcbiAgICAvLyB0aGUgZGVza3RvcCB0aWxlLiBBIGZpeGVkIDE2MHB4IGhlcmUgd2FzIGEgMjoxLXRvLTQ6MSBib3ggZGVwZW5kaW5nIG9uIHRoZVxuICAgIC8vIHBob25lLCB3aGljaCBjcm9wcGVkIHRoZSBwaWN0dXJlIGhhcmQgaW4gd2hpY2hldmVyIGRpcmVjdGlvbiBkaWQgbm90IG1hdGNoLlxuICAgICZfX3RodW1iIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG5cbiAgICAmX190YWJzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBTdGVwIDEgb2YgdGhlIFNjaGVkdWxlIFByb2dyYW0gZmxvdyBmb3IgcHJhY3RpdGlvbmVyc1xuLy8gKC8jL3Byb2dyYW0vOmF0aGxldGVJZC86YXRobGV0ZVByb2dyYW1JZC9lZGl0KTogdGhlIGVkaXRhYmxlIHByb2dyYW0gYnVpbGRlci5cbi8vIE1pcnJvcnMgX3Byb2dyYW1fc3VtbWFyeS5zY3NzICh0aGUgbWVtYmVyJ3MgcmVhZC1vbmx5IHN0ZXAgMSkgYW5kIGFkZHMgdGhlXG4vLyBlZGl0aW5nIGFmZm9yZGFuY2VzIC0gcGVyLXRlY2huaXF1ZSBBZGQgRXhlcmNpc2UsIHRoZSBSZW1vdmUgQWxsIC8gRWRpdCBBbGxcbi8vIGtlYmFiLCBwZXItZXhlcmNpc2UgYWN0aW9ucyBhbmQgcmVvcmRlciBhcnJvd3MuXG4vLyBUaGUgLnNjaGVkdWxlLXN0ZXBzIHN0ZXBwZXIgaXMgc2hhcmVkIGFuZCBsaXZlcyBpbiBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MuXG5cbiRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1idWlsZC1kYW5nZXI6ICNjMDM5MmI7XG4kcHJvZ3JhbS1idWlsZC1tZW51LXNoYWRvdzogMCA4cHggMjBweCAwIHJnYmEoMTYsIDI0LCA0MCwgMC4xMik7XG5cbi8vIENvbXBvdW5kIHNlbGVjdG9yIG9uIHB1cnBvc2U6IF9wYXNzcG9ydC5zY3NzIChtYXJrLWFkZGl0aW9ucyBidW5kbGUsIHdoaWNoIGxvYWRzXG4vLyBhZnRlciB0aGlzIHNoZWV0KSByZWRlZmluZXMgYC52aWV3LWZsZXggeyBmbGV4OiAwIDAgYXV0byB9YCwgd2hpY2ggY29sbGFwc2VzIHRoZVxuLy8gcGFnZSBhbmQgZmxvYXRzIHRoZSBzaXRlIGZvb3RlciB1cC4gTWF0Y2hpbmcgdHdvIGNsYXNzZXMgb3V0LXNwZWNpZmllcyBpdC5cbi52aWV3LWZsZXgucHJvZ3JhbS1idWlsZC1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIHN0cmV0Y2gsIG5vdCBgd2lkdGg6IDEwMCVgOiBfYXRobGV0ZV9zaWRlYmFyLnNjc3MgaW5kZW50cyBzaWJsaW5ncyBvZlxuICAvLyAubWVudS1jb250ZW50IHdpdGggbWFyZ2luLWxlZnQsIGFuZCBhIHZpZXdwb3J0LXdpZGUgMTAwJSBib3ggdGhlbiBvdmVyZmxvd3NcbiAgLy8gdG8gdGhlIHJpZ2h0IGFuZCBjZW50cmVzIHRoZSBjb2x1bW4gYWdhaW5zdCB0aGUgdmlld3BvcnQgaW5zdGVhZCBvZiB0aGVcbiAgLy8gcmFpbC1hZGphY2VudCBjb250ZW50IGNvbHVtbiAoYW5kIHRoZSBzaXRlIGZvb3RlcikuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4ucHJvZ3JhbS1idWlsZCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyA2ODggLSAyIHggMjRweCBwYWRkaW5nID0gYSA2NDBweCBjb250ZW50IGNvbHVtbiwgY2VudGVyZWQsIG1hdGNoaW5nIHN0ZXAgMlxuICAvLyBvZiB0aGUgU2NoZWR1bGUgUHJvZ3JhbSBmbG93IChfc2NoZWR1bGVfYnVpbGQuc2NzcyAucHJvZ3JhbS1zY2hlZHVsZS0tbmFycm93KS5cbiAgbWF4LXdpZHRoOiA2ODhweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDMycHggMjRweCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3MuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gLS0gbG9hZGluZyBza2VsZXRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNaXJyb3JzIHRoZSByZWFsIHN0YWNrIGFib3ZlOiB0eXBlIHRhYnMsIGhlYWRlciBjYXJkLCBzZXNzaW9uIHRhYnMsIG9uZVxuICAvLyBzdHJhdGVneSBoZWFkaW5nIGFuZCB0aHJlZSB0ZWNobmlxdWUgY2FyZHMsIHRoZW4gdGhlIGZvb3RlciBidXR0b25zLlxuICAvLyBTaXRzIG92ZXIgdGhlIG1vdW50ZWQgbWFya3VwIHdoaWxlIG5nLWlmIGNvbXBpbGVzLCB0aGVuIGRyb3BzLlxuICAmX19za2VsZXRvbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmLS1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICB9XG4gIH1cblxuICAmX19za2VsZXRvbi10eXBlLXRhYnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNDZweDtcbiAgICB3aWR0aDogMzQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIH1cblxuICAvLyBUaGUgcmVhbCB0aWxlIHRha2VzIHRoZSBwb3N0ZXIgZnJhbWUncyBvd24gcmF0aW8sIHNvIHRoaXMgaXMgdGhlIDEzNng4OFxuICAvLyBub21pbmFsIGJveCB0aGUgcGxhY2Vob2xkZXIgaW1hZ2UgcmVzb2x2ZXMgdG8uXG4gICZfX3NrZWxldG9uLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTM2cHg7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWlkZW50aXR5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gIC8vIDMwcHggdHlwZSBhdCBsaW5lLWhlaWdodCAxLjIgPSAzNnB4LlxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHdpZHRoOiA3MiU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC8vIENoaXAgaGVpZ2h0IGlzIHRoZSByZWFsIDEzcHgvNTAwIGxhYmVsIHBsdXMgNHB4IHBhZGRpbmcgdG9wIGFuZCBib3R0b20uXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMjZweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0tdHlwZSB7XG4gICAgICB3aWR0aDogMTA0cHg7XG4gICAgfVxuXG4gICAgJi0td2Vla3Mge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgJi0tZnJlcXVlbmN5IHtcbiAgICAgIHdpZHRoOiAxMTZweDtcbiAgICB9XG4gIH1cblxuICAvLyBNYXRjaGVzIHRoZSAzNnB4IHNlZ21lbnRlZCB0cmFjayBob2xkaW5nIHRocmVlIDgzcHggdGFicyBwbHVzIGl0cyBwYWRkaW5nLlxuICAmX19za2VsZXRvbi10YWJzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDI2NXB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXN0cmF0ZWd5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1zdHJhdGVneS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RyYXRlZ3ktbmFtZSB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAxNDhweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUtdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tYWRkLWV4ZXJjaXNlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTM4cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWtlYmFiIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2tlbGV0b24tcmVvcmRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWV4ZXJjaXNlLWluZm8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1leGVyY2lzZS1uYW1lIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDQ2JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogMzQlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWV4ZXJjaXNlLWF0dHJpYnV0ZXMge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTI4cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYWN0aW9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIC8vIDE1cHgvNjAwIGxhYmVsIHBsdXMgMTJweCBwYWRkaW5nIGFuZCB0aGUgMXB4IGJvcmRlciBvbiBlYWNoIHNpZGUuXG4gICZfX3NrZWxldG9uLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIHdpZHRoOiAxMTJweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICB3aWR0aDogMTQycHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gcHJvZ3JhbSB0eXBlIHRhYnMgKHVuZGVybGluZWQsIGFib3ZlIHRoZSBoZWFkZXIgY2FyZCkgLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdHlwZS10YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAmX190eXBlLXRhYiB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgLy8gXCJQcmFjdGl0aW9uZXIgTGlnaHRcIiBpcyB0d28gd29yZHMsIHNvIHdpdGhvdXQgdGhpcyBpdCBicmVha3MgYWNyb3NzIHR3b1xuICAgIC8vIGxpbmVzIGFzIHNvb24gYXMgdGhlIHN0cmlwIGlzIHNxdWVlemVkIGFuZCB0aGUgdW5kZXJsaW5lIGluZGljYXRvciBncm93c1xuICAgIC8vIHRvIG1hdGNoLiBUaGUgcGhvbmUgdGllciBiZWxvdyBzaHJpbmtzIHRoZSB0eXBlIGluc3RlYWQuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvLyBUaGUgZ2xvYmFsIGJ1dHRvbiBydWxlIHJvdW5kcyBldmVyeSBjb3JuZXIsIHdoaWNoIGJvd3MgdGhlIGVuZHMgb2YgdGhlXG4gICAgLy8gdW5kZXJsaW5lOyB0aGUgc2VsZWN0ZWQgaW5kaWNhdG9yIGhhcyB0byByZWFkIGFzIGEgc3RyYWlnaHQgcnVsZS5cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuXG4gICAgLy8gQSB0eXBlIHRoZSBwcm9ncmFtIGhhcyBubyBzZXNzaW9ucyBmb3Iga2VlcHMgaXRzIHBsYWNlIGluIHRoZSBzdHJpcCByYXRoZXJcbiAgICAvLyB0aGFuIGNvbGxhcHNpbmcgdGhlIGNvbnRyb2wgLSBncmV5ZWQgb3V0IGFuZCBub3Qgc2VsZWN0YWJsZS5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBcIkxpZ2h0XCIgLyBcIlByb1wiIGlzIHBhcnQgb2YgdGhlIHRhYiBsYWJlbCwgbm90IGFuIGFubm90YXRpb24gb24gaXQgLSBtYXRjaGluZ1xuICAvLyB0aGUgd2VpZ2h0IGFuZCBjb2xvdXIga2VlcHMgYSB0YWIgZnJvbSByZWFkaW5nIGFzIHR3byBkaWZmZXJlbnQgZ3JleXMuXG4gICZfX3R5cGUtdGFiLXRhZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIH1cblxuICAvLyBUaGUgcGljdHVyZSBpcyBhbiBleGVyY2lzZSB2aWRlbydzIHBvc3RlciBmcmFtZSwgYW5kIHRob3NlIGFyZSBub3QgYWxsIG9uZSByYXRpbyxcbiAgLy8gc28gYSBmaXhlZCAxMzZ4ODggYm94IGNhbm5vdCBob2xkIGV2ZXJ5IG9uZSBvZiB0aGVtOiBjb3ZlciBjcm9wcyB0aGUgZWRnZXMgb2ZmLFxuICAvLyBhbmQgY29udGFpbiBsZXR0ZXJib3hlcyBpbnN0ZWFkLCB3aGljaCBsZWF2ZXMgdGhlIHBpY3R1cmUncyBvd24gc3F1YXJlIGNvcm5lcnNcbiAgLy8gc2l0dGluZyBpbnNpZGUgdGhlIHJvdW5kZWQgYm94LiBTbyB0aGUgdGlsZSB0YWtlcyB0aGUgcGljdHVyZSdzIHJhdGlvIHJhdGhlciB0aGFuXG4gIC8vIGltcG9zaW5nIG9uZSAtIGhlaWdodCBpcyBmaXhlZCwgd2lkdGggZm9sbG93cywgYW5kIHRoZSByYWRpdXMgbGFuZHMgb24gdGhlIGltYWdlXG4gIC8vIGl0c2VsZiB3aXRoIG5vdGhpbmcgdG8gY3JvcCBhbmQgbm8gYmFycy4gU2FtZSBjYWxsIGFzIC5kYWlseS1wcm9ncmFtX190aHVtYi5cbiAgJl9fdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogODhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgfVxuXG4gICZfX2lkZW50aXR5IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX2NoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX2NoaXAtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIHRhYnMgKHNlZ21lbnRlZCkgKyB3aGl0ZWJvYXJkIGNvcHkgY29udHJvbHMgLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zZXNzaW9uLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICAvLyAzNnB4IHRyYWNrIGhvbGRpbmcgYSAyOHB4IHNlbGVjdG9yOiA0cHggb2YgcGFkZGluZyBvbiBlYWNoIHNpZGUuIG1pbi1oZWlnaHRcbiAgLy8gcmF0aGVyIHRoYW4gaGVpZ2h0IHNvIHRoZSBtb2JpbGUgb3ZlcmZsb3cteCBzY3JvbGxiYXIgY2Fubm90IHNxdWFzaCB0aGUgdGFicy5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICB9XG5cbiAgLy8gRml4ZWQgODN4Mjggc2VsZWN0b3IuIGZsZXgtc2hyaW5rIGlzIG9mZiBzbyB0aGUgbW9iaWxlIHNjcm9sbCBjb250YWluZXJcbiAgLy8gY2Fubm90IHNxdWVlemUgaXQgYmVsb3cgdGhlIHNwZWMgd2lkdGguXG4gICZfX3RhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA4M3B4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAycHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICB9XG4gIH1cblxuICAmX19jb3B5LWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAvLyAtLSBzdHJhdGVneSBncm91cHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0cmF0ZWd5LWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICB9XG5cbiAgJl9fc3RyYXRlZ3kge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX3N0cmF0ZWd5LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gIH1cblxuICAmX19zdHJhdGVneS1pbWFnZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAmX19zdHJhdGVneS1uYW1lIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIC0tIHRlY2huaXF1ZSBjYXJkcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGVjaG5pcXVlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX3RlY2huaXF1ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAvLyBGaXhlZCA2MHB4LiBUaGUgMzZweCBBZGQgRXhlcmNpc2UgYnV0dG9uIGlzIHRoZSB0YWxsZXN0IGNoaWxkLCBzbyBpdCBjZW50cmVzXG4gIC8vIGluc2lkZSB0aGUgaGVpZ2h0IHdpdGhvdXQgbmVlZGluZyB2ZXJ0aWNhbCBwYWRkaW5nLlxuICAmX190ZWNobmlxdWUtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cblxuICAmX190ZWNobmlxdWUtdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX2FkZC1leGVyY2lzZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0ga2ViYWIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBPcGVuL2Nsb3NlIGlzIGhhbmRsZWQgZW50aXJlbHkgYnkgdGhlIHRvZ2dsZS1jb250YWluZXIgLyB0b2dnbGUtc291cmNlIC9cbiAgLy8gdG9nZ2xlLXRhcmdldCBkaXJlY3RpdmVzIChzY3JpcHRzL2RpcmVjdGl2ZXMvVG9nZ2xlLmpzKSwgd2hpY2ggc3dhcCB0aGVcbiAgLy8gYGhpZGRlbmAgY2xhc3Mgb24gdGhlIHBhbmVsLiBTYW1lIHdpcmluZyBhcyB0aGUgdXBjb21pbmctc2Vzc2lvbiBrZWJhYi5cbiAgJl9fbWVudSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fa2ViYWIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgbWluLXdpZHRoOiAzMnB4O1xuICAgIG1heC13aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbiAgICBtYXgtaGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtbGlzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLXdpZHRoOiAxNjhweDtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkcHJvZ3JhbS1idWlsZC1tZW51LXNoYWRvdztcblxuICAgIC8vIF9wcm9ncmFtX2NhcmRzLnNjc3MgcmVsaWVzIG9uIHRoZSBnbG9iYWwgLmhpZGRlbiBhbmQgbG9zZXMgdG8gbGF0ZXIgcnVsZXM7XG4gICAgLy8gZGVjbGFyZSBpdCBsb2NhbGx5IHRoZSB3YXkgdGhlIHVwY29taW5nLXNlc3Npb24gbWVudSBkb2VzLlxuICAgICYuaGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tYnVpbGQtZGFuZ2VyO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGV4ZXJjaXNlIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGVjaG5pcXVlLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICB9XG5cbiAgLy8gRml4ZWQgNjRweCByb3dzLiBUaGUgdGFsbGVzdCBjaGlsZCBpcyB0aGUgMzZweCBhY3Rpb24gYnV0dG9uLCBzbyB0aGVyZSBpcyByb29tXG4gIC8vIHRvIGNlbnRyZSBldmVyeXRoaW5nIHdpdGhvdXQgdmVydGljYWwgcGFkZGluZyAtIGFuZCBfX2V4ZXJjaXNlLW5hbWUgdHJ1bmNhdGVzXG4gIC8vIHJhdGhlciB0aGFuIHdyYXBwaW5nLCB3aGljaCBpcyB3aGF0IHVzZWQgdG8gcHVzaCB0aGVzZSB0byA4MHB4LlxuICAmX19leGVyY2lzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAvLyBGaXhlZCB3aWR0aCB3aGV0aGVyIG9yIG5vdCBpdCBob2xkcyBhIGJ1dHRvbiwgc28gdGhlIGxhc3Qgcm93ICh3aGljaCBoYXNcbiAgLy8gbm93aGVyZSB0byBtb3ZlIGRvd24gdG8pIHN0aWxsIGxpbmVzIGl0cyBuYW1lIHVwIHdpdGggdGhlIHJvd3MgYWJvdmUgaXQuXG4gICZfX3Jlb3JkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gICZfX3Jlb3JkZXItYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWluZm8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBUaGUgdW5jbGFzc2VkIHZhbHVlIHNwYW5zIGluaGVyaXQgZnJvbSBoZXJlLCBzbyA1MDAgaXMgdGhlIHZhbHVlIHdlaWdodCBhbmRcbiAgLy8gX19hdHRyaWJ1dGUtbGFiZWwgb3ZlcnJpZGVzIGl0IGJhY2sgdG8gNjAwIGZvciB0aGUgXCJTZXRzOlwiIC8gXCJSZXBzOlwiIGxhYmVscy5cbiAgJl9fZXhlcmNpc2UtYXR0cmlidXRlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweCA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG5cbiAgICAvLyBCdWxsZXQgYmV0d2VlbiBhdHRyaWJ1dGUgcGFpcnMuIEFkamFjZW5jeSBpZ25vcmVzIEFuZ3VsYXIncyBuZy1pZiBjb21tZW50XG4gICAgLy8gbm9kZXMsIHNvIHRoaXMgaG9sZHMgaG93ZXZlciBtYW55IGF0dHJpYnV0ZXMgdGhlIGV4ZXJjaXNlIGhhcHBlbnMgdG8gaGF2ZS5cbiAgICA+IHNwYW4gKyBzcGFuOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAyMic7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIGNvbG9yOiAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgfVxuXG4gIC8vIFRyYXNoIGFuZCBwZW5jaWwgYXJlIHRoZSBzaGFyZWQgUE5HIGFzc2V0cyB0aGUgcHJvZ3JhbSBjYXJkcyB1c2VcbiAgLy8gKGljb24tZGVsZXRlLXRyYXNoLnBuZyAvIG15LXNjaGVkdWxlLWVkaXQucG5nKSAtIHRoZXkgY2FycnkgdGhlaXIgb3duIGNvbG91cixcbiAgLy8gc28gdGhlIGhvdmVyIHN0YXRlIG9ubHkgdGludHMgdGhlIGJhY2tncm91bmQuIFRoZSBwcmV2aWV3IGJ1dHRvbiBzdGF5cyBhblxuICAvLyBpbmxpbmUgU1ZHLCBtYXRjaGluZyB0aGUgc3VtbWFyeSBwYWdlJ3MgcGxheSBjb250cm9sLlxuICAmX19leGVyY2lzZS1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgICB9XG5cbiAgICAmLS1kYW5nZXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZlZjNmMjtcbiAgICB9XG4gIH1cblxuICAvLyAyNHB4LCBub3QgdGhlIDE2cHggdGhlIGNvbG91cmVkIGljb25zIHVzZSBlbHNld2hlcmU6IHRoZSAtZ3JheXNjYWxlIGV4cG9ydHNcbiAgLy8gY2FycnkgdHJhbnNwYXJlbnQgcGFkZGluZyAodGhlIGdseXBoIGZpbGxzIH41OC02NyUgb2YgaXRzIGNhbnZhcywgdnMgODgtMTAwJVxuICAvLyBmb3IgdGhlIGNvbG91cmVkIHBhaXIpLCBzbyBhIDE2cHggYm94IHdvdWxkIGRyYXcgdGhlbSBub3RpY2VhYmx5IHNtYWxsZXIuXG4gIC8vIEF0IDI0cHggdGhlIGdseXBocyBsYW5kIG9uIH4xNnB4IGFuZCB+MTRweCwgbWF0Y2hpbmcgdGhlIGNvbG91cmVkIHZlcnNpb25zLlxuICAmX19leGVyY2lzZS1hY3Rpb24taWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG5cbiAgICAvLyBUaGUgcGxheSBhc3NldCBpcyBmdWxsLWJsZWVkIGluIGl0cyBjYW52YXMsIHNvIGl0IG5lZWRzIHRoZSBzbWFsbGVyIGJveCB0b1xuICAgIC8vIGxhbmQgb24gdGhlIHNhbWUgb3B0aWNhbCBzaXplIGFzIHRoZSBwYWRkZWQgdHJhc2ggYW5kIHBlbmNpbCBhYm92ZS5cbiAgICAmLS1wbGF5IHtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19hZGQtc2VjdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMjBweCAxNnB4IDQwcHg7XG5cbiAgICAmX190eXBlLXRhYnMsXG4gICAgJl9fdGFicyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fdHlwZS10YWJzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLy8gYHNhZmVgIGRyb3BzIGJhY2sgdG8gZmxleC1zdGFydCBvbmNlIHRoZSBzdHJpcCBpcyB3aWRlciB0aGFuIHRoZSBjb2x1bW4sXG4gICAgICAvLyBzbyB0aGUgb3ZlcmZsb3cteCBzY3JvbGwgYWJvdmUgY2FuIHN0aWxsIHJlYWNoIHRoZSBmaXJzdCB0YWIgaW5zdGVhZCBvZlxuICAgICAgLy8gc3RyYW5kaW5nIGl0IHBhc3QgdGhlIGxlZnQgZWRnZS4gQnJvd3NlcnMgd2l0aG91dCB0aGUga2V5d29yZCBpZ25vcmUgdGhpc1xuICAgICAgLy8gc2Vjb25kIGRlY2xhcmF0aW9uIGFuZCBrZWVwIHRoZSBwbGFpbiBgY2VudGVyYCBhYm92ZS5cbiAgICAgIGp1c3RpZnktY29udGVudDogc2FmZSBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gS2VlcCB0aGUgcGxhY2Vob2xkZXIgdW5kZXIgdGhlIHNhbWUgY2VudHJlZCBzdHJpcCBpdCBzdGFuZHMgaW4gZm9yLlxuICAgICZfX3NrZWxldG9uLXR5cGUtdGFicyB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX190YWJzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAvLyBGdWxsIHdpZHRoLCBhbmQgdGhlIGhlaWdodCBmb2xsb3dzIHRoZSBwaWN0dXJlJ3Mgb3duIHJhdGlvIC0gc2FtZSByZWFzb25pbmcgYXNcbiAgICAvLyB0aGUgZGVza3RvcCB0aWxlLiBBIGZpeGVkIDE2MHB4IGhlcmUgd2FzIGEgMjoxLXRvLTQ6MSBib3ggZGVwZW5kaW5nIG9uIHRoZVxuICAgIC8vIHBob25lLCB3aGljaCBjcm9wcGVkIHRoZSBwaWN0dXJlIGhhcmQgaW4gd2hpY2hldmVyIGRpcmVjdGlvbiBkaWQgbm90IG1hdGNoLlxuICAgICZfX3RodW1iIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG5cbiAgICAvLyBUaXRsZSwgYnV0dG9uIGFuZCBrZWJhYiBlYWNoIHRha2UgdGhlaXIgb3duIGxpbmUgaGVyZSwgc28gdGhlIHJvdyBncm93cy5cbiAgICAmX190ZWNobmlxdWUtaGVhZGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX190ZWNobmlxdWUtdGl0bGUge1xuICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgfVxuXG4gICAgJl9fYWRkLWV4ZXJjaXNlIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIGFjdGlvbnMgd3JhcCBvbnRvIHRoZWlyIG93biBsaW5lIGhlcmUsIHNvIHRoZSByb3cgaGFzIHRvIGdyb3cgcGFzdCB0aGVcbiAgICAvLyBmaXhlZCBkZXNrdG9wIGhlaWdodCByYXRoZXIgdGhhbiBjbGlwcGluZyB0aGVtLlxuICAgICZfX2V4ZXJjaXNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgICZfX2V4ZXJjaXNlLWFjdGlvbnMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAvLyBTa2VsZXRvbiBmb2xsb3dzIHRoZSBzYW1lIG1vYmlsZSByZWZsb3cgYXMgdGhlIG1hcmt1cCBpdCBzdGFuZHMgaW4gZm9yLlxuICAgICZfX3NrZWxldG9uLWhlYWRlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDE4MHB4O1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICAgIGhlaWdodDogMjlweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10ZWNobmlxdWUtaGVhZGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10ZWNobmlxdWUtdGl0bGUge1xuICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tYWRkLWV4ZXJjaXNlIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tZXhlcmNpc2Uge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tZm9vdGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgJi0tcHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEF0IHRoZWlyIGRlc2t0b3Agc2l6ZSAoMTVweCB0eXBlIHBsdXMgMTZweCBvZiBwYWRkaW5nIGEgc2lkZSkgdGhlIHRocmVlIHR5cGVcbiAgLy8gdGFicyB0b3RhbCB+NDA5cHgsIHdpZGVyIHRoYW4gdGhlIGNvbnRlbnQgY29sdW1uIGJlbG93IH40NDBweCwgc28gdGhleVxuICAvLyB3cmFwcGVkIG9udG8gYSBzZWNvbmQgbGluZS4gMTNweCB0eXBlIHdpdGggOHB4IG9mIHBhZGRpbmcgbWVhc3VyZXMgfjMyMHB4IGluXG4gIC8vIEhlbHZldGljYSBOZXVlIEJvbGQgKFwiU2VsZi1DYXJlXCIgNzQgKyBcIlByYWN0aXRpb25lciBMaWdodFwiIDEyNCArXG4gIC8vIFwiUHJhY3RpdGlvbmVyIFByb1wiIDExNCwgcGx1cyB0d28gNHB4IGdhcHMpLCB3aGljaCBjbGVhcnMgdGhlIDM0M3B4IGNvbHVtbiBvZlxuICAvLyBhIDM3NXB4IHBob25lIHdpdGggcm9vbSB0byBzcGFyZSBmb3IgYSB3aWRlciBmYWxsYmFjayBmYWNlLiBmbGV4LXdyYXAgaXMgb2ZmXG4gIC8vIHNvIGFueXRoaW5nIG5hcnJvd2VyIHNjcm9sbHMgdGhlIHN0cmlwIChvdmVyZmxvdy14LCBzZXQgaW4gdGhlIG1vYmlsZSB0aWVyXG4gIC8vIGFib3ZlKSByYXRoZXIgdGhhbiBzaWxlbnRseSBzdGFja2luZyBpdCBhZ2Fpbi5cbiAgQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAgICZfX3R5cGUtdGFiIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuXG4gICAgJl9fdHlwZS10YWJzIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RlcCAyIG9mIHRoZSBTY2hlZHVsZSBQcm9ncmFtIGZsb3cgKC8jL3NjaGVkdWxlLzphdGhsZXRlSWQvOmF0aGxldGVQcm9ncmFtSWQsXG4vLyB2bS52aWV3ID09PSAnd2VlaycpOiBwaWNrIGEgc2Vzc2lvbiwgY2xpY2sgaXQgb250byBhIHdlZWtkYXkuXG4vLyBTaGFyZXMgaXRzIHRva2VuIHZhbHVlcyB3aXRoIF9wcm9ncmFtX3N1bW1hcnkuc2Nzcy5cblxuLy8gU2Vzc2lvbnMgYmVsb25naW5nIHRvIGEgZGlmZmVyZW50IHByb2dyYW0sIGxpc3RlZCB1bmRlciBcIkFsc28gc2NoZWR1bGVkXCIuXG4kc2NoZWR1bGUtYnVpbGQtbWV0YS1zZXA6ICNjNGM0Yzg7XG5cbi8vIHJyLWNhbGVuZGFyLWljb24uc3ZnIGZyb20gdGhlIGRlc2lnbiBzeXN0ZW0gKGFwcCByZXBvIHNyYy9hc3NldHMvc3ZnKSwgaW5saW5lZCBzb1xuLy8gaXQgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBzdmcvZm9udCBmaWxlLWxvYWRlciBvcmRlcmluZyBpbiB3ZWJwYWNrLmNvbmZpZy5cbiRzY2hlZHVsZS1idWlsZC1jYWxlbmRhci1pY29uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgd2lkdGglM0QlMjIxNiUyMiBoZWlnaHQlM0QlMjIxNiUyMiB2aWV3Qm94JTNEJTIyMCAwIDE2IDE2JTIyIGZpbGwlM0QlMjJub25lJTIyJTNFJTNDcGF0aCBkJTNEJTIyTTEyLjY2NjcgMS4zMzMzM0gxMlYwLjY2NjY2N0MxMiAwLjQ4OTg1NiAxMS45Mjk4IDAuMzIwMjg2IDExLjgwNDcgMC4xOTUyNjJDMTEuNjc5NyAwLjA3MDIzNzkgMTEuNTEwMSAwIDExLjMzMzMgMEMxMS4xNTY1IDAgMTAuOTg3IDAuMDcwMjM3OSAxMC44NjE5IDAuMTk1MjYyQzEwLjczNjkgMC4zMjAyODYgMTAuNjY2NyAwLjQ4OTg1NiAxMC42NjY3IDAuNjY2NjY3VjEuMzMzMzNINS4zMzMzM1YwLjY2NjY2N0M1LjMzMzMzIDAuNDg5ODU2IDUuMjYzMSAwLjMyMDI4NiA1LjEzODA3IDAuMTk1MjYyQzUuMDEzMDUgMC4wNzAyMzc5IDQuODQzNDggMCA0LjY2NjY3IDBDNC40ODk4NiAwIDQuMzIwMjkgMC4wNzAyMzc5IDQuMTk1MjYgMC4xOTUyNjJDNC4wNzAyNCAwLjMyMDI4NiA0IDAuNDg5ODU2IDQgMC42NjY2NjdWMS4zMzMzM0gzLjMzMzMzQzIuNDQ5NiAxLjMzNDM5IDEuNjAyMzcgMS42ODU5MiAwLjk3NzQ4IDIuMzEwODFDMC4zNTI1ODggMi45MzU3MSAwLjAwMTA1ODU3IDMuNzgyOTQgMCA0LjY2NjY3TDAgMTIuNjY2N0MwLjAwMTA1ODU3IDEzLjU1MDQgMC4zNTI1ODggMTQuMzk3NiAwLjk3NzQ4IDE1LjAyMjVDMS42MDIzNyAxNS42NDc0IDIuNDQ5NiAxNS45OTg5IDMuMzMzMzMgMTZIMTIuNjY2N0MxMy41NTA0IDE1Ljk5ODkgMTQuMzk3NiAxNS42NDc0IDE1LjAyMjUgMTUuMDIyNUMxNS42NDc0IDE0LjM5NzYgMTUuOTk4OSAxMy41NTA0IDE2IDEyLjY2NjdWNC42NjY2N0MxNS45OTg5IDMuNzgyOTQgMTUuNjQ3NCAyLjkzNTcxIDE1LjAyMjUgMi4zMTA4MUMxNC4zOTc2IDEuNjg1OTIgMTMuNTUwNCAxLjMzNDM5IDEyLjY2NjcgMS4zMzMzM1pNMS4zMzMzMyA0LjY2NjY3QzEuMzMzMzMgNC4xMzYyMyAxLjU0NDA1IDMuNjI3NTMgMS45MTkxMiAzLjI1MjQ1QzIuMjk0MTkgMi44NzczOCAyLjgwMjkgMi42NjY2NyAzLjMzMzMzIDIuNjY2NjdIMTIuNjY2N0MxMy4xOTcxIDIuNjY2NjcgMTMuNzA1OCAyLjg3NzM4IDE0LjA4MDkgMy4yNTI0NUMxNC40NTYgMy42Mjc1MyAxNC42NjY3IDQuMTM2MjMgMTQuNjY2NyA0LjY2NjY3VjUuMzMzMzNIMS4zMzMzM1Y0LjY2NjY3Wk0xMi42NjY3IDE0LjY2NjdIMy4zMzMzM0MyLjgwMjkgMTQuNjY2NyAyLjI5NDE5IDE0LjQ1NiAxLjkxOTEyIDE0LjA4MDlDMS41NDQwNSAxMy43MDU4IDEuMzMzMzMgMTMuMTk3MSAxLjMzMzMzIDEyLjY2NjdWNi42NjY2N0gxNC42NjY3VjEyLjY2NjdDMTQuNjY2NyAxMy4xOTcxIDE0LjQ1NiAxMy43MDU4IDE0LjA4MDkgMTQuMDgwOUMxMy43MDU4IDE0LjQ1NiAxMy4xOTcxIDE0LjY2NjcgMTIuNjY2NyAxNC42NjY3WiUyMiBmaWxsJTNEJTIyJTIzNkQ2RDZEJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTggMTFDOC41NTIyOCAxMSA5IDEwLjU1MjMgOSAxMEM5IDkuNDQ3NzIgOC41NTIyOCA5IDggOUM3LjQ0NzcyIDkgNyA5LjQ0NzcyIDcgMTBDNyAxMC41NTIzIDcuNDQ3NzIgMTEgOCAxMVolMjIgZmlsbCUzRCUyMiUyMzZENkQ2RCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk00LjY2NjUgMTFDNS4yMTg3OSAxMSA1LjY2NjUgMTAuNTUyMyA1LjY2NjUgMTBDNS42NjY1IDkuNDQ3NzIgNS4yMTg3OSA5IDQuNjY2NSA5QzQuMTE0MjIgOSAzLjY2NjUgOS40NDc3MiAzLjY2NjUgMTBDMy42NjY1IDEwLjU1MjMgNC4xMTQyMiAxMSA0LjY2NjUgMTFaJTIyIGZpbGwlM0QlMjIlMjM2RDZENkQlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNMTEuMzMzNSAxMUMxMS44ODU4IDExIDEyLjMzMzUgMTAuNTUyMyAxMi4zMzM1IDEwQzEyLjMzMzUgOS40NDc3MiAxMS44ODU4IDkgMTEuMzMzNSA5QzEwLjc4MTIgOSAxMC4zMzM1IDkuNDQ3NzIgMTAuMzMzNSAxMEMxMC4zMzM1IDEwLjU1MjMgMTAuNzgxMiAxMSAxMS4zMzM1IDExWiUyMiBmaWxsJTNEJTIyJTIzNkQ2RDZEJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuJHNjaGVkdWxlLWJ1aWxkLWNhbGVuZGFyLWljb24tbXV0ZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB3aWR0aCUzRCUyMjE2JTIyIGhlaWdodCUzRCUyMjE2JTIyIHZpZXdCb3glM0QlMjIwIDAgMTYgMTYlMjIgZmlsbCUzRCUyMm5vbmUlMjIlM0UlM0NwYXRoIGQlM0QlMjJNMTIuNjY2NyAxLjMzMzMzSDEyVjAuNjY2NjY3QzEyIDAuNDg5ODU2IDExLjkyOTggMC4zMjAyODYgMTEuODA0NyAwLjE5NTI2MkMxMS42Nzk3IDAuMDcwMjM3OSAxMS41MTAxIDAgMTEuMzMzMyAwQzExLjE1NjUgMCAxMC45ODcgMC4wNzAyMzc5IDEwLjg2MTkgMC4xOTUyNjJDMTAuNzM2OSAwLjMyMDI4NiAxMC42NjY3IDAuNDg5ODU2IDEwLjY2NjcgMC42NjY2NjdWMS4zMzMzM0g1LjMzMzMzVjAuNjY2NjY3QzUuMzMzMzMgMC40ODk4NTYgNS4yNjMxIDAuMzIwMjg2IDUuMTM4MDcgMC4xOTUyNjJDNS4wMTMwNSAwLjA3MDIzNzkgNC44NDM0OCAwIDQuNjY2NjcgMEM0LjQ4OTg2IDAgNC4zMjAyOSAwLjA3MDIzNzkgNC4xOTUyNiAwLjE5NTI2MkM0LjA3MDI0IDAuMzIwMjg2IDQgMC40ODk4NTYgNCAwLjY2NjY2N1YxLjMzMzMzSDMuMzMzMzNDMi40NDk2IDEuMzM0MzkgMS42MDIzNyAxLjY4NTkyIDAuOTc3NDggMi4zMTA4MUMwLjM1MjU4OCAyLjkzNTcxIDAuMDAxMDU4NTcgMy43ODI5NCAwIDQuNjY2NjdMMCAxMi42NjY3QzAuMDAxMDU4NTcgMTMuNTUwNCAwLjM1MjU4OCAxNC4zOTc2IDAuOTc3NDggMTUuMDIyNUMxLjYwMjM3IDE1LjY0NzQgMi40NDk2IDE1Ljk5ODkgMy4zMzMzMyAxNkgxMi42NjY3QzEzLjU1MDQgMTUuOTk4OSAxNC4zOTc2IDE1LjY0NzQgMTUuMDIyNSAxNS4wMjI1QzE1LjY0NzQgMTQuMzk3NiAxNS45OTg5IDEzLjU1MDQgMTYgMTIuNjY2N1Y0LjY2NjY3QzE1Ljk5ODkgMy43ODI5NCAxNS42NDc0IDIuOTM1NzEgMTUuMDIyNSAyLjMxMDgxQzE0LjM5NzYgMS42ODU5MiAxMy41NTA0IDEuMzM0MzkgMTIuNjY2NyAxLjMzMzMzWk0xLjMzMzMzIDQuNjY2NjdDMS4zMzMzMyA0LjEzNjIzIDEuNTQ0MDUgMy42Mjc1MyAxLjkxOTEyIDMuMjUyNDVDMi4yOTQxOSAyLjg3NzM4IDIuODAyOSAyLjY2NjY3IDMuMzMzMzMgMi42NjY2N0gxMi42NjY3QzEzLjE5NzEgMi42NjY2NyAxMy43MDU4IDIuODc3MzggMTQuMDgwOSAzLjI1MjQ1QzE0LjQ1NiAzLjYyNzUzIDE0LjY2NjcgNC4xMzYyMyAxNC42NjY3IDQuNjY2NjdWNS4zMzMzM0gxLjMzMzMzVjQuNjY2NjdaTTEyLjY2NjcgMTQuNjY2N0gzLjMzMzMzQzIuODAyOSAxNC42NjY3IDIuMjk0MTkgMTQuNDU2IDEuOTE5MTIgMTQuMDgwOUMxLjU0NDA1IDEzLjcwNTggMS4zMzMzMyAxMy4xOTcxIDEuMzMzMzMgMTIuNjY2N1Y2LjY2NjY3SDE0LjY2NjdWMTIuNjY2N0MxNC42NjY3IDEzLjE5NzEgMTQuNDU2IDEzLjcwNTggMTQuMDgwOSAxNC4wODA5QzEzLjcwNTggMTQuNDU2IDEzLjE5NzEgMTQuNjY2NyAxMi42NjY3IDE0LjY2NjdaJTIyIGZpbGwlM0QlMjIlMjNCMEIwQjAlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNOCAxMUM4LjU1MjI4IDExIDkgMTAuNTUyMyA5IDEwQzkgOS40NDc3MiA4LjU1MjI4IDkgOCA5QzcuNDQ3NzIgOSA3IDkuNDQ3NzIgNyAxMEM3IDEwLjU1MjMgNy40NDc3MiAxMSA4IDExWiUyMiBmaWxsJTNEJTIyJTIzQjBCMEIwJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTQuNjY2NSAxMUM1LjIxODc5IDExIDUuNjY2NSAxMC41NTIzIDUuNjY2NSAxMEM1LjY2NjUgOS40NDc3MiA1LjIxODc5IDkgNC42NjY1IDlDNC4xMTQyMiA5IDMuNjY2NSA5LjQ0NzcyIDMuNjY2NSAxMEMzLjY2NjUgMTAuNTUyMyA0LjExNDIyIDExIDQuNjY2NSAxMVolMjIgZmlsbCUzRCUyMiUyM0IwQjBCMCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk0xMS4zMzM1IDExQzExLjg4NTggMTEgMTIuMzMzNSAxMC41NTIzIDEyLjMzMzUgMTBDMTIuMzMzNSA5LjQ0NzcyIDExLjg4NTggOSAxMS4zMzM1IDlDMTAuNzgxMiA5IDEwLjMzMzUgOS40NDc3MiAxMC4zMzM1IDEwQzEwLjMzMzUgMTAuNTUyMyAxMC43ODEyIDExIDExLjMzMzUgMTFaJTIyIGZpbGwlM0QlMjIlMjNCMEIwQjAlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG5cbi8vIENvbXBvdW5kIHNlbGVjdG9yIG9uIHB1cnBvc2U6IF9wYXNzcG9ydC5zY3NzIChtYXJrLWFkZGl0aW9ucyBidW5kbGUsIHdoaWNoIGxvYWRzXG4vLyBhZnRlciB0aGlzIHNoZWV0KSByZWRlZmluZXMgYC52aWV3LWZsZXggeyBmbGV4OiAwIDAgYXV0byB9YCwgd2hpY2ggY29sbGFwc2VzIHRoZVxuLy8gcGFnZSBhbmQgZmxvYXRzIHRoZSBzaXRlIGZvb3RlciB1cC4gTWF0Y2hpbmcgdHdvIGNsYXNzZXMgb3V0LXNwZWNpZmllcyBpdC5cbi52aWV3LWZsZXgucHJvZ3JhbS1zY2hlZHVsZS1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIHN0cmV0Y2gsIG5vdCBgd2lkdGg6IDEwMCVgOiBfYXRobGV0ZV9zaWRlYmFyLnNjc3MgaW5kZW50cyBzaWJsaW5ncyBvZlxuICAvLyAubWVudS1jb250ZW50IHdpdGggbWFyZ2luLWxlZnQsIGFuZCBhIHZpZXdwb3J0LXdpZGUgMTAwJSBib3ggdGhlbiBvdmVyZmxvd3NcbiAgLy8gdG8gdGhlIHJpZ2h0IGFuZCBjZW50cmVzIHRoZSBjb2x1bW4gYWdhaW5zdCB0aGUgdmlld3BvcnQgaW5zdGVhZCBvZiB0aGVcbiAgLy8gcmFpbC1hZGphY2VudCBjb250ZW50IGNvbHVtbiAoYW5kIHRoZSBzaXRlIGZvb3RlcikuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4ucHJvZ3JhbS1zY2hlZHVsZSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMzJweCAyNHB4IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gQm90aCBzdGVwcy4gVGhlIGNvbnRlbnQgYm94IGlzIHBpbm5lZCB0byBleGFjdGx5IDY0MCAoNjg4IC0gMiB4IDI0cHhcbiAgLy8gcGFkZGluZykgYW5kIHRoZSB3aG9sZSBzdGFjayBjZW50ZXJzIHZpYSB0aGUgbWFyZ2luOiAwIGF1dG8gYWJvdmUuXG4gICYtLW5hcnJvdyB7XG4gICAgbWF4LXdpZHRoOiA2ODhweDtcbiAgfVxuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH0gcnVsZXMuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDI0cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gc3RhcnQgZGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19maWVsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19kYXRlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAvLyBmdXNpb24tY2FsZW5kYXIgcmVuZGVycyAuZGF0ZS1pbnB1dCAodGV4dCBpbnB1dCArIC5pbnB1dC1pY29uIGJ1dHRvbikgcGx1cyBhblxuICAvLyBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgcG9wdXAuIFRoZSBkZWZhdWx0IHNraW4gc3BsaXRzIHRoZW0gaW50byBhbiBpbnB1dCB3aXRoXG4gIC8vIGEgZmlsbGVkIGljb24gYnV0dG9uIGdsdWVkIHRvIGl0cyByaWdodDsgaGVyZSB0aGV5IGJlY29tZSBvbmUgMzIweDQwIGJveCB3aXRoXG4gIC8vIHRoZSBjYWxlbmRhciBnbHlwaCBzaXR0aW5nIGluc2lkZSBvbiB0aGUgcmlnaHQuXG4gICZfX2RhdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLmRhdGUtaW5wdXQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5kYXRlLWlucHV0IGlucHV0IHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzhweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZzogMCA0NHB4IDAgMTRweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBUaGUgc2hhcmVkIGZ1c2lvbi1jYWxlbmRhciB0ZW1wbGF0ZSBoYXJkY29kZXMgYW4gaWNvbW9vbiA8aSBjbGFzcz1cImljb24tY2FsZW5kYXJcIj4uXG4gICAgLy8gUmF0aGVyIHRoYW4gZm9yayB0aGF0IHRlbXBsYXRlIChpdCBpcyB1c2VkIGFjcm9zcyB0aGUgd2hvbGUgYXBwKSwgaGlkZSB0aGUgZ2x5cGhcbiAgICAvLyBhbmQgcGFpbnQgcnItY2FsZW5kYXItaWNvbi5zdmcgZnJvbSB0aGUgZGVzaWduIHN5c3RlbSBhcyB0aGUgYnV0dG9uIGJhY2tncm91bmQuXG4gICAgLmRhdGUtaW5wdXQgLmlucHV0LWljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgICBtYXgtd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRzY2hlZHVsZS1idWlsZC1jYWxlbmRhci1pY29uO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRhdGUtZGlzYWJsZWQgLmRhdGUtaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG5cbiAgICAgIC5pbnB1dC1pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNjaGVkdWxlLWJ1aWxkLWNhbGVuZGFyLWljb24tbXV0ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZW5kcy1zbG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDE0cHg7XG4gIH1cblxuICAmX19lbmRzIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC8vIGhvbWUtc2tlbGV0b24tYmxvY2sgc2V0cyBkaXNwbGF5OiBibG9jaywgd2hpY2ggZm9yY2VzIGEgc2Vjb25kIGxpbmUgaW4gdGhlXG4gIC8vIGRhdGUtcm93IGZsZXggY29sdW1uIHdoZW4gdGhlIGxhYmVsIGFuZCBza2VsZXRvbiBicmllZmx5IG92ZXJsYXAuXG4gICZfX3NrZWxldG9uLWVuZHMuaG9tZS1za2VsZXRvbi1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNDhweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbWV0YS1kYXRlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogODhweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgLy8gLS0gcmVjb21tZW5kZWQgY2FsbG91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTYW1lIDY0MHB4IGNvbHVtbiBhcyB0aGUgd2VlayBncmlkIGJlbG93IGl0LlxuICAmX19jYWxsb3V0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA2NDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gIH1cblxuICAmX19jYWxsb3V0LXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FsbG91dC10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1jYWxsb3V0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA2NDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gIH1cblxuICAmX19za2VsZXRvbi1jYWxsb3V0LXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNTglO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAvLyBNaXJyb3JzIF9fY2FsbG91dC10ZXh0OiAxNHB4IHR5cGUgYXQgbGluZS1oZWlnaHQgMS41ICgyMXB4IHBlciBsaW5lKS4gVGhlXG4gIC8vIGV4cGxhaW5lciBjb3B5IHdyYXBzIHRvIHR3byBsaW5lcyBpbiB0aGUgNjQwcHggY29sdW1uLlxuICAmX19za2VsZXRvbi1jYWxsb3V0LWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1jYWxsb3V0LXRleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjFweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogNzIlO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIHNlc3Npb24gY2hpcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fcHJvbXB0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gIH1cblxuICAmX19zZXNzaW9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3Nlc3Npb24tZ3JvdXAtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG5cbiAgJl9fY2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA5N3B4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS0zMDA7XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS03MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTcwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLSB3ZWVrIGdyaWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2dyaWQtc2Nyb2xsIHtcbiAgICBtYXJnaW46IDE2cHggMCAzMnB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cblxuICAvLyBGaXhlZCA2NDAgeCAxNjggYm94LiA2NDAgLyA3ID0gfjkxcHggcGVyIHdlZWtkYXkgY29sdW1uLCB3aGljaCBpcyB3aHkgdGhlXG4gIC8vIHBsYWNlZC9hZGQgYnViYmxlcyBiZWxvdyBydW4gYXQgMTJweCB3aXRoIHRpZ2h0IHBhZGRpbmcgYW5kIGVsbGlwc2l6ZS5cbiAgJl9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNjQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTY4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9uZSB3ZWVrZGF5IGNvbHVtbjogaXRzIGhlYWQgc3RhY2tlZCBvdmVyIGl0cyBjZWxsLiBDYXJyaWVzIHRoZSBjb2x1bW5cbiAgLy8gc2VwYXJhdG9yLCB3aGljaCB0aGUgY2VsbHMgdXNlZCB0byBkcmF3IGZvciB0aGVtc2VsdmVzLlxuICAmX19ncmlkLWRheSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19ncmlkLWhlYWQge1xuICAgIHBhZGRpbmc6IDEwcHggOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTMwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAvLyBPbmx5IHJlYWNoYWJsZSBmcm9tIHRoZSBzdGVwIDMgbW9udGggY2FsZW5kYXIsIHdoaWNoIHN0aWxsIHJlbmRlcnMgaXRzXG4gICAgLy8gc2V2ZW4gaGVhZHMgYXMgZmxhdCBzaWJsaW5ncy4gSW4gdGhlIHdlZWsgZ3JpZCBlYWNoIGhlYWQgaXMgYWxvbmUgaW5zaWRlXG4gICAgLy8gYSBfX2dyaWQtZGF5LCBzbyB0aGlzIG5ldmVyIG1hdGNoZXMgdGhlcmUuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9ubHkgdGhlIHdlZWsgZ3JpZCdzIG93biBoZWFkZXIgKHRoZSBzdGVwIDMgbW9udGggY2FsZW5kYXIgcmV1c2VzXG4gIC8vIF9fZ3JpZC1oZWFkIGFuZCBrZWVwcyBpdHMgbmF0dXJhbCBoZWlnaHQpLlxuICAmX19ncmlkLWRheSA+ICZfX2dyaWQtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgfVxuXG4gICZfX2dyaWQtY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZzogNnB4IDVweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgJl9fcGxhY2VkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiA0cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHB1cnBsZS05MDA7XG5cbiAgICAvLyBOYXJyb3cgY29sdW1uczogY2xpcCB0aGUgbGFiZWwgcmF0aGVyIHRoYW4gbGV0IGl0IHB1c2ggdGhlIGJ1YmJsZSB3aWRlci5cbiAgICA+IHNwYW4ge1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICAmX19wbGFjZWQtcmVtb3ZlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2FkZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAkcHVycGxlLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gc3BhbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgICB9XG4gIH1cblxuICAmX19hZGQtcGx1cyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gLS0gc3RlcCAzOiByZWFkLW9ubHkgc3RhcnQvZW5kIGxpbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fbWV0YS1saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmX19tZXRhLWRhdGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19tZXRhLXNlcCB7XG4gICAgY29sb3I6ICRzY2hlZHVsZS1idWlsZC1tZXRhLXNlcDtcbiAgfVxuXG4gICZfX21ldGEtZW5kcyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fZWRpdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogNHB4O1xuICAgIG1hcmdpbjogLTRweCAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIHN0ZXAgMzogcmV2aWV3IGhlYWRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb24tdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX3NlY3Rpb24taGVscCB7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gc3RlcCAzOiBjYWxlbmRhciArIGRheSBwYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzcwcHggMjQ2cHg7XG4gICAgZ2FwOiAyNHB4O1xuICAgIG1hcmdpbjogMTZweCAwIDMycHg7XG4gIH1cblxuICAmX19jYWxlbmRhci1zY3JvbGwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG5cbiAgLy8gMzcwcHggd2lkZTogMzcwIC8gNyA9IH41M3B4IHBlciB3ZWVrZGF5IGNvbHVtbi4gVGhhdCBpcyB1bmRlciB0aGUgNzJweCB0aGVcbiAgLy8gY2VsbHMgdXNlZCB0byBkZW1hbmQsIHNvIHRoZSBkYXRlIHRleHQgZHJvcHMgdG8gMTJweCwgdGhlIG1vbnRoIGFiYnJldmlhdGlvblxuICAvLyBtb3ZlcyB0byBpdHMgb3duIGxpbmUsIGFuZCB0aGUgcGFkZGluZyB0aWdodGVucyB0byBmaXQuXG4gICZfX2NhbGVuZGFyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAzNzBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gMTNweCB0YWxsIGV4YWN0bHksIGJvcmRlci1ib3R0b20gaW5jbHVkZWQuIFRoZSB3ZWVrZGF5IHN0cmlwIGNhcnJpZXMgbm9cbiAgLy8gY29sdW1uIHNlcGFyYXRvcnM7IHRoZSBkYXRlIGNlbGxzIGJlbG93IGl0IHN0aWxsIGRvLlxuICAmX19jYWxlbmRhciAmX19ncmlkLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMTNweDtcbiAgICBwYWRkaW5nOiAwIDJweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmX19jYWxlbmRhciAmX19ncmlkLWhlYWQgKyAmX19ncmlkLWhlYWQge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fY2FsZW5kYXItY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgIHBhZGRpbmc6IDZweCA0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIGZpcnN0IGNvbHVtbiBvZiBldmVyeSBib2R5IHJvdyAtIHRoZSA3IGhlYWQgY2VsbHMgb2NjdXB5IGNoaWxkcmVuIDEuLjcsXG4gICAgLy8gc28gYm9keSByb3dzIHN0YXJ0IGF0IDgsIDE1LCAyMiwgLi4uXG4gICAgJjpudGgtY2hpbGQoN24gKyAxKSB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gICAgfVxuXG4gICAgJi0tb3V0c2lkZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NhbGVuZGFyLWRheSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fY2FsZW5kYXItY2VsbC0tb3V0c2lkZSAmX19jYWxlbmRhci1kYXkge1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuICB9XG5cbiAgLy8gT3duIGxpbmUsIHNvIHRoZSBtb250aCBhYmJyZXZpYXRpb24gY2Fubm90IHdpZGVuIHRoZSBjZWxsLlxuICAmX19jYWxlbmRhci1tb250aCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBUaGUgc2VsZWN0ZWQgZGF5IGNhcnJpZXMgYSBwdXJwbGUgcnVsZSBhbG9uZyB0aGUgYm90dG9tIG9mIGl0cyBjZWxsLlxuICAmX19jYWxlbmRhci1jZWxsLS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgMCAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX2RvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWluLWhlaWdodDogNnB4O1xuICB9XG5cbiAgJl9fZG90IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA2cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuXG4gICAgJi0tb3RoZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTQwMDtcbiAgICB9XG5cbiAgICAvLyBjb21wbGV0ZWQgc2Vzc2lvbnMgcmVuZGVyIGhvbGxvdywgbWF0Y2hpbmcgdGhlIG9sZCBmYS1jaXJjbGUtbyBpZGlvbVxuICAgICYtLWRvbmUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmLS1vdGhlciN7Jn0tLWRvbmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1wYW5lbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZGF5LXBhbmVsLWRhdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gU2VwYXJhdGVzIHRoaXMgZGF5J3MgcHJvZ3JhbSBzZXNzaW9ucyBmcm9tIHNlc3Npb25zIG9uIG90aGVyIHByb2dyYW1zLlxuICAmX19kYXktcGFuZWwtbGFiZWwge1xuICAgIG1hcmdpbjogMTZweCAwIDhweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19kYXktY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAzNnB4IDE0cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcblxuICAgICYtLW90aGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRibGFjay0yMDA7XG4gICAgICBib3JkZXItY29sb3I6ICRibGFjay0zMDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC8vIEVtcHR5IHN0YXRlOiBubyByZW1vdmUgYnV0dG9uLCBzbyB0aGUgcGFkZGluZyBnb2VzIGJhY2sgdG8gc3ltbWV0cmljIGFuZFxuICAgIC8vIHRoZSBtZXNzYWdlIGNlbnRlcnMgb24gYm90aCBheGVzLiBUaGUgbWVzc2FnZSB3cmFwcyB0byB0d28gbGluZXMgYXQgdGhlXG4gICAgLy8gdXN1YWwgcGFuZWwgd2lkdGgsIHNvIHBhZGRpbmcgKyAyIHggbGluZS1oZWlnaHQgaGFzIHRvIHN0YXkgdW5kZXIgNjQuXG4gICAgJi0tZW1wdHkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1jYXJkLXJlbW92ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZGF5LWNhcmQtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX2RheS1jYXJkLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLy8gQSBjb2x1bW4gZ2FwIG9ubHkgbGFuZHMgKmJldHdlZW4qIGl0ZW1zIG9uIHRoZSBzYW1lIGxpbmUsIG5ldmVyIGF0IHRoZVxuICAgIC8vIHN0YXJ0IG9mIGEgd3JhcHBlZCBvbmUsIHNvIHRoaXMgcmVzZXJ2ZXMgcm9vbSBmb3IgdGhlIHNlcGFyYXRvciB3aXRob3V0XG4gICAgLy8gaW5kZW50aW5nIHRoZSBiYWRnZSB3aGVuIGl0IGRyb3BzIHRvIGEgcm93IG9mIGl0cyBvd24uXG4gICAgZ2FwOiA1cHggMTRweDtcbiAgICAvLyBDbGlwcyB0aGUgc2VwYXJhdG9yIGJlbG93IG9uY2UgaXQgZmFsbHMgb3V0c2lkZSB0aGlzIGJveC5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIFRoZSBpY29uIGFuZCBpdHMgbGFiZWwgYXJlIG9uZSBmbGV4IGl0ZW0sIHNvIGEgd3JhcCBtb3ZlcyB0aGUgd2hvbGUgYmFkZ2VcbiAgLy8gZG93biB0byB0aGUgbmV4dCByb3cgaW5zdGVhZCBvZiBzdHJhbmRpbmcgdGhlIGljb24gYXQgdGhlIGVuZCBvZiB0aGlzIG9uZS5cbiAgJl9fZGF5LWNhcmQtdHlwZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiA1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC8vIFRoZSBzZXBhcmF0b3IgaGFuZ3Mgb2ZmIHRoZSBiYWRnZSByYXRoZXIgdGhhbiBzaXR0aW5nIGluIHRoZSBmbG93LCBiZWNhdXNlXG4gIC8vIENTUyBjYW5ub3QgYXNrIHdoZXRoZXIgdGhlIGJhZGdlIHdyYXBwZWQuIEJlc2lkZSB0aGUgcHJvZ3JhbSBuYW1lIGl0IGxhbmRzXG4gIC8vIGluIHRoZSAxNHB4IGNvbHVtbiBnYXA7IG9uIGEgcm93IG9mIGl0cyBvd24gdGhlIGJhZGdlIHN0YXJ0cyBhdCB0aGUgbGVmdFxuICAvLyBlZGdlIG9mIF9fZGF5LWNhcmQtbWV0YSwgd2hpY2ggcHV0cyB0aGUgYnVsbGV0IG91dHNpZGUgdGhhdCBib3gsIHdoZXJlIHRoZVxuICAvLyBvdmVyZmxvdzogaGlkZGVuIGFib3ZlIGNsaXBzIGl0LlxuICAmX19kYXktY2FyZC10eXBlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDIyXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyA1cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNjaGVkdWxlLWJ1aWxkLW1ldGEtc2VwO1xuICB9XG5cbiAgJl9fZGF5LWNhcmQtaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19kYXktY2FyZC1kb25lIHtcbiAgICBjb2xvcjogI2IwYjBiMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgJl9fcmV2aWV3IHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICBnYXA6IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fZGF5LXBhbmVsIHtcbiAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gc2F2ZSBmYWlsdXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTaXRzIGRpcmVjdGx5IGFib3ZlIHRoZSBmb290ZXIgc28gaXQgbGFuZHMgd2hlcmUgdGhlIHVzZXIganVzdCBjbGlja2VkLlxuICAvLyBNYXRjaGVzIHRoZSBhdGhsZXRlLXByb2ZpbGUgZXJyb3IgYmFubmVyIChfcHJvZmlsZV9hdGhsZXRlLnNjc3MgX19lcnJvcikuXG4gICZfX2Vycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZkZWNlYztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBIZWxkIHRvIHRoZSBzYW1lIDY0MHB4IGNvbHVtbiBhcyB0aGUgY2FsbG91dCBhbmQgdGhlIHdlZWsgZ3JpZCwgc28gQmFja1xuICAvLyBzaXRzIG9uIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIHN0YWNrIGFuZCBDb250aW51ZSBvbiBpdHMgcmlnaHQgZWRnZS5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDY0MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyAxNDNweCBpcyB0aWdodCBhZ2FpbnN0IFwiQ29udGludWVcIiArIHRoZSAxOHB4IGFycm93LCBzbyB0aGUgc2lkZSBwYWRkaW5nXG4gICAgLy8gZHJvcHMgdG8gMTYgdG8ga2VlcCB0aGUgbGFiZWwgYW5kIGdseXBoIG9mZiB0aGUgZWRnZXMuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICB3aWR0aDogMTQzcHg7XG4gICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0td2lkZSB7XG4gICAgICB3aWR0aDogMTc1cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gbW9iaWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gNzY4cHggaXMgdGhlIGV4YWN0IHRocmVzaG9sZDogdGhlIGNvbnRlbnQgYm94IGlzIDcyMHB4IHRoZXJlLCBhZ2FpbnN0IHRoZVxuICAvLyB3ZWVrIGdyaWQncyA3IHggMTEwcHggPSA3NzBweCBtaW5pbXVtLiBTaWRld2F5cyBzY3JvbGxpbmcgd2FzIHRoZSBvbmx5XG4gIC8vIGVzY2FwZSBhbmQgaXQgaGlkIFRodS1TYXQgb2ZmIHNjcmVlbiB3aXRoIG5vdGhpbmcgdG8gaGludCB0aGV5IGV4aXN0ZWQuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgLy8gV2VlayBncmlkIGJlY29tZXMgc3RhY2tlZCByb3dzOiBkYXkgbmFtZSBvbiB0aGUgbGVmdCwgc2Vzc2lvbnMgYW5kIHRoZVxuICAgIC8vIGFkZCBidXR0b24gb24gdGhlIHJpZ2h0LlxuICAgICZfX2dyaWQtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXg6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJl9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fZ3JpZC1kYXkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBwYWRkaW5nOiA4cHggMTJweDtcblxuICAgICAgJiArICYge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gbG9uZ2VyIGEgY29sdW1uIGhlYWRlciAtIGl0IGlzIHRoZSByb3cncyBsYWJlbCwgc28gaXQgZHJvcHMgdGhlIGdyZXlcbiAgICAvLyBmaWxsIGFuZCB0aGUgcnVsZSBiZW5lYXRoIGl0LiA0OHB4IGNsZWFycyB0aGUgbG9uZ2VzdCB3ZWVrZGF5c1Nob3J0KClcbiAgICAvLyBlbnRyeSBpbiBib3RoIGxvY2FsZXMgKFwiV2VkXCIsIFwiTWkuXCIpLiBTY29wZWQgdG8gX19ncmlkLWRheSBzbyB0aGUgc3RlcCAzXG4gICAgLy8gY2FsZW5kYXIsIHdoaWNoIHNoYXJlcyBfX2dyaWQtaGVhZCwga2VlcHMgaXRzIHJlYWwgaGVhZGVyIHN0eWxpbmcuXG4gICAgJl9fZ3JpZC1kYXkgPiAmX19ncmlkLWhlYWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbGV4OiAwIDAgNDhweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cblxuICAgICZfX2dyaWQtY2VsbCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAvLyBXaXRob3V0IHRoaXMgdGhlIGZsZXggaXRlbSByZWZ1c2VzIHRvIHNocmluayBhbmQgYSBsb25nIHNlc3Npb24gbGFiZWxcbiAgICAgIC8vIHB1c2hlcyB0aGUgcm93IHdpZGVyIHRoYW4gdGhlIHZpZXdwb3J0LlxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fYWRkIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMyBtb250aCBjYWxlbmRhci4gQSBtb250aCBoYXMgdG8ga2VlcCBpdHMgc2V2ZW4tY29sdW1uIHNoYXBlLCBzb1xuICAgIC8vIHRoaXMgb25lIGdldHMgbmFycm93ZXIgY2VsbHMgcmF0aGVyIHRoYW4gc3RhY2tlZCByb3dzOiB+NDlweCBwZXIgY29sdW1uXG4gICAgLy8gYXQgMzc1cHgsIGVub3VnaCBmb3IgXCJTdW5cIiBhbmQgYSB0d28tZGlnaXQgZGF0ZS5cbiAgICAmX19jYWxlbmRhci1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCA0MHB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgICZfX2RhdGUtcm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU2Vzc2lvbiBoZWFkZXIgKHRlbXBsYXRlcy90b2RheV9zZXNzaW9uX2hlYWRlci5odG1sKSDigJQgdGhlIG51bWJlcmVkIHRhYiBzdHJpcFxuLy8gdGhhdCBmb2xsb3dzIGEgcnVuIHN0YXJ0ZWQgZnJvbSB0aGUgVG9kYXkgY2FyZCBhY3Jvc3MgdGhlIFIrUiB0ZXN0LCB0aGUgUjVcbi8vIHRlc3QsIGEgZGFpbHkgcHJvZ3JhbSBhbmQgdGhlIHRyYWluaW5nIGxvZy5cbi8vXG4vLyBMYXlvdXQgbm90ZTogdGhlIGluY2x1ZGUgc2l0cyBhcyB0aGUgZm91cnRoIHNpYmxpbmcgaW4gZWFjaCB2aWV3LCByaWdodCBhZnRlclxuLy8gLm1lbnUtY29udGVudCDigJQgZGVsaWJlcmF0ZWx5IE5PVCBgLmhlYWRlci1jb250ZW50ICsgKmAsIHdoaWNoIGlzIHJlc2VydmVkIGZvclxuLy8gdGhlIHBpbm5lZCBhdGhsZXRlIHNlbGVjdGlvbiBiYXIuIEJlY2F1c2UgdGhlIHJhaWwgaXMgc3VwcHJlc3NlZCBmb3IgdGhlIHdob2xlXG4vLyBvZiBhIHNlc3Npb24sIHRoZSBzaWRlYmFyIGd1dHRlciBydWxlcyBpbiBfcHJvZmlsZV9hdGhsZXRlLnNjc3Ncbi8vIChgPiAubWVudS1jb250ZW50IH4gKmApIG5ldmVyIGFwcGx5IGhlcmUgYW5kIHRoZSBzdHJpcCBydW5zIGZ1bGwtYmxlZWQuXG5cbiR0b2RheS1zZXNzaW9uLWRvbmUtYmc6ICNlN2Y1ZWU7XG4kdG9kYXktc2Vzc2lvbi10aXAtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4xNik7XG5cbi8vIFdoaWxlIGEgc2Vzc2lvbiBydW5zLCBNZW51QmFyQ29udHJvbGxlciBlbXB0aWVzIG1lbnVJdGVtcyBzbyB0aGUgbmF2IHJhaWxcbi8vIHN0ZXBzIGFzaWRlIChFeGl0IGlzIHRoZSBvbmx5IHdheSBvdXQpLiBUaGF0IGRyb3BzIC5oYXMtaXRlbXMsIHdoaWNoIHVud2luZHNcbi8vIHRoZSBzaWRlYmFyIGd1dHRlciBhbmQgdGhlIHBpbm5lZC1oZWFkZXIgb2Zmc2V0cyBvbiBpdHMgb3duIOKAlCBidXQgaXQgYWxzb1xuLy8gZHJvcHMgLm1lbnUtY29udGVudCBiYWNrIHRvIGl0cyBiYXNlIGBsb2NrLWhlaWdodCg2NXB4KWAgKyAuZHJrZ3JleWJnLCBpLmUuIGFcbi8vIDY1cHggZGFyayBiYW5kIHdoZXJlIHRoZSByYWlsIHVzZWQgdG8gYmUuIFRoZSBzdHJpcCdzIG93biBwcmVzZW5jZSBpbiB0aGUgRE9NXG4vLyBpcyB0aGUgc2lnbmFsIHRvIGNvbGxhcHNlIGl0LlxuLm1haW4tdmlldzpoYXMoLnRvZGF5LXNlc3Npb24pID4gLm1lbnUtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIG5nLWluY2x1ZGUgaW5qZWN0cyBhIHdyYXBwZXIsIGFuZCB0aGUgY29udHJvbGxlciBzaXRzIG9uIGEgc2Vjb25kIG9uZSwgc28gdGhlXG4vLyBzdHJpcCBpcyB0d28gbGV2ZWxzIGJlbG93IC5tYWluLXZpZXcncyBmbGV4IGNvbHVtbi4gS2VlcCBib3RoIHdyYXBwZXJzIHNpemVkXG4vLyB0byBjb250ZW50IGluc3RlYWQgb2Ygc3RyZXRjaGluZyAoY29tcGFyZSB0aGUgLnRvZGF5LWFza3MgaG9vayBpblxuLy8gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzKS5cbi5tYWluLXZpZXcgPiBkaXY6aGFzKC50b2RheS1zZXNzaW9uKSxcbi5tYWluLXZpZXcgPiBkaXYgPiBkaXY6aGFzKD4gLnRvZGF5LXNlc3Npb24pIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnRvZGF5LXNlc3Npb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvcnMgdGhlIGNvYWNoIG1hcmtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleDogMCAwIGF1dG87XG4gIC8vIDQ4cHggb3ZlcmFsbCwgYm9yZGVyIGluY2x1ZGVkIChib3gtc2l6aW5nIGlzIGJvcmRlci1ib3ggZnJvbSBfYmFzZS5zY3NzKS5cbiAgLy8gVGhlIHRhYnMgYW5kIEV4aXQgY2VudHJlIHRoZWlyIGNvbnRlbnQgaW5zaWRlIGl0IGluc3RlYWQgb2Ygc2V0dGluZyB0aGVcbiAgLy8gaGVpZ2h0IHdpdGggdmVydGljYWwgcGFkZGluZywgc28gYSBsb25nIGxhYmVsIGNhbm5vdCBncm93IHRoZSBzdHJpcC5cbiAgaGVpZ2h0OiA0OHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAvLyAtLSB0YWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNjcm9sbHMgc2lkZXdheXMgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgcm93IHdpZGU6IEV4aXQgaXMgZmxleDogMCAwIGF1dG8gYW5kXG4gIC8vIGl0cyBsYWJlbCBydW5zIGxvbmcgZm9yIHByYWN0aXRpb25lcnMsIHNvIHRoZSB0YWJzIGFyZSB3aGF0IGhhcyB0byBnaXZlLlxuICAmX190YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIC8vIFRha2VzIHRoZSByb3cncyBsZWZ0b3ZlciB3aWR0aCBhbmQgYWJzb3JicyB0aGUgb3ZlcmZsb3cgaXRzZWxmOyB3aXRob3V0XG4gICAgLy8gYG1pbi13aWR0aDogMGAgYSBmbGV4IGl0ZW0gcmVmdXNlcyB0byBzaHJpbmsgcGFzdCBpdHMgY29udGVudCwgd2hpY2ggd291bGRcbiAgICAvLyBwdXNoIEV4aXQgb2ZmIHRoZSByaWdodCBlZGdlIGluc3RlYWQgb2Ygc2Nyb2xsaW5nIHRoZSB0YWJzLlxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICAvLyBGaWdtYSBzdGFydHMgdGhlIGZpcnN0IHRhYiBpbiBmcm9tIHRoZSBlZGdlOyBwYWRkaW5nIHJhdGhlciB0aGFuIGEgbWFyZ2luXG4gICAgLy8gb24gdGhlIHRhYiBzbyB0aGUgZ3V0dGVyIHN0YXlzIHB1dCBvbmNlIHRoZSBzdHJpcCBzY3JvbGxzIHNpZGV3YXlzLlxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICAvLyBBIGZsZXggaXRlbSBzaHJpbmtzIGJ5IGRlZmF1bHQsIGFuZCB0aGUgbGFiZWwgaXMgbm93cmFwOiBvbiBhIG5hcnJvd1xuICAgIC8vIHZpZXdwb3J0IHRoYXQgc3F1ZWV6ZXMgdGhlIGJveCBiZWxvdyBpdHMgdGV4dCwgd2hpY2ggdGhlbiBzcGlsbHMgcGFzdCB0aGVcbiAgICAvLyB0YWIncyBiYWNrZ3JvdW5kIGFuZCBkaXZpZGVycy4gU2l6aW5nIGVhY2ggdGFiIHRvIGl0cyBjb250ZW50IGluc3RlYWRcbiAgICAvLyBoYW5kcyB0aGUgb3ZlcmZsb3cgdG8gLnRvZGF5LXNlc3Npb25fX3RhYnMsIHdoaWNoIHNjcm9sbHMuXG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmJmYWZkO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICB9XG5cbiAgICAgIC50b2RheS1zZXNzaW9uX19iYWRnZTpub3QoLnRvZGF5LXNlc3Npb25fX2JhZGdlLS1kb25lKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLnRvZGF5LXNlc3Npb25fX3RhYi1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTYW1lIDIyeDIyIHJvdW5kZWQgc3F1YXJlIGFzIC5zY2hlZHVsZS1zdGVwc19fbWFya2VyIGFuZCAudG9kYXktYXNrc19fYmFkZ2UuXG4gICZfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICYtLWRvbmUge1xuICAgICAgYmFja2dyb3VuZDogJHRvZGF5LXNlc3Npb24tZG9uZS1iZztcbiAgICAgIGNvbG9yOiAkZ3JlZW4tNTAwO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3RhYi1sYWJlbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX190YWItLWNvbXBsZXRlICZfX3RhYi1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBleGl0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2V4aXQge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIDEzcHggcmF0aGVyIHRoYW4gdGhlIHN2ZydzIG93biAxNjogQ1NTIGJlYXRzIHRoZSB3aWR0aC9oZWlnaHQgcHJlc2VudGF0aW9uXG4gIC8vIGF0dHJpYnV0ZXMsIGFuZCB0aGUgMCAwIDE2IDE2IHZpZXdCb3ggc2NhbGVzIHRoZSBnbHlwaCBkb3duIHdpdGggaXQuXG4gICZfX2V4aXQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICB9XG5cbiAgLy8gRmlnbWEgc2V0cyB0aGUgbGFiZWwgYSBoYWlyIGJlbG93IHRoZSByb3cncyBvcHRpY2FsIGNlbnRyZS4gQSByZWxhdGl2ZSBudWRnZVxuICAvLyByYXRoZXIgdGhhbiBwYWRkaW5nIHNvIGl0IGNhbm5vdCBmZWVkIGJhY2sgaW50byB0aGUgNDhweCByb3cgaGVpZ2h0LlxuICAmX19leGl0LWxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAvLyAtLSBmaXJzdC1ydW4gY29hY2ggbWFyayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgIGxlZnQ6IDI0cHg7XG4gICAgei1pbmRleDogODgwOyAvLyB1bmRlciB0aGUgcGlubmVkIGNocm9tZSAoODk1KyksIG92ZXIgcGFnZSBjb250ZW50XG4gICAgd2lkdGg6IDMyMHB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ4cHgpO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogJHRvZGF5LXNlc3Npb24tdGlwLXNoYWRvdztcblxuICAgIC8vIGNhcmV0IHBvaW50aW5nIHVwIGF0IHRoZSBmaXJzdCB0YWJcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgIGxlZnQ6IDI0cHg7XG4gICAgICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpcC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fdGlwLWJvZHkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX190aXAtYnRuIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAudG9kYXktc2Vzc2lvbiB7XG4gICAgJl9fdGFiLFxuICAgICZfX2V4aXQge1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudG9kYXktc2Vzc2lvbiB7XG4gICAgJl9fdGFicyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZXhpdCB7XG4gICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZXhpdC1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX3RpcCB7XG4gICAgICBsZWZ0OiAxNnB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICByaWdodDogMTZweDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGl0IGNvbmZpcm1hdGlvbiAodGVtcGxhdGVzL21vZGFsX3RvZGF5X3Nlc3Npb25fZXhpdC5odG1sLCBvcGVuZWQgdmlhXG4vLyBNb2RhbFNlcnZpY2Uub3BlbiArIENvbmZpcm1Db250cm9sbGVyKS5cbi8vXG4vLyBJdHMgb3duIHJvb3QgY2xhc3MgcmF0aGVyIHRoYW4gLm1vZGFsLWNvbnRhaW5lciwgc28gbm9uZSBvZiB0aGUgbGVnYWN5IG1vZGFsXG4vLyBjaHJvbWUgYXBwbGllcy4gVGhhdCBpcyBub3QganVzdCB0aWRpbmVzczogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMgbG9hZHNcbi8vIGFmdGVyIHRoaXMgYnVuZGxlIGFuZCBzZXRzIGAubW9kYWwtY29udGFpbmVyIGhlYWRlciB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZFxuLy8gI0VCRUJFQiAhaW1wb3J0YW50IH1gLCB3aGljaCBubyBhbW91bnQgb2Ygc3BlY2lmaWNpdHkgaGVyZSBjYW4gdW5kby4gVGhlIHNhbWVcbi8vIGJ1bmRsZSBhbHNvIGZvcmNlcyBganVzdGlmeS1jb250ZW50OiBjZW50ZXJgIG9uIHRoZSBoZWFkZXIgbGFiZWwgYW5kIHRoZVxuLy8gZm9vdGVyLCBhbmQgYWRkcyBgcGFkZGluZzogMTZweCAwIDIwcHhgIHRvIC5tb2RhbC1jb250YWluZXIuIFNpZGVzdGVwcGluZyB0aGVcbi8vIGVsZW1lbnQgc2VsZWN0b3JzIGVudGlyZWx5IGlzIHRoZSBvbmx5IHN0YWJsZSBmaXguIFByZWNlZGVudDogLm1laS1tb2RhbCxcbi8vIC5ibXQtbW9kYWwsIC53Y3ItbW9kYWwuXG4vL1xuLy8gLm1vZGFsICh0aGUgdHJhbnNjbHVzaW9uIHdyYXBwZXIpIHN0aWxsIGNvbnRyaWJ1dGVzIG1pbi1oZWlnaHQ6IDEwMHB4IGFuZCwgb25cbi8vIG1vYmlsZSwgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KS4gQm90aCBhcmUgaGFybWxlc3MgaGVyZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kdG9kYXktZXhpdC1ib3JkZXI6ICNkOWQ5ZDk7XG4kdG9kYXktZXhpdC1ndXR0ZXI6IDMycHg7XG4kdG9kYXktZXhpdC1ib2R5LXdpZHRoOiA0NjRweDtcbiR0b2RheS1leGl0LXZpZXdwb3J0LW1hcmdpbjogMTZweDtcblxuLnRvZGF5LWV4aXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAkdG9kYXktZXhpdC1ib2R5LXdpZHRoICsgKCR0b2RheS1leGl0LWd1dHRlciAqIDIpO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QgYW5kIHRoZSBjYXJkIGtlZXBzXG4gIC8vIGl0cyA1MjhweCBvbiBhIHBob25lLCBvdmVyZmxvd2luZyB0aGUgKG92ZXJmbG93OiBoaWRkZW4pIHZpZXdwb3J0LiBBIHZpZXdwb3J0XG4gIC8vIHVuaXQgaXMgd2hhdCBhY3R1YWxseSBib3VuZHMgaXQsIGxlYXZpbmcgYSBtYXJnaW4gb24gYm90aCBzaWRlcy5cbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skdG9kYXktZXhpdC12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIHBhZGRpbmc6ICR0b2RheS1leGl0LWd1dHRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyOHB4O1xuICAgIHJpZ2h0OiAyOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDQwcHggMCAwOyAvLyBrZWVwcyBhIGxvbmcgdGl0bGUgY2xlYXIgb2YgdGhlIGNsb3NlIGJ1dHRvblxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgd2lkdGg6ICR0b2RheS1leGl0LWJvZHktd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjRweCAwIDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgcGlucyBoZWlnaHQ6IDUwcHgg4oCUIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSBnaG9zdCBidXR0b24ncyA0OHB4LlxuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAvLyBSZXN1bWUg4oCUIGh1ZyA5N3g0OCBhdCAxNi8yMCBwYWRkaW5nLlxuICAgICYtLWdob3N0IHtcbiAgICAgIGdhcDogMTBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR0b2RheS1leGl0LWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5kIOKAlCBodWcgNzUgd2lkZSwgZml4ZWQgNDggdGFsbCwgYXQgMTQvMjQgcGFkZGluZy5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIHBhZGRpbmc6IDE0cHggMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudG9kYXktZXhpdCB7XG4gICAgcGFkZGluZzogMjBweDtcblxuICAgICZfX2Nsb3NlIHtcbiAgICAgIHRvcDogMTZweDtcbiAgICAgIHJpZ2h0OiAxNnB4O1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgLy8gTG9uZ2VyIGxvY2FsaXplZCBsYWJlbHMgKGRlKSBjYW4gZXhjZWVkIHRoZSBuYXJyb3dlZCBjYXJkOyB3cmFwIHJhdGhlclxuICAgICAgLy8gdGhhbiBwdXNoIHRoZSBwcmltYXJ5IGJ1dHRvbiBwYXN0IHRoZSBlZGdlLlxuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlY292ZXJ5ICsgUmVhZGluZXNzIERhaWx5IFRlc3QgKC8jL3JyZGFpbHl0ZXN0Lzp0ZXN0SWQvOmF0aGxldGVJZCkuXG4vLyBPbmUgY29tcG9uZW50IHBlciBzdGVwIOKAlCBSZWZ1ZWwsIFJlc3QsIFJlYWRpbmVzcyDigJQgZWFjaCBhIHNpbmdsZSBjZW50cmVkXG4vLyBjb2x1bW4gd2l0aCB0aGUgZm9vdGVyIGJ1dHRvbnMgcGlubmVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQuXG4vL1xuLy8gVGhlIC5yci1vcHRpb24gLyAucnItdGltZSBibG9ja3MgbGl2ZSBoZXJlIHJhdGhlciB0aGFuIGluIHRoZSBkaXJlY3RpdmVcbi8vIHRlbXBsYXRlcycgb3duIHNoZWV0IGJlY2F1c2UgdGVtcGxhdGVzL3NpbmdsZV9zZWxlY3RfbW9kZXJuLmh0bWwsXG4vLyBtdWx0aV9zZWxlY3RfbW9kZXJuLmh0bWwgYW5kIHRpbWVfcGlja2VyLmh0bWwgYXJlIG9ubHkgcmVhY2hhYmxlIGZyb20gdGhpc1xuLy8gcGFnZSAodGhlIGxlZ2FjeSB2YXJpYW50cyBzdGlsbCBzZXJ2ZSB0aGUgcHJpbnQtb3B0aW9ucyBtb2RhbHMpLlxuXG4kcnItcHVycGxlLWRpc2FibGVkOiAjYzViOGYwO1xuJHJyLXN0ZXAtbGluZTogI2UwZTBlMDtcblxuLy8gcnItY2hldnJvbi1kb3duLnN2ZywgaW5saW5lZCBzbyBpdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHN2ZyBmaWxlLWxvYWRlclxuLy8gb3JkZXJpbmcgaW4gd2VicGFjay5jb25maWcgKGNvbXBhcmUgX3NjaGVkdWxlX2J1aWxkLnNjc3MpLlxuJHJyLWNoZXZyb246IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB3aWR0aCUzRCUyMjEyJTIyIGhlaWdodCUzRCUyMjglMjIgdmlld0JveCUzRCUyMjAgMCAxMiA4JTIyIGZpbGwlM0QlMjJub25lJTIyJTNFJTNDcGF0aCBkJTNEJTIyTTEgMS41TDYgNi41TDExIDEuNSUyMiBzdHJva2UlM0QlMjIlMjM2RDZENkQlMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMS41JTIyIHN0cm9rZS1saW5lY2FwJTNEJTIycm91bmQlMjIgc3Ryb2tlLWxpbmVqb2luJTNEJTIycm91bmQlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG5cbi8vIFJhZGlvIHJpbmcgKHdoaXRlIGZpbGwsIDJweCBzdHJva2UsIDIwcHggb3V0ZXIpIGFuZCBkb3QgKDEycHgpLCBpbmxpbmVkIGZvclxuLy8gdGhlIHNhbWUgcmVhc29uLiBDb2xvdXJzIGFyZSAkcHVycGxlLTUwMCBhbmQgJGJsYWNrLTMwMC5cbiRyci1yYWRpby1yaW5nOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgdmlld0JveCUzRCUyMjAgMCAyMCAyMCUyMiUzRSUzQ2NpcmNsZSBjeCUzRCUyMjEwJTIyIGN5JTNEJTIyMTAlMjIgciUzRCUyMjklMjIgZmlsbCUzRCUyMiUyM2ZmZmZmZiUyMiBzdHJva2UlM0QlMjIlMjM5NzY4ZWIlMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiRyci1yYWRpby1yaW5nLWRpc2FibGVkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgdmlld0JveCUzRCUyMjAgMCAyMCAyMCUyMiUzRSUzQ2NpcmNsZSBjeCUzRCUyMjEwJTIyIGN5JTNEJTIyMTAlMjIgciUzRCUyMjklMjIgZmlsbCUzRCUyMiUyM2ZmZmZmZiUyMiBzdHJva2UlM0QlMjIlMjNkMWQxZDElMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiRyci1yYWRpby1kb3Q6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB2aWV3Qm94JTNEJTIyMCAwIDIwIDIwJTIyJTNFJTNDY2lyY2xlIGN4JTNEJTIyMTAlMjIgY3klM0QlMjIxMCUyMiByJTNEJTIyNiUyMiBmaWxsJTNEJTIyJTIzOTc2OGViJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXG4vLyBDb21wb3VuZCBzZWxlY3RvciBvbiBwdXJwb3NlOiBfcGFzc3BvcnQuc2NzcyAobWFyay1hZGRpdGlvbnMgYnVuZGxlLCB3aGljaFxuLy8gbG9hZHMgYWZ0ZXIgdGhpcyBzaGVldCkgcmVkZWZpbmVzIGAudmlldy1mbGV4IHsgZmxleDogMCAwIGF1dG8gfWAsIHdoaWNoXG4vLyBjb2xsYXBzZXMgdGhlIHBhZ2UgYW5kIGZsb2F0cyB0aGUgc2l0ZSBmb290ZXIgdXAuXG4udmlldy1mbGV4LnJyLXRlc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBzdHJldGNoLCBub3QgYHdpZHRoOiAxMDAlYDogdGhlIHNpZGViYXIgcnVsZXMgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIHB1dCBhXG4gIC8vIG1hcmdpbi1sZWZ0IG9uIGV2ZXJ5IHNpYmxpbmcgYWZ0ZXIgLm1lbnUtY29udGVudCwgYW5kIGEgZml4ZWQgMTAwJSB3aWR0aFxuICAvLyB3b3VsZCB0aGVuIG92ZXJmbG93IHRoZSByYWlsJ3Mgd2lkdGggdG8gdGhlIHJpZ2h0IChpbnZpc2libGUgdW5kZXJcbiAgLy8gYGJvZHkgeyBvdmVyZmxvdy14OiBoaWRkZW4gfWApIGFuZCBjYXJyeSB0aGUgY2VudHJlZCBjb2x1bW4gd2l0aCBpdC5cbiAgLy8gU3RyZXRjaGluZyBsZWF2ZXMgdGhlIGJveCBleGFjdGx5IHRoZSBzcGFjZSBiZXNpZGUgdGhlIHJhaWwsIHNvIHRoZSBjb2x1bW5cbiAgLy8gcmUtY2VudHJlcyBhcyB0aGUgcmFpbCBvcGVucywgY29sbGFwc2VzIG9yIGRpc2FwcGVhcnMuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4ucnItdGVzdCB7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfVxuICAvLyBydWxlcyBmcm9tIF9iYXNlLnNjc3MuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fcGFnZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogNDhweCAyNHB4IDY0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gc3RlcCBpbmRpY2F0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUmVhZC1vbmx5OiBCYWNrIGlzIHRoZSBvbmx5IHdheSB0byBhbiBlYXJsaWVyIHN0ZXAsIHNvIHRoZXNlIGNhcnJ5IG5vXG4gIC8vIGNsaWNrIGFmZm9yZGFuY2UuXG4gICZfX3N0ZXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICB9XG5cbiAgJl9fc3RlcCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcnItc3RlcC1saW5lO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuXG4gICAgJi0tcmVhY2hlZCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cblxuICAgIC8vIE9ubHkgdGhlIHN0ZXAgYmVpbmcgYW5zd2VyZWQgaXMgYm9sZDsgY29tcGxldGVkIHN0ZXBzIHN0YXkgYXQgNTAwLlxuICAgICYtLWN1cnJlbnQge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBxdWVzdGlvbiBzZWN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbi1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19xdWVzdGlvbiArICZfX3F1ZXN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiA0NHB4O1xuICB9XG5cbiAgLy8gU3RlcCBvbmUgaGFzIG5vIEJhY2sgYnV0dG9uLCBzbyB0aGUgcHJpbWFyeSBydW5zIHRoZSBmdWxsIGNvbHVtbiB3aWR0aC5cbiAgJl9fZm9vdGVyLS1zaW5nbGUgJl9fYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gICZfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAyOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIHN0ZXAgaXMgaW5jb21wbGV0ZTogdGhlIGJ1dHRvbiBzdGF5cyB2aXNpYmxlIGJ1dCBpbmVydCwgd2hpY2ggaXMgd2hhdFxuICAgIC8vIHNpZ25hbHMgdGhlcmUgaXMgc3RpbGwgc29tZXRoaW5nIHRvIGFuc3dlciBhYm92ZSBpdC5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRyci1wdXJwbGUtZGlzYWJsZWQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkcnItcHVycGxlLWRpc2FibGVkO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9uLWFycm93IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgJl9fcGFnZSB7XG4gICAgICBwYWRkaW5nOiAzMnB4IDIwcHggNDhweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAmX19zdGVwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLyAtLSBxdWVzdGlvbiBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucnItb3B0aW9uLWdyb3VwIHtcbiAgJl9fcHJvbXB0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9faGludCB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG59XG5cbi5yci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNnB4IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmLS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmLS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgLnJyLW9wdGlvbl9fY2hlY2sge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMzAwO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3JhZGlvIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRyci1yYWRpby1yaW5nLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3JhZGlvLS1jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRyci1yYWRpby1kb3QsICRyci1yYWRpby1yaW5nLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3RleHQge1xuICAgICAgY29sb3I6ICNiMGIwYjA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gRHJhd24gcmF0aGVyIHRoYW4gYSBuYXRpdmUgY29udHJvbDogdGhlIGFuc3dlcnMgYXJlIHRvZ2dsZWQgc3RyYWlnaHQgb24gdGhlXG4gIC8vIHF1ZXN0aW9uIG1vZGVsIGJ5IHRoZSBkaXJlY3RpdmUsIHNvIHRoZXJlIGlzIG5vIG5nLW1vZGVsIHRvIGJpbmQgYW4gaW5wdXQgdG8uXG4gIC8vXG4gIC8vIFJpbmcgYW5kIGRvdCBhcmUgU1ZHIGxheWVycyBvdmVyIHRoZSBzYW1lIDIweDIwIGJveCwgbm90IGEgYm9yZGVyIHBsdXMgYVxuICAvLyBjZW50cmVkIGNoaWxkLiBBdCBmcmFjdGlvbmFsIGRldmljZSBwaXhlbCByYXRpb3MgKFdpbmRvd3MgMTI1JS8xNTAlXG4gIC8vIHNjYWxpbmcsIG5vbi0xMDAlIHpvb20pIHRoZSBib3JkZXIgc25hcHMgdG8gd2hvbGUgZGV2aWNlIHBpeGVscyB3aGlsZSB0aGVcbiAgLy8gY2hpbGQgZG9lcyBub3QsIHdoaWNoIHB1c2hlZCB0aGUgZG90IDFweCBvZmYtY2VudHJlLiBCb3RoIGxheWVycyByYXN0ZXJpc2VcbiAgLy8gaW4gb25lIGNvb3JkaW5hdGUgc3BhY2UsIHNvIHRoZXkgc3RheSBjb25jZW50cmljIGF0IGFueSBzY2FsZS5cbiAgJl9fcmFkaW8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkcnItcmFkaW8tcmluZyBjZW50ZXIgLyAxMDAlIDEwMCUgbm8tcmVwZWF0O1xuXG4gICAgJi0tY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkcnItcmFkaW8tZG90LCAkcnItcmFkaW8tcmluZztcbiAgICB9XG4gIH1cblxuICAmX19jaGVjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuXG4gICAgJi0tY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC0tIHNsZWVwIGR1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5yci1zbGVlcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTZweDtcbn1cblxuLnJyLXRpbWUge1xuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fc2VsZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgc2VsZWN0IHtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICBwYWRkaW5nOiAwIDM2cHggMCAxNHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2l0cyBvdmVyIHRoZSBzZWxlY3QsIHNvIGl0IG11c3Qgbm90IHN3YWxsb3cgdGhlIGNsaWNrIHRoYXQgb3BlbnMgaXQuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAxNHB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkcnItY2hldnJvbiBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21lcmlkaWVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAgICZfX3JvdyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fbWVyaWRpZW0ge1xuICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBEYWlseSBSZWFkaW5lc3MgVGVzdCAoLyMvcjVkYWlseXRlc3QvOnRlc3RJZC86YXRobGV0ZUlkKS5cbi8vIFNpbmdsZSBjZW50cmVkIGNvbHVtbiwgbWF0Y2hpbmcgdGhlIHNoYXBlIG9mIHRoZSBSK1IgZGFpbHkgdGVzdCBidXQgb24gdGhlXG4vLyBwYWdlJ3MgZXhpc3Rpbmcgd2hpdGUgZ3JvdW5kLiA3MDBweCBpcyB0aGUgbWF4LXdpZHRoIC5yci1tZW51IC8gLnJyLWtleSBhcmVcbi8vIGFscmVhZHkgYnVpbHQgZm9yIGluIF90ZXN0cy5zY3NzLCBzbyB0aGUgc2VnbWVudGVkIGFuc3dlciBiYXIgZmlsbHMgdGhlXG4vLyBjb2x1bW4gZXhhY3RseSBhbmQgdGhlIHR3byBib2R5LW1hcCBmaWd1cmVzIHN0aWxsIHNpdCBzaWRlIGJ5IHNpZGUuXG5cblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2hcbi8vIGxvYWRzIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaFxuLy8gY29sbGFwc2VzIHRoZSBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLlxuLnZpZXctZmxleC5yNS10ZXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWAg4oCUIHNlZSB0aGUgbm90ZSBpbiBfcnJfZGFpbHlfdGVzdC5zY3NzOiB0aGVcbiAgLy8gc2lkZWJhciBydWxlcyBpbiBfcHJvZmlsZV9hdGhsZXRlLnNjc3MgcHV0IGEgbWFyZ2luLWxlZnQgb24gZXZlcnkgc2libGluZ1xuICAvLyBhZnRlciAubWVudS1jb250ZW50LCBzbyBhIGZpeGVkIDEwMCUgd2lkdGggb3ZlcmZsb3dzIHRoZSByYWlsIHRvIHRoZSByaWdodFxuICAvLyBhbmQgY2FycmllcyB0aGUgY2VudHJlZCBjb2x1bW4gd2l0aCBpdC5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLnI1LXRlc3Qge1xuICAmX19wYWdlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiA0OHB4IDI0cHggNjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDMycHg7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIFJlcGxhY2VzIGAucnItZm9ybS1ncm91cCAuZmllbGQtZ3JvdXAgeyBwYWRkaW5nOiAwIDAgMzVweCB9YCBhbmRcbiAgLy8gYC5maWVsZCArIC5maWVsZCB7IG1hcmdpbi10b3A6IDMzcHggfWAgZnJvbSBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucyxcbiAgLy8gd2hpY2ggbm8gbG9uZ2VyIGFwcGx5IG5vdyB0aGF0IHRoZSBmaWVsZHNldCBjaHJvbWUgaXMgZ29uZS5cbiAgJl9fcXVlc3Rpb24gKyAmX19xdWVzdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuXG4gIC8vIGZpZWxkX3NldF9zZWxlY3QuaHRtbCBpcyBhcHBlbmRlZCBpbnNpZGUgaXRzIG93biBlbGVtZW50ICh0aGUgZGlyZWN0aXZlXG4gIC8vIGRvZXMgbm90IHNldCByZXBsYWNlKSwgYW5kIGFuIHVua25vd24gZWxlbWVudCBpcyBpbmxpbmUgYnkgZGVmYXVsdC5cbiAgZmllbGQtc2V0LXNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBXYXMgYC5yci1mb3JtLWdyb3VwIC5jYXRlZ29yeWAgKEBpbmNsdWRlIGgtY29tcGFjdCkgaW4gbWFyay1hZGRpdGlvbnMg4oCUXG4gIC8vIHRoYXQgcnVsZSBpcyBzY29wZWQgdG8gdGhlIGZpZWxkc2V0IHRoaXMgcGFnZSBubyBsb25nZXIgcmVuZGVycy5cbiAgJl9fcXVlc3Rpb24tdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDExcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcblxuICAgIC8vIEtlZXBzIHRoZSBibHVlIHNlcXVlbmNlIG51bWJlciB0aGUgLnJyLWZvcm0tZ3JvdXAgaDMgcnVsZSB1c2VkIHRvIGdpdmUgaXQuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQW4gZXh0cmEgbGluZSBvZiBhaXIgYmVmb3JlIHRoZSBzb3JlbmVzcyBwaWNrZXIsIHdoaWNoIHJlYWRzIGFzIGl0cyBvd25cbiAgLy8gc2VjdGlvbiByYXRoZXIgdGhhbiBhbm90aGVyIG51bWJlcmVkIHF1ZXN0aW9uLiBXcml0dGVuIGFzIGEgZGVzY2VuZGFudFxuICAvLyByYXRoZXIgdGhhbiBgJl9fcXVlc3Rpb24tLWJvZHltYXBgIHNvIGl0IG91dHdlaWdocyB0aGUgYWRqYWNlbnQtc2libGluZ1xuICAvLyBydWxlIGFib3ZlLCB3aGljaCBpcyBhbHNvIHR3byBjbGFzc2VzIGRlZXAuXG4gIC5yNS10ZXN0X19xdWVzdGlvbi0tYm9keW1hcCB7XG4gICAgbWFyZ2luLXRvcDogNjRweDtcbiAgfVxuXG4gIC8vIHRlbXBsYXRlcy9zdmdfYm9keV9tYXBzIGxheXMgRnJvbnQgYW5kIEJhY2sgb3V0IGluIGEgPHRhYmxlPiwgd2hpY2ggc2l0c1xuICAvLyBmbHVzaCBsZWZ0IGluIHRoZSBjb2x1bW4gb24gaXRzIG93bjsgY2VudHJlIGl0IGFnYWluc3QgdGhlIHBhZ2UgaW5zdGVhZC5cbiAgLnI1LWJvZHktd3JhcHBlciB0YWJsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDQ4cHg7XG5cbiAgICAvLyBUaGUgZ2xvYmFsIGBidXR0b25gIHJ1bGUgaW4gX2Jhc2Uuc2NzcyB1cHBlcmNhc2VzIGV2ZXJ5IGJ1dHRvbiBhbmQgb3BlbnNcbiAgICAvLyB0aGUgdHJhY2tpbmcgdG8gMXB4IHRvIHN1aXQgY2FwczsgYm90aCBoYXZlIHRvIGNvbWUgYmFjayBvZmYgaGVyZS5cbiAgICBidXR0b24ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgLy8gYGJ1dHRvbi5wcmltYXJ5YCBpbiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucyBzZXRzIGBmb250LXdlaWdodDogYm9sZGBcbiAgICAgIC8vIGF0IGVxdWFsIHNwZWNpZmljaXR5IGFuZCB0aGF0IGJ1bmRsZSBsb2FkcyBhZnRlciB0aGlzIG9uZSwgc28gdGhlXG4gICAgICAvLyB3ZWlnaHQgaGFzIHRvIGJlIHNldCBvbmUgY2xhc3MgZGVlcGVyIHRvIHdpbi5cbiAgICAgICYucHJpbWFyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICAmX19wYWdlIHtcbiAgICAgIHBhZGRpbmc6IDMycHggMjBweCA0OHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgICZfX2Zvb3RlciBidXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBUaGUgY29tcGxldGlvbiBzY3JlZW4gc2hhcmVkIGJ5IGJvdGggZGFpbHkgdGVzdHM6IFJlY292ZXJ5ICsgUmVhZGluZXNzXG4vLyAodmlld3MvcnJkYWlseXRlc3RyZXN1bHRzLmh0bWwsIC8jL3Rlc3RyZXN1bHRzLzphdGhsZXRlSWQvOnRyaElkLzUpIGFuZCB0aGVcbi8vIERhaWx5IFJlYWRpbmVzcyBUZXN0ICh2aWV3cy9yNXRlc3RyZXN1bHRzLmh0bWwsIHNhbWUgcm91dGUgd2l0aCB0ZXN0SWQgMjYpLlxuLy9cbi8vIFRoZSBzaGFyZWQgdGVzdHJlc3VsdHMuaHRtbCBjaHJvbWUgaXMgc3dpdGNoZWQgb2ZmIGZvciB0aGVzZSByZXN1bHQgdHlwZXMsIHNvXG4vLyB0aGlzIGJsb2NrIG93bnMgdGhlIHdob2xlIHBhZ2UgYmVsb3cgdGhlIHNlc3Npb24gdGFiIHN0cmlwLlxuXG4kZGFpbHktcmVzdWx0cy1oYWlybGluZTogI2YwZjBmMDtcbiRkYWlseS1yZXN1bHRzLXVwOiAjMjBiNzY5O1xuJGRhaWx5LXJlc3VsdHMtZG93bjogI2M0MmEzYjtcblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2hcbi8vIGxvYWRzIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaFxuLy8gY29sbGFwc2VzIHRoZSBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLlxuLnZpZXctZmxleC5kYWlseS1yZXN1bHRzLXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBTZWUgdGhlIG1hdGNoaW5nIG5vdGUgaW4gX3JyX2RhaWx5X3Rlc3Quc2NzczogYHdpZHRoOiAxMDAlYCBmaWdodHMgdGhlXG4gIC8vIHNpZGViYXIgZ3V0dGVyIG1hcmdpbiBhbmQgcHVzaGVzIHRoZSBjZW50cmVkIGNvbHVtbiBvZmYgdG8gdGhlIHJpZ2h0LlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcblxuICAvLyB0ZXN0cmVzdWx0cy5odG1sIGtlZXBzIGl0cyBzaGFyZWQgLmNvbnRhaW5lciB3aWRlIHdyYXBwZXIgYXJvdW5kIGV2ZXJ5XG4gIC8vIHJlc3VsdCB0eXBlOyBhcyBhIGZsZXggaXRlbSBpdCBzaHJpbmstdG8tZml0cywgd2hpY2ggd291bGQgY29sbGFwc2UgdGhlXG4gIC8vIGNlbnRyZWQgY29sdW1uIGluc2lkZSBpdC5cbiAgPiAuY29udGFpbmVyIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmRhaWx5LXJlc3VsdHMge1xuICB3aWR0aDogMTAwJTtcbiAgLy8gNjQwcHggY2FyZCArIHRoZSAyNHB4IGd1dHRlcnMgZWl0aGVyIHNpZGUgb2YgaXQuXG4gIG1heC13aWR0aDogNjg4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA0OHB4IDI0cHggNjRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH1cbiAgLy8gcnVsZXMgZnJvbSBfYmFzZS5zY3NzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFR3byBzdGFja2VkIGRpc2NzOiB0aGUgNzJweCB3YXNoIGlzIG9ubHkgfjIlIG9mZiB0aGUgcGFnZSBiYWNrZ3JvdW5kLCBzbyBvblxuICAvLyBpdHMgb3duIGl0IHJlYWRzIGFzIG5vdGhpbmcuIFRoZSBpbm5lciBkaXNjIGlzIHdoYXQgbWFrZXMgaXQgYSBoYWxvLlxuICAmX19jaGVjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNzJweDtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gIH1cblxuICAmX19jaGVjay1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMjAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19zY29yZS1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNjb3JlIHJpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIHN2Z0RvdWdobnV0IHNoaXBzIGFuIDgwcHggc3ZnIG9uIGEgMTUwIHZpZXdCb3ggd2l0aCBhIDQvNnB4IHN0cm9rZS4gVGhlIGRhc2hcbiAgLy8gb2Zmc2V0cyBhcmUgY29tcHV0ZWQgZnJvbSByPTcwLCBzbyBzY2FsZSBhbmQgc3Ryb2tlIGFyZSBmcmVlIHRvIGNoYW5nZS5cbiAgLy8gc3Ryb2tlLXdpZHRoIGFuZCBmb250LXNpemUgYmVsb3cgYXJlIHZpZXdCb3ggdW5pdHMsIG5vdCByZW5kZXJlZCBwaXhlbHMg4oCUXG4gIC8vIHRoZSAxNTAtdW5pdCBib3ggaXMgZHJhd24gYXQgMTE0cHgsIHNvIHRoZXkgc2NhbGUgYnkgMTE0LzE1MDogMTAgbGFuZHMgYXRcbiAgLy8gNy42cHggYW5kIDYzIGxhbmRzIGF0IHRoZSA0OHB4IHRoZSBkZXNpZ24gY2FsbHMgZm9yLlxuICAmX19nYXVnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDRweDtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTE0cHg7XG4gICAgICBoZWlnaHQ6IDExNHB4O1xuICAgIH1cblxuICAgIC5vdXRsaW5lLFxuICAgIC5wcm9ncmVzcyB7XG4gICAgICBzdHJva2Utd2lkdGg6IDEwO1xuICAgIH1cblxuICAgIC8vIFRoZSBkaXJlY3RpdmUgcGFpbnRzIHRoZSBzY29yZSBpbiB0aGUgcmlzayBjb2xvdXI7IHRoZSBkZXNpZ24ga2VlcHMgdGhlXG4gICAgLy8gbnVtYmVyIGJsYWNrIGFuZCBsZXRzIHRoZSByaW5nIGNhcnJ5IHRoZSBjb2xvdXIuIEEgQ1NTIHJ1bGUgYmVhdHMgdGhlXG4gICAgLy8gZmlsbCBwcmVzZW50YXRpb24gYXR0cmlidXRlIHRoZSBkaXJlY3RpdmUgc2V0cy5cbiAgICAudGV4dCB7XG4gICAgICBmb250LXNpemU6IDYzcHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZmlsbDogIzAwMDAwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19jYXJkIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmX19iYW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgfVxuXG4gICZfX2Jhbm5lci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX2Jhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIC0tIHRyZW5kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RyZW5kcy1sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogMjRweCAwIDEycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fdHJlbmRzLWRvdCB7XG4gICAgY29sb3I6ICNiMGIwYjA7XG4gIH1cblxuICAmX19jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiArIC5kYWlseS1yZXN1bHRzX19jb2x1bW4ge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZmlyc3QtdGVzdCBsYXlvdXQgaGFzIG5vIHNwYXJrbGluZXMsIHNvIGl0IGhhcyBubyB0cmVuZHMgbGFiZWwgYWJvdmVcbiAgICAvLyBpdCB0byBzcGFjZSBpdCBvZmYgdGhlIGJhbm5lciBlaXRoZXIuXG4gICAgJi0tZmxhdCB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC8vIFRoZSBEUlQgcmVwb3J0cyBhIHNpbmdsZSBzY29yZSByYXRoZXIgdGhhbiBSK1IncyB0aHJlZSwgc28gaXQgaGFzIG5vXG4gICAgLy8gY29sdW1uIGdyaWQgdG8gYWxpZ24gdG8gYW5kIHJlYWRzIGFzIGFuIG9ycGhhbiBwdXNoZWQgYWdhaW5zdCB0aGUgbGVmdFxuICAgIC8vIGVkZ2Ugb2YgdGhlIGNhcmQuIENlbnRyZSBpdCBpbnN0ZWFkLCBhbmQgaG9sZCBhIGNvbHVtbidzIHdvcnRoIG9mIHdpZHRoXG4gICAgLy8gc28gdGhlIHNwYXJrbGluZSBrZWVwcyBpdHMgcHJvcG9ydGlvbnMuXG4gICAgJi0tc2luZ2xlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuZGFpbHktcmVzdWx0c19fY29sdW1uIHtcbiAgICAgICAgZmxleDogMCAxIDI0MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5kYWlseS1yZXN1bHRzX19jb2x1bW4tdmFsdWUge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb2x1bW4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAmX19jb2x1bW4tbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fY29sdW1uLXZhbHVlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fY29sdW1uLXNjb3JlIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX3NwYXJrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gIC8vIFNoYXJlZCBieSB0aGUgdHJlbmQgY29sdW1ucyBhbmQgdGhlIGNoYW5nZSByb3dzLlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmLS11cCB7XG4gICAgICBjb2xvcjogJGRhaWx5LXJlc3VsdHMtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJGRhaWx5LXJlc3VsdHMtZG93bjtcbiAgICB9XG4gIH1cblxuICAmX190cmVuZC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gIH1cblxuICAmX19ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNvcmVuZXNzIGJvZHkgbWFwIChEYWlseSBSZWFkaW5lc3MgVGVzdCBvbmx5KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaGUgd3JhcHBlciBtdXN0IGtlZXAgaXRzIGByNS1ib2R5LXdyYXBwZXJgIGNsYXNzIGFsb25nc2lkZSB0aGlzIG9uZTpcbiAgLy8gbWl4aW5zL3Rlc3RfcmVzdWx0c19wZGYgcmFzdGVyaXplcyB0aGUgbGl2ZSBTVkcgYnkgdGhhdCBzZWxlY3Rvci5cbiAgJl9fc29yZW5lc3Mge1xuICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRkYWlseS1yZXN1bHRzLWhhaXJsaW5lO1xuICB9XG5cbiAgJl9fc29yZW5lc3MtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gVGhlIGRpcmVjdGl2ZSBsYXlzIHRoZSB0d28gdmlld3Mgb3V0IGluIGEgPHRhYmxlPjsgY2VudHJlIGl0IGFuZCBzdHJpcCB0aGVcbiAgLy8gbGVnYWN5IHRhYmxlIGNocm9tZSBfYmFzZS5zY3NzIHB1dHMgb24gb25lLlxuICAmX19ib2R5bWFwIHtcbiAgICB0YWJsZSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYm9keW1hcC1maWd1cmUge1xuICAgIG1heC13aWR0aDogMTI4cHg7XG4gICAgbWF4LWhlaWdodDogMjcycHg7XG4gIH1cblxuICAvLyAtLSBkaXNjbG9zdXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19kaXNjbG9zdXJlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY2hldnJvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLy8gLS0gd2hhdCBjaGFuZ2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fY2hhbmdlcyB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgfVxuXG4gICZfX2NoYW5nZXMtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fY2hhbmdlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgICB9XG4gIH1cblxuICAmX19jaGFuZ2UtbmFtZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fY2hhbmdlLWRldGFpbCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gY3RhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmX19jdGEtYXJyb3cge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAzMnB4IDIwcHggNDhweDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIC8vIFRocmVlIGNvbHVtbnMgb2YgMzBweCBudW1iZXJzIGRvIG5vdCBzdXJ2aXZlIGEgcGhvbmUgd2lkdGguXG4gICAgJl9fY29sdW1ucyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxNnB4O1xuICAgIH1cblxuICAgICZfX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFN0YWNrZWQsIHNvIHRoZSBkaXZpZGVyIGhhcyB0byB0dXJuIHdpdGggdGhlIGNvbHVtbnMuXG4gICAgJl9fY29sdW1ucyAuZGFpbHktcmVzdWx0c19fY29sdW1uICsgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRoZSBjb21wbGV0aW9uIHNjcmVlbiBmb3IgYSBwcm9ncmFtIHNlc3Npb24gKHRlbXBsYXRlcy9zZXNzaW9uX2NvbXBsZXRlLmh0bWwpLCBzd2FwcGVkXG4vLyBpbiBvdmVyIHZpZXdzL2RhaWx5Lmh0bWwgb25jZSBDb21wbGV0ZSBTZXNzaW9uIGxhbmRzLlxuLy9cbi8vIFNpYmxpbmcgb2YgX2RhaWx5X3Rlc3RfcmVzdWx0cy5zY3NzIGFuZCBkZWxpYmVyYXRlbHkgYSBzZXBhcmF0ZSBibG9jayByYXRoZXIgdGhhbiBhXG4vLyByZXVzZSBvZiAuZGFpbHktcmVzdWx0czogdGhhdCBvbmUgb3ducyB0aGUgZGFpbHktdGVzdCBwYWdlIGZyYW1lLCBpbmNsdWRpbmcgYSBjb21wb3VuZFxuLy8gLnZpZXctZmxleCBzZWxlY3RvciB0aGlzIHBhZ2UgaGFzIG5vIG5lZWQgb2YgKGl0IHNpdHMgaW4gYW4gb3JkaW5hcnkgLnZpZXctbGF5b3V0KS4gVGhlXG4vLyB0b2tlbnMgYmVsb3cgYXJlIHRoZSBzYW1lIHZhbHVlcyBvbiBwdXJwb3NlIC0gcGVyLXBhcnRpYWwgdG9rZW4gYmxvY2tzIGFyZSB0aGVcbi8vIGNvbnZlbnRpb24gaGVyZSwgc2VlIHRoZSBpZGVudGljYWwgc2V0IGluIF9kYWlseV9wcm9ncmFtLnNjc3MuXG5cbi8vIFRoZSBGaWdtYSBjYWxscyB0aGUgaGVhZGxpbmUsIHRoZSBzdHJlYWsgYW5kIHRoZSBzdGF0IHZhbHVlcyB0cnVlIGJsYWNrIHJhdGhlciB0aGFuXG4vLyB0aGUgbmVhci1ibGFjayAkYmxhY2stODAwIHRoZSBkYWlseS10ZXN0IHNjcmVlbnMgdXNlIGZvciBldmVyeXRoaW5nLlxuLy8gVGhlIHN0YXQgdGlsZXMnIGxhYmVscyBzaXQgYSBzaGFkZSBkYXJrZXIgdGhhbiB0aGUgbXV0ZWQgZ3JleSB1c2VkIGVsc2V3aGVyZS5cbiRzZXNzaW9uLWNvbXBsZXRlLXRyYWNrOiAjZTllY2VmO1xuJHNlc3Npb24tY29tcGxldGUtZmlsbDogIzIwYjc2OTtcblxuLy8gbmctaW5jbHVkZSBsZWF2ZXMgYW4gdW5zdHlsZWQgd3JhcHBlciBkaXYgYmV0d2VlbiAudmlldy1sYXlvdXQgYW5kIHRoaXMgYmxvY2s7IGFzIGFcbi8vIGZsZXggaXRlbSBpdCBzaHJpbmstdG8tZml0cyBhbmQgdGhlIGNlbnRyZWQgY29sdW1uIGRyaWZ0cyBsZWZ0LlxuLnZpZXctbGF5b3V0ID4gZGl2Omhhcyg+IC5zZXNzaW9uLWNvbXBsZXRlKSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5zZXNzaW9uLWNvbXBsZXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIDY0MHB4IGNhcmQgKyB0aGUgMjRweCBndXR0ZXJzIGVpdGhlciBzaWRlIG9mIGl0LCBtYXRjaGluZyAuZGFpbHktcmVzdWx0cy5cbiAgbWF4LXdpZHRoOiA2ODhweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDQ4cHggMjRweCA2NHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfSBydWxlcyBmcm9tXG4gIC8vIF9iYXNlLnNjc3MsIHdoaWNoIG90aGVyd2lzZSB3cmVjayB0aGUgQ1RBLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVHdvIHN0YWNrZWQgZGlzY3M6IHRoZSA3MnB4IHdhc2ggaXMgb25seSB+MiUgb2ZmIHRoZSBwYWdlIGJhY2tncm91bmQsIHNvIG9uIGl0cyBvd25cbiAgLy8gaXQgcmVhZHMgYXMgbm90aGluZy4gVGhlIGlubmVyIGRpc2MgaXMgd2hhdCBtYWtlcyBpdCBhIGhhbG8uXG4gICZfX2NoZWNrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA3MnB4O1xuICAgIGhlaWdodDogNzJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgfVxuXG4gICZfX2NoZWNrLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0yMDA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIC8vIFRoZSBoZWFkbGluZSBzZXRzIHNvbGlkIGF0IGxpbmUtaGVpZ2h0IDEsIHNvIHRoZSBnYXAgdG8gdGhlIHN0cmVhayByb3cgaGFzIHRvIGNvbWVcbiAgICAvLyBlbnRpcmVseSBmcm9tIHRoaXMgbWFyZ2luIHJhdGhlciB0aGFuIGZyb20gbGVhZGluZy5cbiAgICBtYXJnaW46IDAgMCA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC8vIDEwMCUgaW4gdGhlIEZpZ21hIC0gdGhlIGhlYWRsaW5lIHNldHMgc29saWQsIHVubGlrZSB0aGUgMjgvMzYgdGhlIGRhaWx5LXRlc3RcbiAgICAvLyBzY3JlZW5zIHVzZS5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gIC8vIC0tIHN0cmVhayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0cmVhayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fc3RyZWFrLWZsYW1lIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIC0tIGNhcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFRoZSAyNDNweCBpcyBhIGZpeGVkIEZpZ21hIGhlaWdodCwgYW5kIHRoZSBtYXJnaW5zIGJlbG93IGFyZSBidWRnZXRlZCB0byBsYW5kIG9uIGl0XG4gIC8vIGV4YWN0bHk6IDQwIHBhZGRpbmcgKyA0NCBiYW5uZXIgKyA1OCBwcm9ncmVzcyArIDI0IGdhcCArIDc3IHRpbGUuIENoYW5naW5nIGFueSBvZlxuICAvLyB0aG9zZSBwaWVjZXMgbWVhbnMgcmUtY2hlY2tpbmcgdGhpcyBudW1iZXIgb3IgdGhlIGNhcmQgd2lsbCBjbGlwLiBUaGUgbW9iaWxlIGJsb2NrXG4gIC8vIHJlbGVhc2VzIGl0IGJhY2sgdG8gYXV0bywgd2hpY2ggaXMgd2hlcmUgdGhlIGJhbm5lciBjb3B5IGNhbiB3cmFwIHRvIHR3byBsaW5lcy5cbiAgJl9fY2FyZCB7XG4gICAgaGVpZ2h0OiAyNDNweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC8vIEljb24gYW5kIHRleHQgY2VudHJlIGFzIG9uZSBncm91cCwgdW5saWtlIHRoZSBjYXJkJ3Mgb3RoZXIgcm93czogdGhlIGJhbm5lciBpcyB0aGVcbiAgLy8gb25seSBmdWxsLXdpZHRoIGVsZW1lbnQgaW5zaWRlIHRoZSBvdGhlcndpc2UgbGVmdC1hbGlnbmVkIGNhcmQuXG4gIC8vIDQ0cHggZml4ZWQsIHBlciB0aGUgRmlnbWEuIE5vIHZlcnRpY2FsIHBhZGRpbmc6IGFsaWduLWl0ZW1zIGNlbnRyZXMgdGhlIDIycHggbGluZVxuICAvLyBhbmQgdGhlIDIwcHggaWNvbiBpbnNpZGUgdGhlIGJhbmQgaW5zdGVhZCwgc28gdGhlIGhlaWdodCBpcyB0aGUgc2luZ2xlIGNvbnRyb2wuXG4gICZfX2Jhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fYmFubmVyLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX2Jhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAvLyBLZWVwcyBhIHdyYXBwZWQgc2Vjb25kIGxpbmUgY2VudHJlZCB1bmRlciB0aGUgZmlyc3QgcmF0aGVyIHRoYW4gZmx1c2hpbmcgbGVmdC5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHByb2dyZXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19wcm9ncmVzcyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuXG4gICZfX3Byb2dyZXNzLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fcHJvZ3Jlc3Mtd2VlayB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBQdXNoZWQgcmlnaHQgYnkgaXRzIG93biBtYXJnaW4gcmF0aGVyIHRoYW4gc3BhY2UtYmV0d2Vlbiwgc28gaXQgc3RheXMgcmlnaHQtYWxpZ25lZFxuICAvLyB3aGVuIHRoZSB3ZWVrIGNvdWxkIG5vdCBiZSBkZXJpdmVkIGFuZCBpdCBpcyB0aGUgb25seSBjaGlsZC5cbiAgJl9fcHJvZ3Jlc3MtY291bnQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fYmFyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkc2Vzc2lvbi1jb21wbGV0ZS10cmFjaztcbiAgfVxuXG4gICZfX2Jhci1maWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRzZXNzaW9uLWNvbXBsZXRlLWZpbGw7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICB9XG5cbiAgLy8gLS0gc3RhdCB0aWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cblxuICAvLyA3N3B4IGZpeGVkLCBwZXIgdGhlIEZpZ21hOiAxMi8xMiBwYWRkaW5nIGFyb3VuZCBhIDIwcHggbGFiZWwsIGl0cyA0cHggZ2FwIGFuZCBhIDI4cHhcbiAgLy8gdmFsdWUgY29tZXMgdG8gNzYsIHNvIHRoZSBoZWlnaHQgaGFzIGEgcGl4ZWwgb2Ygc2xhY2sgcmF0aGVyIHRoYW4gY2xpcHBpbmcuXG4gICZfX3N0YXQge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDc3cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gIH1cblxuICAmX19zdGF0LWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19zdGF0LXZhbHVlIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gIC8vIC0tIGN0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDI4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWFycm93IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMzJweCAyMHB4IDQ4cHg7XG5cbiAgICAvLyBUaGUgMjRweCBoZWFkbGluZSBhbHJlYWR5IGZpdHMgYSBwaG9uZSwgc28gb25seSB0aGUgNDhweCBzdHJlYWsgc3RlcHMgZG93bi5cbiAgICAmX19zdHJlYWsge1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgZm9udC1zaXplOiAzNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgfVxuXG4gICAgJl9fc3RyZWFrLWZsYW1lIHtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgIH1cblxuICAgIC8vIEFsbCB0aHJlZSBmaXhlZCBoZWlnaHRzIGFyZSBkZXNrdG9wLW9ubHkuIFRoZSB0aWxlcyBzdGFjayBoZXJlIGFuZCB0aGUgYmFubmVyIGNvcHlcbiAgICAvLyBjYW4gd3JhcCwgc28gaG9sZGluZyAyNDMvNDQvNzcgd291bGQgY2xpcC5cbiAgICAmX19jYXJkIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19iYW5uZXIge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgIC8vIFR3byB0aWxlcyBkbyBub3Qgc3Vydml2ZSBhIHBob25lIHdpZHRoIHNpZGUgYnkgc2lkZS5cbiAgICAmX19zdGF0cyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FDT0EsQUFBQSxDQUFDLEVBQUUsQ0FBQyxBQUFBLE9BQU8sRUFBRSxDQUFDLEFBQUEsTUFBTSxFQUFQLENBQUMsQW9EcUVkLGNBQWMsQUFBQSxNQUFNLEVwRHJFUCxDQUFDLEFvRHlFZCxlQUFlLEFBQUEsTUFBTSxFcER6RVIsQ0FBQyxBb0RpRmQsYUFBYSxBQUFBLE1BQU0sQ3BEakZFO0VHcUJuQixrQkFBa0IsRUhwQkUsT0FBTztFR3FCeEIsZUFBZSxFSHJCRSxPQUFPO0VHc0JuQixVQUFVLEVIdEJFLE9BQU87RUcwQjdCLHFCQUFxQixFSHpCRSxJQUFJO0VHMEJ0QixnQkFBZ0IsRUgxQkUsSUFBSTtFRzJCdEIsZ0JBQWdCLEVIM0JFLElBQUk7RUc0QnJCLGVBQWUsRUg1QkUsSUFBSTtFRzZCakIsV0FBVyxFSDdCRSxJQUFJLEdBQzFCOztBQUVELEFBQUEsSUFBSSxDQUFDO0VHZ0JILGtCQUFrQixFSGZFLFVBQVU7RUdn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 */