/* Web
------------------------- */
/* stylelint-disable declaration-no-important */
/* stylelint-disable selector-max-compound-selectors, selector-max-universal */
/* stylelint-enable selector-max-compound-selectors, selector-max-universal */
/* Elements
------------------------- */
/* Element - Example
------------------------- */
.elm-example {
  display: block; }

/* Components
------------------------- */
/* Component - Distributed Pumping Tool
------------------------- */
.cmp-distributed-pumping-tool {
  display: block;
  text-align: center; }

.cmp-distributed-pumping-tool__result {
  display: block;
  text-align: center; }
  .cmp-distributed-pumping-tool__result .cmp-distributed-pumping-tool__result-text--light {
    color: #FFFFFF; }
  .cmp-distributed-pumping-tool__result .cmp-distributed-pumping-tool__result-text--dark {
    color: #000000; }

.cmp-distributed-pumping-tool__form {
  display: block;
  text-align: left; }

/* Component - Distributed Pumping Tool Basic
------------------------- */
.cmp-distributed-pumping-tool-basic {
  width: 100%; }

.cmp-distributed-pumping-tool-basic__header {
  margin-bottom: 1.875rem;
  max-width: 35.625rem;
  margin-left: auto;
  margin-right: auto; }
  .cmp-distributed-pumping-tool-basic__header > *:first-child {
    margin-top: 0 !important; }
    .cmp-distributed-pumping-tool-basic__header > *:first-child > [data-component-root] > * {
      margin-top: 0 !important; }
  .cmp-distributed-pumping-tool-basic__header > *:last-child {
    margin-bottom: 0 !important; }
    .cmp-distributed-pumping-tool-basic__header > *:last-child > [data-component-root] > * {
      margin-bottom: 0 !important; }

.cmp-distributed-pumping-tool-basic__step-list {
  margin-bottom: 1rem;
  counter-reset: section;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  list-style: none;
  margin-left: 0;
  margin-top: 0;
  padding: 0; }

.cmp-distributed-pumping-tool-basic__loader {
  font-size: 0 !important;
  line-height: 0 !important;
  min-height: 6rem;
  position: relative; }
  .cmp-distributed-pumping-tool-basic__loader::after {
    z-index: 10;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg width='200px' height='200px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' class='lds-liquid' style='background: none;'%3E %3Ccircle cx='50' cy='50' fill='%23FFFFFF' r='40' stroke='%23DEDEDE' stroke-width='5'/%3E %3Cpath d='M 15 50 Q 32.5 54.2049 50 50 Q 67.5 45.7951 85 50 A 35 35 0 0 1 15 50' fill='%23C9C9C9'%3E %3Canimate attributeName='d' calcMode='spline' values='M15 50 Q32.5 40 50 50 Q67.5 60 85 50 A35 35 0 0 1 15 50;M15 50 Q32.5 60 50 50 Q67.5 40 85 50 A35 35 0 0 1 15 50;M15 50 Q32.5 40 50 50 Q67.5 60 85 50 A35 35 0 0 1 15 50' keyTimes='0;0.5;1' dur='1.9' keySplines='0.5 0 0.5 1;0.5 0 0.5 1' begin='0s' repeatCount='indefinite'/%3E %3C/path%3E %3C/svg%3E") center center/4rem no-repeat;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }

.cmp-distributed-pumping-tool-basic__step-list-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 33.333%; }
  .cmp-distributed-pumping-tool-basic__step-list-item--step-1::after, .cmp-distributed-pumping-tool-basic__step-list-item--step-2::after {
    -ms-flex-item-align: center;
        align-self: center;
    background: #D6D6D6;
    content: "";
    display: block;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    height: 0.125rem; }
  .cmp-distributed-pumping-tool-basic__step-list-item--step-1 {
    width: 95%; }
  .cmp-distributed-pumping-tool-basic__step-list-item--step-2 {
    width: 5%;
    min-width: 90px; }
    .cmp-distributed-pumping-tool-basic__step-list-item--step-2::before {
      -ms-flex-item-align: center;
          align-self: center;
      background: #D6D6D6;
      content: "";
      display: block;
      -webkit-box-flex: 1;
          -ms-flex: 1 1 auto;
              flex: 1 1 auto;
      height: 0.125rem; }

.cmp-distributed-pumping-tool-basic__step-label {
  font-size: 0.75rem;
  line-height: 1.5;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
  max-width: 6.25rem;
  padding: 0 0.625rem; }

.cmp-distributed-pumping-tool-basic__step-counter {
  position: relative;
  font-size: 1.125rem;
  line-height: 1.33333;
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
  min-width: 2.5rem; }
  .cmp-distributed-pumping-tool-basic__step-counter:not([disabled])::after {
    background-color: #0068B4;
    bottom: 0;
    content: "";
    height: 0.1875rem;
    position: absolute;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transition: -webkit-transform 0.2s ease-out;
    transition: -webkit-transform 0.2s ease-out;
    transition: transform 0.2s ease-out;
    transition: transform 0.2s ease-out, -webkit-transform 0.2s ease-out;
    -webkit-transform-origin: left center;
            transform-origin: left center;
    right: 0;
    width: 100%;
    will-change: transform; }
  .cmp-distributed-pumping-tool-basic__step-counter:not([disabled])[aria-selected="true"]::after, .cmp-distributed-pumping-tool-basic__step-counter:not([disabled]).is-active::after {
    -webkit-transform: scaleX(1);
            transform: scaleX(1); }

.cmp-distributed-pumping-tool-basic__legend {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cmp-distributed-pumping-tool-basic__fields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
  margin: 0;
  text-align: left;
  margin-bottom: 1px; }
  .cmp-distributed-pumping-tool-basic--results .cmp-distributed-pumping-tool-basic__fields {
    border-bottom: 1px solid #D6D6D6; }

.cmp-distributed-pumping-tool-basic__field-group {
  background-color: #FFFFFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
  width: 100%; }
  .cmp-distributed-pumping-tool-basic__field-group--step-1 {
    width: 100%; }
  .cmp-distributed-pumping-tool-basic__field-group--step-2 {
    width: 100%; }

.cmp-distributed-pumping-tool-basic__specifier,
.cmp-distributed-pumping-tool-basic__field {
  color: #333333;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin: 0;
  min-width: 0;
  padding: 0.625rem; }
  .cmp-distributed-pumping-tool-basic__specifier > *:first-child,
  .cmp-distributed-pumping-tool-basic__field > *:first-child {
    margin-top: 0 !important; }
    .cmp-distributed-pumping-tool-basic__specifier > *:first-child > [data-component-root] > *,
    .cmp-distributed-pumping-tool-basic__field > *:first-child > [data-component-root] > * {
      margin-top: 0 !important; }
  .cmp-distributed-pumping-tool-basic__specifier > *:last-child,
  .cmp-distributed-pumping-tool-basic__field > *:last-child {
    margin-bottom: 0 !important; }
    .cmp-distributed-pumping-tool-basic__specifier > *:last-child > [data-component-root] > *,
    .cmp-distributed-pumping-tool-basic__field > *:last-child > [data-component-root] > * {
      margin-bottom: 0 !important; }

.cmp-distributed-pumping-tool-basic__field:empty {
  display: none; }

.cmp-distributed-pumping-tool-basic__field--disabled {
  opacity: 0.2; }

.cmp-distributed-pumping-tool-basic__field .cmp-form-text__text[disabled],
.cmp-distributed-pumping-tool-basic__field .cmp-form-options__field[disabled] {
  background-color: transparent; }

.cmp-distributed-pumping-tool-basic__field .cmp-form-options__label,
.cmp-distributed-pumping-tool-basic__field .cmp-form-text__label,
.cmp-distributed-pumping-tool-basic__field .cmp-form-options__legend {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: bold; }

.cmp-distributed-pumping-tool-basic__button {
  display: none; }

.cmp-distributed-pumping-tool-basic__mobile-button {
  margin-top: 1.875rem;
  /* stylelint-disable media-feature-no-missing-punctuation */
  /* stylelint-enable media-feature-no-missing-punctuation */ }

.cmp-distributed-pumping-tool-basic__specifier {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

/* Component - Example
------------------------- */
.cmp-example {
  display: block; }

/* Modules
------------------------- */
/* Module - Example
------------------------- */
.mod-example {
  display: block; }
@media only screen and (min-width: 768px) {
    .cmp-distributed-pumping-tool-basic__step-label {
      font-size: 0.75rem;
      line-height: 1.5; }
    .cmp-distributed-pumping-tool-basic__step-counter {
      font-size: 1.125rem;
      line-height: 1.5; }
      .cmp-distributed-pumping-tool-basic__field-group--step-1 .cmp-distributed-pumping-tool-basic__field {
        margin-top: -1.875rem; }
      .cmp-distributed-pumping-tool-basic__field-group--step-1 .cmp-distributed-pumping-tool-basic__field:first-child {
        margin-top: 0; }
      .cmp-distributed-pumping-tool-basic__field-group--step-2 {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row;
                flex-flow: row; }
        .cmp-distributed-pumping-tool-basic__field-group--step-2 .cmp-distributed-pumping-tool-basic__field {
          margin-top: 0;
          max-width: 50%;
          width: 100%; }
    .cmp-distributed-pumping-tool-basic__specifier,
    .cmp-distributed-pumping-tool-basic__field {
      padding: 1.875rem 1.25rem; } }
@media only screen and (min-width: 1024px) {
    .cmp-distributed-pumping-tool-basic {
      max-width: 53.75rem;
      margin-left: auto;
      margin-right: auto; }
    .cmp-distributed-pumping-tool-basic__step-label {
      font-size: 0.75rem;
      line-height: 1.5; }
    .cmp-distributed-pumping-tool-basic__step-counter {
      font-size: 1.125rem;
      line-height: 1.5; }
  .cmp-distributed-pumping-tool-basic__fieldset {
    -webkit-box-shadow: 0 0 0.125rem 0 rgba(0, 0, 0, 0.09), 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.12);
            box-shadow: 0 0 0.125rem 0 rgba(0, 0, 0, 0.09), 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.12);
    -webkit-transition: -webkit-box-shadow 0.2s ease-out;
    transition: -webkit-box-shadow 0.2s ease-out;
    transition: box-shadow 0.2s ease-out;
    transition: box-shadow 0.2s ease-out, -webkit-box-shadow 0.2s ease-out;
    will-change: box-shadow;
    background: #FFFFFF; }
    .cmp-distributed-pumping-tool-basic__fieldset > *:first-child {
      margin-top: 0 !important; }
      .cmp-distributed-pumping-tool-basic__fieldset > *:first-child > [data-component-root] > * {
        margin-top: 0 !important; }
    .cmp-distributed-pumping-tool-basic__fieldset > *:last-child {
      margin-bottom: 0 !important; }
      .cmp-distributed-pumping-tool-basic__fieldset > *:last-child > [data-component-root] > * {
        margin-bottom: 0 !important; }
    .cmp-distributed-pumping-tool-basic__fieldset:hover, .cmp-distributed-pumping-tool-basic__fieldset:focus, .cmp-distributed-pumping-tool-basic__fieldset:active {
      -webkit-box-shadow: 0 0 0.125rem 0 rgba(0, 0, 0, 0.12), 0 0.125rem 0.5rem 0.0625rem rgba(0, 0, 0, 0.24);
              box-shadow: 0 0 0.125rem 0 rgba(0, 0, 0, 0.12), 0 0.125rem 0.5rem 0.0625rem rgba(0, 0, 0, 0.24); }
    .cmp-distributed-pumping-tool-basic__fields {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-flow: row nowrap;
              flex-flow: row nowrap; }
    .cmp-distributed-pumping-tool-basic__field-group {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-flow: row nowrap;
              flex-flow: row nowrap; }
      .cmp-distributed-pumping-tool-basic__field-group--step-1 {
        border-bottom: 0;
        border-right: 1px solid #D6D6D6;
        width: 95%; }
        .cmp-distributed-pumping-tool-basic__field-group--step-1 .cmp-distributed-pumping-tool-basic__field {
          margin-top: 0; }
      .cmp-distributed-pumping-tool-basic__field-group--step-2 {
        min-width: 90px;
        width: 5%; }
        .cmp-distributed-pumping-tool-basic--results .cmp-distributed-pumping-tool-basic__field-group--step-2 {
          width: 5%; }
  .cmp-distributed-pumping-tool-basic__field {
    width: 50%; }
  .cmp-distributed-pumping-tool-basic__field--1 {
    border-bottom: 0;
    border-right: 1px solid #D6D6D6; }
    .cmp-distributed-pumping-tool-basic__button {
      display: block;
      height: auto;
      min-width: 90px;
      width: 5%; }
    .cmp-distributed-pumping-tool-basic__mobile-button {
      display: none; } }
@media only screen and (max-width: 767px) {
    .cmp-distributed-pumping-tool-basic__mobile-button {
      width: 100%; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC5zY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL25vZGVfbW9kdWxlcy9ncnVuZGZvcy1hZW0tYmFzZS9hZW0tYmFzZS11aS9jbGllbnQvc3R5bGVzL3Rvb2xzL190LWhlbHBlcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvZWxlbWVudHMvX2VsZW1lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL2VsZW1lbnRzL19lbG0tZXhhbXBsZS5zY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9jb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL2NvbXBvbmVudHMvX2NtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9ub2RlX21vZHVsZXMvZ3J1bmRmb3MtYWVtLWJhc2UvYWVtLWJhc2UtdWkvY2xpZW50L3N0eWxlcy9zZXR0aW5ncy9fcy1jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvY29tcG9uZW50cy9fY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpYy5zY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL25vZGVfbW9kdWxlcy9ncnVuZGZvcy1hZW0tYmFzZS9hZW0tYmFzZS11aS9jbGllbnQvc3R5bGVzL3Rvb2xzL190LWxheW91dC5zY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL25vZGVfbW9kdWxlcy9ncnVuZGZvcy1hZW0tYmFzZS9hZW0tYmFzZS11aS9jbGllbnQvc3R5bGVzL3Rvb2xzL190LWRlY29yYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9ub2RlX21vZHVsZXMvZ3J1bmRmb3MtYWVtLWJhc2UvYWVtLWJhc2UtdWkvY2xpZW50L3N0eWxlcy9zZXR0aW5ncy9fcy1sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9ub2RlX21vZHVsZXMvZ3J1bmRmb3MtYWVtLWJhc2UvYWVtLWJhc2UtdWkvY2xpZW50L3N0eWxlcy90b29scy9fdC10eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3Avbm9kZV9tb2R1bGVzL2dydW5kZm9zLWFlbS1iYXNlL2FlbS1iYXNlLXVpL2NsaWVudC9zdHlsZXMvc2V0dGluZ3MvX3MtdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL25vZGVfbW9kdWxlcy9ncnVuZGZvcy1hZW0tYmFzZS9hZW0tYmFzZS11aS9jbGllbnQvc3R5bGVzL3NldHRpbmdzL19zLXRyYW5zaXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3Avbm9kZV9tb2R1bGVzL2dydW5kZm9zLWFlbS1iYXNlL2FlbS1iYXNlLXVpL2NsaWVudC9zdHlsZXMvdG9vbHMvX3QtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvY29tcG9uZW50cy9fY21wLWV4YW1wbGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9jbGllbnQvc3R5bGVzL0M6L0plbmtpbnMvd29ya3NwYWNlL2J1dGVkUHVtcGluZ1Rvb2wtU1RBR0lOR19kZXZlbG9wL2Rpc3RyaWJ1dGVkcHVtcGluZ3Rvb2wtdWkvY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvbW9kdWxlcy9tb2R1bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3N0eWxlcy9DOi9KZW5raW5zL3dvcmtzcGFjZS9idXRlZFB1bXBpbmdUb29sLVNUQUdJTkdfZGV2ZWxvcC9kaXN0cmlidXRlZHB1bXBpbmd0b29sLXVpL2NsaWVudC9zdHlsZXMvQzovSmVua2lucy93b3Jrc3BhY2UvYnV0ZWRQdW1waW5nVG9vbC1TVEFHSU5HX2RldmVsb3AvZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC11aS9jbGllbnQvc3R5bGVzL21vZHVsZXMvX21vZC1leGFtcGxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7NEJBQzRCO0FDTDVCLGdEQUFnRDtBQXNNaEQsK0VBQStFO0FBbUIvRSw4RUFBOEU7QUN6TjlFOzRCQUM0QjtBQ0Q1Qjs0QkFDNEI7QUFFNUI7RUFDQyxlQUFjLEVBQ2Q7O0FDTEQ7NEJBQzRCO0FDRDVCOzRCQUM0QjtBQUU1QjtFQUNDLGVBQWM7RUFDZCxtQkFBa0IsRUFDbEI7O0FBRUQ7RUFDQyxlQUFjO0VBQ2QsbUJBQWtCLEVBWWxCO0VBZEQ7SUFPRyxlQ2dDZSxFRC9CZjtFQVJIO0lBV0csZUN5QmUsRUR4QmY7O0FBSUg7RUFDQyxlQUFjO0VBQ2QsaUJBQWdCLEVBQ2hCOztBRTNCRDs0QkFDNEI7QUFTNUI7RUFDQyxZQUFXLEVBT1g7O0FBRUQ7RUNTSSx3QlBJMkM7RU1WOUMscUJOVThDO0VNVDlDLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFDbEI7RU4rS0E7SUFDQyx5QkFBdUIsRUFLdkI7SUFIQTtNQUNDLHlCQUF1QixFQUN2QjtFQUdGO0lBQ0MsNEJBQTBCLEVBSzFCO0lBSEE7TUFDQyw0QkFBMEIsRUFDMUI7O0FNMUxIO0VDQ0ksb0JQSTJDO0VNSDlDLHVCQUFzQjtFQUN0QixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLGlCQUFnQjtFQUNoQixlQUFjO0VBQ2QsY0FBYTtFQUNiLFdBQVUsRUFDVjs7QUFFRDtFTmlIQyx3QkFBc0I7RUFDdEIsMEJBQXdCO0VRbkN4QixpQlJwRjhDO0VRcUY5QyxtQkFBa0IsRUY3RWxCO0VFK0VBO0lEZ0JBLFlFZEs7SURBSiw4eEJBQTRHO0lBTTVHLCtCQUFzQjtZQUF0Qix1QkFBc0I7SUFDdEIsWUFBVztJQUNYLGVBQWM7SUFDZCxhQUFZO0lBQ1osUUFBTztJQUNQLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sWUFBVyxFQUNYOztBRjdGRjtFQVdDLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsZUFBYyxFQXVCZDtFQXJCQztJQVhBLDRCQUFrQjtRQUFsQixtQkFBa0I7SUFDbEIsb0JEVGdCO0lDVWhCLFlBQVc7SUFDWCxlQUFjO0lBQ2Qsb0JBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWM7SUFDZCxpQk5sQjZDLEVNNkI1QztFQUdGO0lBRUMsV0FBOEUsRUFDOUU7RUFFRDtJQUtDLFVBQThFO0lBQzlFLGdCQXBFd0QsRUFxRXhEO0lBUEE7TUF4QkEsNEJBQWtCO1VBQWxCLG1CQUFrQjtNQUNsQixvQkRUZ0I7TUNVaEIsWUFBVztNQUNYLGVBQWM7TUFDZCxvQkFBYztVQUFkLG1CQUFjO2NBQWQsZUFBYztNQUNkLGlCTmxCNkMsRU15QzVDOztBQU1IO0VJSkMsbUJWM0M4QztFVTRDOUMsaUJDVWlCO0VMTGpCLDBCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsNkJBQWlCO0VBQWpCLDhCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCO0VBQ2pCLG1CTnBEOEM7RU1xRDlDLG9CTnJEOEMsRU1zRDlDOztBQUVEO0VFa0dDLG1CQUFrQjtFRS9HbEIsb0JWM0M4QztFVTRDOUMscUJDb0RpQjtFTHJDakIsdUJOM0Q4QztFTTREOUMsc0JONUQ4QztFTTZEOUMsa0JON0Q4QyxFTThEOUM7RUU4RkE7SUFDQywwQkg3S2dCO0lHOEtoQixVQUFTO0lBQ1QsWUFBVztJQUNYLGtCUmhLNkM7SVFpSzdDLG1CQUFrQjtJQUNsQiw2QkFBb0I7WUFBcEIscUJBQW9CO0lBQ3BCLG9ESXZMbUI7SUp1TG5CLDRDSXZMbUI7SUp1TG5CLG9DSXZMbUI7SUp1TG5CLHFFSXZMbUI7SUp3TG5CLHNDQUE2QjtZQUE3Qiw4QkFBNkI7SUFDN0IsU0FBUTtJQUNSLFlBQVc7SUFDWCx1QkFBc0IsRUFDdEI7RUFlQTtJQUNDLDZCQUFvQjtZQUFwQixxQkFBb0IsRUFDcEI7O0FGakhIO0VOY0MsVUFBUztFQUNULG9CQUFtQjtFQUNuQixZQUFXO0VBQ1gsYUFBWTtFQUNaLGlCQUFnQjtFQUNoQixXQUFVO0VBQ1YsbUJBQWtCO0VBQ2xCLFdBQVUsRU1uQlY7O0FBRUQ7RUFDQyxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDZCQUFpQjtFQUFqQiw4QkFBaUI7TUFBakIsc0JBQWlCO1VBQWpCLGtCQUFpQjtFQUNqQixVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQVNsQjtFQUhBO0lBQ0MsaUNEbkZnQixFQ29GaEI7O0FBR0Y7RUFDQywwQkQvRWlCO0VDZ0ZqQixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDZCQUFpQjtFQUFqQiw4QkFBaUI7TUFBakIsc0JBQWlCO1VBQWpCLGtCQUFpQjtFQUNqQixZQUFXLEVBcURYO0VBL0NBO0lBQ0MsWUFBVyxFQXNCWDtFQUVEO0lBQ0MsWUFBVyxFQW9CWDs7QUFHRjs7RUFHQyxlRHpKaUI7RUMwSmpCLG9CQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjO0VBQ2QsVUFBUztFQUNULGFBQVk7RUFDWixrQk45SjhDLEVNbUs5QztFTktBOztJQUNDLHlCQUF1QixFQUt2QjtJQUhBOztNQUNDLHlCQUF1QixFQUN2QjtFQUdGOztJQUNDLDRCQUEwQixFQUsxQjtJQUhBOztNQUNDLDRCQUEwQixFQUMxQjs7QU1oQkg7RUFPRSxjQUFhLEVBQ2I7O0FBRUQ7RUFDQyxhQUFZLEVBQ1o7O0FBWkY7O0VBa0JHLDhCQUE2QixFQUM3Qjs7QUFuQkg7OztFSUhDLGlCQUFnQjtFQUNoQix3QkFBdUI7RUFDdkIsb0JBQW1CO0VKMkJsQixrQkFBaUIsRUFDakI7O0FBVUY7RUFDQyxjQUFhLEVBUWI7O0FBRUQ7RUN6TkkscUJQSTJDO0VhMEI5Qyw0REFBNEQ7RUFLNUQsMkRBQTJELEVQZ00zRDs7QUFFRDtFQUNDLDBCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsYUFBWTtFQUNaLHlCQUF1QjtNQUF2QixzQkFBdUI7VUFBdkIsd0JBQXVCLEVBQ3ZCOztBUXZRRDs0QkFDNEI7QUFFNUI7RUFDQyxlQUFjLEVBQ2Q7O0FDTEQ7NEJBQzRCO0FDRDVCOzRCQUM0QjtBQUU1QjtFQUNDLGVBQWMsRUFDZDtBSG9DQTtJUHVDRDtNSUpDLG1CVjNDOEM7TVU0QzlDLGlCQ2NpQixFTEpqQjtJQUVEO01JYkMsb0JWM0M4QztNVTRDOUMsaUJDd0RpQixFTHRDakI7TUF3Q0M7UUFNRSxzQk41RzJDLEVNNkczQztNQVBGO1FBVUUsY0FBYSxFQUNiO01BY0g7UUFJRSwrQkFBYztRQUFkLDhCQUFjO1lBQWQsbUJBQWM7Z0JBQWQsZUFBYyxFQWlCZjtRQXJCQTtVQU9FLGNBQWE7VUFDYixlQUFjO1VBQ2QsWUFBVyxFQUNYO0lBY0o7O01BVUUsMEJOaks2QyxFTW1LOUMsRUE3R0E7QU85Q0E7SVAvQkQ7TUFJRSxvQk5tQjZDO01NbEI3QyxrQkFBaUI7TUFDakIsbUJBQWtCLEVBRW5CO0lBOEREO01JSkMsbUJWM0M4QztNVTRDOUMsaUJDa0JpQixFTFJqQjtJQUVEO01JYkMsb0JWM0M4QztNVTRDOUMsaUJDNERpQixFTDFDakI7RUFFRDtJRW9EQyxpR0FOc0Y7WUFNdEYseUZBTnNGO0lBU3JGLHFESTNJbUI7SUoySW5CLDZDSTNJbUI7SUoySW5CLHFDSTNJbUI7SUoySW5CLHVFSTNJbUI7SUo0SW5CLHdCQUF1QjtJRnBEdkIsb0JEdERnQixFQ3dEakI7SU5rR0E7TUFDQyx5QkFBdUIsRUFLdkI7TUFIQTtRQUNDLHlCQUF1QixFQUN2QjtJQUdGO01BQ0MsNEJBQTBCLEVBSzFCO01BSEE7UUFDQyw0QkFBMEIsRUFDMUI7SUEzSEY7TVFpRUUsd0dBWjRGO2NBWTVGLGdHQVo0RixFUmpEN0Y7SU1jRjtNQVFFLCtCQUFxQjtNQUFyQiw4QkFBcUI7VUFBckIsMEJBQXFCO2NBQXJCLHNCQUFxQixFQU10QjtJQUVEO01BT0UsK0JBQXFCO01BQXJCLDhCQUFxQjtVQUFyQiwwQkFBcUI7Y0FBckIsc0JBQXFCLEVBa0R0QjtNQS9DQTtRQWVFLGlCQUFnQjtRQUNoQixnQ0RqSGU7UUNrSGYsV0FBOEUsRUFNL0U7UUF2QkE7VUFvQkUsY0FBYSxFQUNiO01BSUg7UUFjRSxnQkF0S3VEO1FBdUt2RCxVQUE4RSxFQU0vRTtRQUpDO1VBQ0MsVUFBOEUsRUFDOUU7RUFtQko7SUFHRSxXQUFVLEVBZ0NYO0VBTkE7SUFFRSxpQkFBZ0I7SUFDaEIsZ0NEaE1lLEVDa01oQjtJQUdGO01BSUUsZUFBYztNQUNkLGFBQVk7TUFDWixnQkF6T3dEO01BME94RCxVQUE4RSxFQUUvRTtJQUVEO01BUUUsY0FBYSxFQUVkLEVBOU9BO0FPMENBO0lQMExEO01BSUUsWUFBVyxFQU1aIiwiZmlsZSI6InRhcmdldFxcdmF1bHQtd29ya1xcamNyX3Jvb3RcXGFwcHNcXHNldHRpbmdzXFx3Y21cXGRlc2lnblxcZGlzdHJpYnV0ZWRwdW1waW5ndG9vbFxcYXNzZXRzXFxkaXN0cmlidXRlZHB1bXBpbmd0b29sLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuXHRcdFx0XHRcdFx0XHRcdCRzLWJhc2UtcmVzb3VyY2UtcGF0aDogXCJldGMuY2xpZW50bGlicy9zZXR0aW5ncy93Y20vZGVzaWduL2FlbWJhc2UvaGVhZC9yZXNvdXJjZXNcIjtcblx0XHRcdFx0XHRcdFx0XHQkZXh0ZW5zaW9uOiBcImV0Yy5jbGllbnRsaWJzL3NldHRpbmdzL3djbS9kZXNpZ24vZGlzdHJpYnV0ZWRwdW1waW5ndG9vbC9oZWFkL3Jlc291cmNlc1wiO1xuXHRcdFx0XHRcdFx0XHRcclxuLyogV2ViXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJ+Z3J1bmRmb3MtYWVtLWJhc2UvYWVtLWJhc2UtdWkvY2xpZW50L3N0eWxlcy9leHRlbnNpb25zXCI7XG5AaW1wb3J0IFwifmdydW5kZm9zLWFlbS1iYXNlL2FlbS1iYXNlLXVpL2NsaWVudC9zdHlsZXMvc2V0dGluZ3Mvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJ+Z3J1bmRmb3MtYWVtLWJhc2UvYWVtLWJhc2UtdWkvY2xpZW50L3N0eWxlcy90b29scy90b29sc1wiO1xuXG5AaW1wb3J0IFwic2V0dGluZ3Mvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJlbGVtZW50cy9lbGVtZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50c1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvbW9kdWxlc1wiO1xuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4vLyBUb29scyAtIEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBAZnVuY3Rpb24gdC1yZW1cbi8vLyBHZXRzIGEgc2luZ2xlIG9yIHNlcmllcyBvZiB2YWx1ZXMgcmVwcmVzZW50ZWQgYXMgcmVtIHVuaXQocykuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVzXHQtIEEgc2luZ2xlLCBvciBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBOdW1iZXJzIHNwZWNpZmllZCB1c2luZyBhbnkgdmFsaWQgdW5pdCB0eXBlLlxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBUaGUgb3JpZ2luYWwgdmFsdWUocykgY29udmVydGVkIGludG8gcmVtIHVuaXQocykuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHQtcmVtKDJlbSAyMHB4IDJyZW0gMjBweCk7XG5AZnVuY3Rpb24gdC1yZW0oJHZhbHVlcykge1xuXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09IFwibGlzdFwiIHtcblx0XHQkcmVtczogKCk7XG5cblx0XHRAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG5cdFx0XHQkcmVtczogYXBwZW5kKCRyZW1zLCB0LXJlbSgkdmFsdWUpKTtcblx0XHR9XG5cblx0XHRAcmV0dXJuICRyZW1zO1xuXHR9XG5cblx0QGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gXCJudW1iZXJcIiB7XG5cdFx0QGlmICR2YWx1ZXMgPT0gMCB7XG5cdFx0XHRAcmV0dXJuICR2YWx1ZXM7XG5cdFx0fVxuXHRcdEBlbHNlIGlmIHVuaXQoJHZhbHVlcykgPT0gcHgge1xuXHRcdFx0QHJldHVybiAoJHZhbHVlcyAvICRzLWJhc2UtZm9udC1zaXplKSAqIDFyZW07XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEBtaXhpbiB0LW1haW50YWluLWFzcGVjdC1yYXRpb1xuLy8vIENyZWF0ZXMgYSBsb2NrZWQgcmF0aW8gY29udGFpbmVyIGluIHdoaWNoIHRoZSBmaXJzdCBjaGlsZCB3aWxsIGJlIHBvc2l0aW9uZWQgYWNjb3JkaW5nIHRvIHRoZSAkYWxpZ24teCBhbmQgJGFsaWduLXkgYXJndW1lbnRzIGlmIHByb3ZpZGVkLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gVGhlIHJlbGF0aXZlIHdpZHRoIG9mIHRoZSBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgLSBUaGUgcmVsYXRpdmUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbGlnbi14IC0gKE9wdGlvbmFsKSBUaGUgcmVsYXRpdmUgeCBwb3NpdGlvbiB3aXRoaW4gdGhlIGNvbnRhaW5lciBvZiB0aGUgZmlyc3QgY2hpbGQgZWxlbWVudCwgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFsaWduLXkgLSAoT3B0aW9uYWwpIFRoZSByZWxhdGl2ZSB5IHBvc2l0aW9uIHdpdGhpbiB0aGUgY29udGFpbmVyIG9mIHRoZSBmaXJzdCBjaGlsZCBlbGVtZW50LCBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAxLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBAaW5jbHVkZSB0LW1haW50YWluLWFzcGVjdC1yYXRpbygxNiwgOSk7XG5AbWl4aW4gdC1tYWludGFpbi1hc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0LCAkYWxpZ24teDogbnVsbCwgJGFsaWduLXk6IG51bGwpIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwYWRkaW5nLXRvcDogKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdEBpZiAoJGFsaWduLXggIT0gbnVsbCBhbmQgJGFsaWduLXkgIT0gbnVsbCkge1xuXG5cdFx0PiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0JHg6ICRhbGlnbi14ICogMTAwO1xuXHRcdFx0JHk6ICRhbGlnbi15ICogMTAwO1xuXG5cdFx0XHRsZWZ0OiAkeCAqIDElO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAkeSAqIDElO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoJHggKiAtMSUsICR5ICogLTElKTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4vLy8gQG1peGluIHQtYWN0aXZlXG4vLy8gU2V0cyBzdGFuZGFyZGlzZWQgcHNldWRvIHN0YXRlcyBmb3IgYWNjZXNzaWJpbGl0eS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LWFjdGl2ZTtcbkBtaXhpbiB0LWFjdGl2ZSB7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vLyBAbWl4aW4gdC1mbGV4LWltYWdlXG4vLy8gU2V0cyBiYXNpYyByZXNwb25zaXZlIGltYWdlIHN0eWxpbmcuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1x0QGluY2x1ZGUgdC1mbGV4LWltYWdlO1xuQG1peGluIHQtZmxleC1pbWFnZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vLy8gQG1peGluIHQtaGlkZGVuXG4vLy8gU2V0cyBoaWRkZW4gc3R5bGVzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIHRhcmdldCBlbGVtZW50IGZyb20gdGhlIHJlbmRlciB0cmVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cdEBpbmNsdWRlIHQtaGlkZGVuO1xuQG1peGluIHQtaGlkZGVuIHtcblx0Ym9yZGVyOiAwO1xuXHRjbGlwOiByZWN0KDAgMCAwIDApO1xuXHRoZWlnaHQ6IDFweDtcblx0bWFyZ2luOiAtMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxcHg7XG59XG5cbi8vLyBAbWl4aW4gdC1oaWRkZW4tbW9iaWxlXG4vLy8gU2V0cyBoaWRkZW4gc3R5bGVzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIHRhcmdldCBlbGVtZW50IGZyb20gdGhlIHJlbmRlciB0cmVlIGZvciBtb2JpbGUgb25seS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LWhpZGRlbjtcbkBtaXhpbiB0LWhpZGRlbi1tb2JpbGUge1xuXG5cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1tYXgobGFyZ2UpIHtcblx0XHRAaW5jbHVkZSB0LWhpZGRlbjtcblx0fVxufVxuXG4vLy8gQG1peGluIHQtaGlkZGVuLXRleHRcbi8vLyBTZXRzIGhpZGRlbiB0ZXh0IHN0eWxlcyB3aXRob3V0IHJlbW92aW5nIHRoZSB0YXJnZXQgZWxlbWVudCBmcm9tIHRoZSByZW5kZXIgdHJlZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LWhpZGRlbi10ZXh0O1xuQG1peGluIHQtaGlkZGVuLXRleHQge1xuXHRmb250LXNpemU6IDAhaW1wb3J0YW50OyAvL05PU09OQVJcblx0bGluZS1oZWlnaHQ6IDAhaW1wb3J0YW50OyAvL05PU09OQVJcbn1cblxuQG1peGluIHQtYWJzb2x1dGUtY2VudGVyKCR1c2UzZDogZmFsc2UpIHtcblx0bGVmdDogNTAlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXG5cdEBpZiAoJHVzZTNkID09IHRydWUpIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuXHR9XG5cdEBlbHNlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0fVxufVxuXG5AbWl4aW4gdC1maWxsIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbkBtaXhpbiB0LWNlbnRlci1maWxsIHtcblx0QGluY2x1ZGUgdC1lZGl0LW1vZGUtcG9zaXRpb24tcmVzZXQ7XG5cdEBpbmNsdWRlIHQtZmlsbDtcblx0QGluY2x1ZGUgdC1sYXllcigxLCAxKTtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0LWhpZGUtbm8tanMge1xuXG5cdC5uby1qcyAmIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbkBtaXhpbiB0LXdyYXAtdGV4dCB7XG5cdGh5cGhlbnM6IGF1dG87XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDsgLy9OT1NPTkFSXG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC11bml2ZXJzYWwgKi9cbkBtaXhpbiB0LWZsYXR0ZW4tY2hpbGRyZW4ge1xuXG5cdD4gKjpmaXJzdC1jaGlsZCB7IC8vTk9TT05BUlxuXHRcdG1hcmdpbi10b3A6IDAhaW1wb3J0YW50OyAvL05PU09OQVJcblxuXHRcdD4gW2RhdGEtY29tcG9uZW50LXJvb3RdID4gKiB7IC8vTk9TT05BUlxuXHRcdFx0bWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7IC8vTk9TT05BUlxuXHRcdH1cblx0fVxuXG5cdD4gKjpsYXN0LWNoaWxkIHsgLy9OT1NPTkFSXG5cdFx0bWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7IC8vTk9TT05BUlxuXG5cdFx0PiBbZGF0YS1jb21wb25lbnQtcm9vdF0gPiAqIHsgLy9OT1NPTkFSXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwIWltcG9ydGFudDsgLy9OT1NPTkFSXG5cdFx0fVxuXHR9XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIHNlbGVjdG9yLW1heC11bml2ZXJzYWwgKi9cblxuLy8gQnJvd3NlciBTcGVjaWZpY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHQtaWUge1xuXG5cdEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gQUVNIEVkaXQgTW9kZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHQtZWRpdC1tb2RlIHtcblxuXHQuYi1lZGl0LW1vZGUgJiB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIHQtZWRpdC1tb2RlLXBvc2l0aW9uLXJlc2V0IHtcblxuXHRAaW5jbHVkZSB0LWVkaXQtbW9kZSB7XG5cdFx0Ym90dG9tOiBhdXRvO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cmlnaHQ6IGF1dG87XG5cdFx0dG9wOiBhdXRvO1xuXHRcdHRyYW5zZm9ybTogbm9uZTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4vLyBRdWFudGl0eSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gdC1sYXN0LXNpbXBsZS1zZWxlY3Rvcigkc2VsZWN0b3IpIHtcblx0JHBhcnNlZDogc2VsZWN0b3ItcGFyc2UoJHNlbGVjdG9yKTtcblxuXHRAaWYgbGVuZ3RoKCRwYXJzZWQpID4gMSB7XG5cdFx0QGVycm9yIFwiYCN7JHNlbGVjdG9yfWAgY29udGFpbnMgI3tsZW5ndGgoJHBhcnNlZCl9IHNlbGVjdG9ycyBhbmQgdGhlIGB0LWxhc3Qtc2ltcGxlLXNlbGVjdG9yKClgZnVuY3Rpb24gYWNjZXB0cyBvbmx5IDEuXCI7XG5cdH1cblx0JGxhc3Qtc2ltcGxlLXNlbGVjdG9yOiBudGgobnRoKCRwYXJzZWQsIDEpLCAtMSk7XG5cblx0QHJldHVybiAkbGFzdC1zaW1wbGUtc2VsZWN0b3I7XG59XG5cbkBmdW5jdGlvbiB0LWJ1aWxkLXF1YW50aXR5LXNlbGVjdG9yKCRzZWxlY3Rvci1hcHBlbmQsICRsYXN0LXNlbGVjdG9yKSB7XG5cdCRxdWFudGl0eS1zZWxlY3RvcjogKCk7XG5cblx0QGVhY2ggJHMgaW4gJiB7IC8vTk9TT05BUlxuXHRcdCRsYXN0LXNpbXBsZS1zZWxlY3RvcjogXCJ+XCIgKyBpZigkbGFzdC1zZWxlY3RvciwgJGxhc3Qtc2VsZWN0b3IsIHQtbGFzdC1zaW1wbGUtc2VsZWN0b3IoJHMpKTtcblx0XHQkc2VsOiBzZWxlY3Rvci1hcHBlbmQoJHMsICRzZWxlY3Rvci1hcHBlbmQpO1xuXHRcdCRzZWwyOiBzZWxlY3Rvci1uZXN0KCRzZWwsICRsYXN0LXNpbXBsZS1zZWxlY3Rvcik7XG5cdFx0JHF1YW50aXR5LXNlbGVjdG9yOiBhcHBlbmQoJHF1YW50aXR5LXNlbGVjdG9yLCAkc2VsLCBcImNvbW1hXCIpO1xuXHRcdCRxdWFudGl0eS1zZWxlY3RvcjogYXBwZW5kKCRxdWFudGl0eS1zZWxlY3RvciwgJHNlbDIsIFwiY29tbWFcIik7XG5cdH1cblxuXHRAcmV0dXJuICRxdWFudGl0eS1zZWxlY3Rvcjtcbn1cblxuQG1peGluIHQtYXQtbGVhc3QoJGNvdW50LCAkc2VsZWN0b3I6IG51bGwpIHtcblx0JHNlbGVjdG9yLWFwcGVuZDogXCI6bnRoLWxhc3QtY2hpbGQobisjeyRjb3VudH0pXCI7XG5cblx0QGlmIHR5cGUtb2YoJGNvdW50KSAhPSBcIm51bWJlclwiIG9yIG5vdCB1bml0bGVzcygkY291bnQpIG9yICRjb3VudCA8IDEge1xuXHRcdEBlcnJvciBcImAjeyRjb3VudH1gIGlzIG5vdCBhIHZhbGlkIG51bWJlciBmb3IgYGF0LWxlYXN0YFwiO1xuXHR9XG5cblx0QGlmICRzZWxlY3RvciAhPSBudWxsIGFuZCAodHlwZS1vZigkc2VsZWN0b3IpICE9IFwic3RyaW5nXCIgb3IgbGVuZ3RoKCRzZWxlY3RvcikgPiAxKSB7XG5cdFx0QGVycm9yIFwiYCN7JHNlbGVjdG9yfWAgaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IgZm9yIGBhdC1sZWFzdGBcIjtcblx0fVxuXG5cdCRhdC1sZWFzdC1zZWxlY3RvcjogdC1idWlsZC1xdWFudGl0eS1zZWxlY3Rvcigkc2VsZWN0b3ItYXBwZW5kLCAkc2VsZWN0b3IpO1xuXG5cdEBhdC1yb290ICN7JGF0LWxlYXN0LXNlbGVjdG9yfSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIHQtYXQtbW9zdCgkY291bnQsICRzZWxlY3RvcjogbnVsbCkge1xuXHQkc2VsZWN0b3ItYXBwZW5kOiBcIjpudGgtbGFzdC1jaGlsZCgtbisjeyRjb3VudH0pOmZpcnN0LWNoaWxkXCI7XG5cblx0QGlmIHR5cGUtb2YoJGNvdW50KSAhPSBcIm51bWJlclwiIG9yIG5vdCB1bml0bGVzcygkY291bnQpIG9yICRjb3VudCA8IDEge1xuXHRcdEBlcnJvciBcImAjeyRjb3VudH1gIGlzIG5vdCBhIHZhbGlkIG51bWJlciBmb3IgYGF0LW1vc3RgLlwiO1xuXHR9XG5cblx0QGlmICRzZWxlY3RvciAhPSBudWxsIGFuZCAodHlwZS1vZigkc2VsZWN0b3IpICE9IFwic3RyaW5nXCIgb3IgbGVuZ3RoKCRzZWxlY3RvcikgPiAxKSB7XG5cdFx0QGVycm9yIFwiYCN7JHNlbGVjdG9yfWAgaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IgZm9yIGBhdC1tb3N0YFwiO1xuXHR9XG5cblx0JGF0LW1vc3Qtc2VsZWN0b3I6IHQtYnVpbGQtcXVhbnRpdHktc2VsZWN0b3IoJHNlbGVjdG9yLWFwcGVuZCwgJHNlbGVjdG9yKTtcblxuXHRAYXQtcm9vdCAjeyRhdC1tb3N0LXNlbGVjdG9yfSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIHQtYmV0d2VlbigkZmlyc3QsICRsYXN0LCAkc2VsZWN0b3I6IG51bGwpIHtcblx0JHNlbGVjdG9yLWFwcGVuZDogXCI6bnRoLWxhc3QtY2hpbGQobisjeyRmaXJzdH0pOm50aC1sYXN0LWNoaWxkKC1uKyN7JGxhc3R9KTpmaXJzdC1jaGlsZFwiO1xuXG5cdEBpZiB0eXBlLW9mKCRmaXJzdCkgIT0gXCJudW1iZXJcIiBvciBub3QgdW5pdGxlc3MoJGZpcnN0KSBvciAkZmlyc3QgPCAxIHtcblx0XHRAZXJyb3IgXCJgI3skZmlyc3R9YCBpcyBub3QgYSB2YWxpZCBudW1iZXIgZm9yIGBiZXR3ZWVuYFwiO1xuXHR9XG5cblx0QGlmIHR5cGUtb2YoJGxhc3QpICE9IFwibnVtYmVyXCIgb3Igbm90IHVuaXRsZXNzKCRsYXN0KSBvciAkbGFzdCA8IDEge1xuXHRcdEBlcnJvciBcImAjeyRsYXN0fWAgaXMgbm90IGEgdmFsaWQgbnVtYmVyIGZvciBgYmV0d2VlbmBcIjtcblx0fVxuXG5cdEBpZiAkZmlyc3QgPiAkbGFzdCB7XG5cdFx0QGVycm9yIFwiI3skZmlyc3R9IGNhbsK0dCBiZSBsYXJnZXIgdGhhdCAjeyRsYXN0fSBmb3IgYGJldHdlZW5gXCI7XG5cdH1cblxuXHRAaWYgJHNlbGVjdG9yICE9IG51bGwgYW5kICh0eXBlLW9mKCRzZWxlY3RvcikgIT0gXCJzdHJpbmdcIiBvciBsZW5ndGgoJHNlbGVjdG9yKSA+IDEpIHtcblx0XHRAZXJyb3IgXCJgI3skc2VsZWN0b3J9YCBpcyBub3QgYSB2YWxpZCBzZWxlY3RvciBmb3IgYGJldHdlZW5gXCI7XG5cdH1cblxuXHQkYmV0d2Vlbi1zZWxlY3RvcjogdC1idWlsZC1xdWFudGl0eS1zZWxlY3Rvcigkc2VsZWN0b3ItYXBwZW5kLCAkc2VsZWN0b3IpO1xuXG5cdEBhdC1yb290ICN7JGJldHdlZW4tc2VsZWN0b3J9IHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gdC1leGFjdGx5KCRjb3VudCwgJHNlbGVjdG9yOiBudWxsKSB7XG5cdCRzZWxlY3Rvci1hcHBlbmQ6IFwiOm50aC1sYXN0LWNoaWxkKCN7JGNvdW50fSk6Zmlyc3QtY2hpbGRcIjtcblxuXHRAaWYgdHlwZS1vZigkY291bnQpICE9IFwibnVtYmVyXCIgb3Igbm90IHVuaXRsZXNzKCRjb3VudCkgb3IgJGNvdW50IDwgMSB7XG5cdFx0QGVycm9yIFwiYCN7JGNvdW50fWAgaXMgbm90IGEgdmFsaWQgbnVtYmVyIGZvciBgZXhhY3RseWBcIjtcblx0fVxuXG5cdEBpZiAkc2VsZWN0b3IgIT0gbnVsbCBhbmQgKHR5cGUtb2YoJHNlbGVjdG9yKSAhPSBcInN0cmluZ1wiIG9yIGxlbmd0aCgkc2VsZWN0b3IpID4gMSkge1xuXHRcdEBlcnJvciBcImAjeyRzZWxlY3Rvcn1gIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIGZvciBgZXhhY3RseWBcIjtcblx0fVxuXG5cdCRleGFjdGx5LXNlbGVjdG9yOiB0LWJ1aWxkLXF1YW50aXR5LXNlbGVjdG9yKCRzZWxlY3Rvci1hcHBlbmQsICRzZWxlY3Rvcik7XG5cblx0QGF0LXJvb3QgI3skZXhhY3RseS1zZWxlY3Rvcn0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvKiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiZWxtLWV4YW1wbGVcIjtcbiIsIi8qIEVsZW1lbnQgLSBFeGFtcGxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5lbG0tZXhhbXBsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLyogQ29tcG9uZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbFwiO1xuQGltcG9ydCBcImNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNcIjtcbkBpbXBvcnQgXCJjbXAtZXhhbXBsZVwiO1xuXG4iLCIvKiBDb21wb25lbnQgLSBEaXN0cmlidXRlZCBQdW1waW5nIFRvb2xcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbF9fcmVzdWx0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQuY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbF9fcmVzdWx0LXRleHQge1xuXG5cdFx0Ji0tbGlnaHQge1xuXHRcdFx0Y29sb3I6IHQtY29sb3Iod2hpdGUpO1xuXHRcdH1cblxuXHRcdCYtLWRhcmsge1xuXHRcdFx0Y29sb3I6IHQtY29sb3IoYmxhY2spO1xuXHRcdH1cblx0fVxufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbF9fZm9ybSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuIiwiLy8gU2V0dGluZ3MgLSBDb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vICRzLWNvbG9yc1xuLy8vIEVzdGFibGlzaGVzIGEgbWFwIGNvbnRhaW5pbmcgY29sb3IgdmFsdWVzIGFuZCBhbnkgY29ycmVzcG9uZGluZyB0b25lcy5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gJHMtY29sb3JzOiAoXG4vLy8gICAgIGJsYWNrOiAoXG4vLy8gXHRcdHByaW1hcnk6ICMwMDAwMDBcbi8vLyAgICAgKSxcbi8vLyAgICAgd2hpdGU6IChcbi8vLyBcdFx0cHJpbWFyeTogI0ZGRkZGRlxuLy8vICAgICApXG4vLy8gKTtcbiRzLWNvbG9yczogKFxuXHRibHVlOiAoXG5cdFx0cHJpbWFyeTogIzAwNjhCNCxcblx0XHRzZWNvbmRhcnk6ICMwQTJDNEEsXG5cdFx0dGVydGlhcnk6ICMxMTQ5N0IsXG5cdFx0cXVhdGVybmFyeTogIzM0NjQ4Rixcblx0XHRxdWluYXJ5OiAjMDA5RUUzLFxuXHRcdHNlbmFyeTogIzZCOUJDMlxuXHQpLFxuXHRncmVlbjogKFxuXHRcdHByaW1hcnk6ICM0QUEyMkNcblx0KSxcblx0cmVkOiAoXG5cdFx0cHJpbWFyeTogI0REMDAyOFxuXHQpLFxuXHRvcmFuZ2U6IChcblx0XHRwcmltYXJ5OiAjRjQ5NTAwXG5cdCksXG5cdGdyZXk6IChcblx0XHRwcmltYXJ5OiAjMzMzMzMzLFxuXHRcdHNlY29uZGFyeTogIzcyNzI3Mixcblx0XHR0ZXJ0aWFyeTogIzk5OTk5OSxcblx0XHRxdWF0ZXJuYXJ5OiAjQzlDOUM5LFxuXHRcdHF1aW5hcnk6ICNENkQ2RDYsXG5cdFx0c2VuYXJ5OiAjREVERURFLFxuXHRcdHNlcHRlbmFyeTogI0YyRjJGMixcblx0XHRvY3RvbmFyeTogI0Y5RjlGOVxuXHQpLFxuXHRibGFjazogKFxuXHRcdHByaW1hcnk6ICMwMDAwMDBcblx0KSxcblx0d2hpdGU6IChcblx0XHRwcmltYXJ5OiAjRkZGRkZGXG5cdClcbik7XG5cbi8vIFJvbGUgQ29sb3JzXG4kcy1jb2xvcnMtYmFja2dyb3VuZDogKFxuXHRkZWZhdWx0OiBtYXAtdmFsdWUoJHMtY29sb3JzLCAod2hpdGUsIHByaW1hcnkpKSxcblx0ZGFyazogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHByaW1hcnkpKSxcblx0c3VidGxlOiAoXG5cdFx0cHJpbWFyeTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHNlcHRlbmFyeSkpLFxuXHRcdGxpZ2h0OiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoZ3JleSwgb2N0b25hcnkpKSxcblx0XHRkYXJrOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoZ3JleSwgc2VuYXJ5KSlcblx0KVxuKTtcblxuJHMtY29sb3JzLWJvcmRlcjogKFxuXHRkZWZhdWx0OiAoXG5cdFx0cHJpbWFyeTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGJsdWUsIHByaW1hcnkpKSxcblx0XHRkYXJrOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoYmx1ZSwgdGVydGlhcnkpKVxuXHQpLFxuXHRuZWdhdGl2ZTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKHJlZCwgcHJpbWFyeSkpLFxuXHRwb3NpdGl2ZTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZWVuLCBwcmltYXJ5KSksXG5cdHN1YnRsZTogKFxuXHRcdHByaW1hcnk6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBxdWluYXJ5KSksXG5cdFx0ZGFyazogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHRlcnRpYXJ5KSksXG5cdFx0bGlnaHQ6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBzZW5hcnkpKVxuXHQpLFxuXHRkYXJrOiAoXG5cdFx0cHJpbWFyeTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHByaW1hcnkpKVxuXHQpLFxuXHRsaWdodDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKHdoaXRlLCBwcmltYXJ5KSksXG5cdGZvcm06IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBxdWF0ZXJuYXJ5KSlcbik7XG5cbiRzLWNvbG9ycy1idXR0b246IChcblx0ZGVmYXVsdDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGJsdWUsIHByaW1hcnkpKSxcblx0bmVnYXRpdmU6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChyZWQsIHByaW1hcnkpKSxcblx0cG9zaXRpdmU6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmVlbiwgcHJpbWFyeSkpLFxuXHRsaWdodDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKHdoaXRlLCBwcmltYXJ5KSksXG5cdGRpc2FibGVkOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoZ3JleSwgdGVydGlhcnkpKVxuKTtcblxuJHMtY29sb3JzLWxpbms6IChcblx0ZGVmYXVsdDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGJsdWUsIHByaW1hcnkpKSxcblx0YWN0aXZlOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoYmxhY2ssIHByaW1hcnkpKSxcblx0bGlnaHQ6IG1hcC12YWx1ZSgkcy1jb2xvcnMsICh3aGl0ZSwgcHJpbWFyeSkpLFxuXHRzdWJ0bGU6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBzZWNvbmRhcnkpKSxcblx0ZGlzYWJsZWQ6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBxdWF0ZXJuYXJ5KSlcbik7XG5cbiRzLWNvbG9ycy10ZXh0OiAoXG5cdGRlZmF1bHQ6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChncmV5LCBwcmltYXJ5KSksXG5cdG5lZ2F0aXZlOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAocmVkLCBwcmltYXJ5KSksXG5cdHBvc2l0aXZlOiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoZ3JlZW4sIHByaW1hcnkpKSxcblx0c3VidGxlOiAoXG5cdFx0cHJpbWFyeTogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHNlY29uZGFyeSkpLFxuXHRcdGxpZ2h0OiBtYXAtdmFsdWUoJHMtY29sb3JzLCAoZ3JleSwgdGVydGlhcnkpKVxuXHQpLFxuXHRsaWdodDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKHdoaXRlLCBwcmltYXJ5KSksXG5cdGRhcms6IG1hcC12YWx1ZSgkcy1jb2xvcnMsIChibGFjaywgcHJpbWFyeSkpLFxuXHRkaXNhYmxlZDogbWFwLXZhbHVlKCRzLWNvbG9ycywgKGdyZXksIHF1YXRlcm5hcnkpKVxuKTtcbiIsIi8qIENvbXBvbmVudCAtIERpc3RyaWJ1dGVkIFB1bXBpbmcgVG9vbCBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpYy1zdGVwLXByb3BvcnRpb25zOiAoXG5cdDE6IDAuOTUsXG5cdDI6IDAuMDVcbik7XG5cbiRjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLWJ1dHRvbi1taW4td2lkdGg6IDkwcHg7XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljIHtcblx0d2lkdGg6IDEwMCU7XG5cblx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbih4bGFyZ2UpIHtcblx0XHRtYXgtd2lkdGg6IHQtcmVtKDg2MHB4KTtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cbn1cblxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2hlYWRlciB7XG5cdEBpbmNsdWRlIHQtZmxhdHRlbi1jaGlsZHJlbjtcblx0QGluY2x1ZGUgdC1yZXNwb25zaXZlLXZlcnRpY2FsLXNwYWNpbmcoeGxhcmdlLCBtYXJnaW4tYm90dG9tKTtcblx0bWF4LXdpZHRoOiB0LXJlbSg1NzBweCk7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19zdGVwLWxpc3Qge1xuXHRAaW5jbHVkZSB0LXJlc3BvbnNpdmUtdmVydGljYWwtc3BhY2luZyhtZWRpdW0sIG1hcmdpbi1ib3R0b20pO1xuXHRjb3VudGVyLXJlc2V0OiBzZWN0aW9uO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2xvYWRlciB7XG5cdEBpbmNsdWRlIHQtaGlkZGVuLXRleHQ7XG5cdEBpbmNsdWRlIHQtbG9hZGVyO1xufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fc3RlcC1saXN0LWl0ZW0ge1xuXG5cdEBtaXhpbiBjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLXN0ZXAtbGluZSB7XG5cdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdGJhY2tncm91bmQ6IHQtY29sb3ItYm9yZGVyKHN1YnRsZSk7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRoZWlnaHQ6IHQtcmVtKDJweCk7XG5cdH1cblxuXHRkaXNwbGF5OiBmbGV4O1xuXHR3aWR0aDogMzMuMzMzJTtcblxuXHQmLS1zdGVwLTEsXG5cdCYtLXN0ZXAtMiB7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRAaW5jbHVkZSBjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLXN0ZXAtbGluZTtcblx0XHR9XG5cdH1cblxuXHQmLS1zdGVwLTEge1xuXG5cdFx0d2lkdGg6IG1hcC1nZXQoJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtc3RlcC1wcm9wb3J0aW9ucywgMSkgKiAxMDAlO1xuXHR9XG5cblx0Ji0tc3RlcC0yIHtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLXN0ZXAtbGluZTtcblx0XHR9XG5cdFx0d2lkdGg6IG1hcC1nZXQoJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtc3RlcC1wcm9wb3J0aW9ucywgMikgKiAxMDAlO1xuXHRcdG1pbi13aWR0aDogJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtYnV0dG9uLW1pbi13aWR0aDtcblx0fVxufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fc3RlcC1sYWJlbCB7XG5cdEBpbmNsdWRlIHQtcmVzcG9uc2l2ZS10eXBlLXNpemUoeHNtYWxsKTtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiBjb2x1bW47XG5cdG1heC13aWR0aDogdC1yZW0oMTAwcHgpO1xuXHRwYWRkaW5nOiB0LXJlbSgwIDEwcHgpO1xufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fc3RlcC1jb3VudGVyIHtcblx0QGluY2x1ZGUgdC1hY3RpdmUtdW5kZXJsaW5lO1xuXHRAaW5jbHVkZSB0LXJlc3BvbnNpdmUtdHlwZS1zaXplKGxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHQtcmVtKDhweCk7XG5cdG1hcmdpbi1ib3R0b206IHQtcmVtKDhweCk7XG5cdG1pbi13aWR0aDogdC1yZW0oNDBweCk7XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19maWVsZHNldCB7XG5cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4oeGxhcmdlKSB7XG5cdFx0QGluY2x1ZGUgdC1mbGF0dGVuLWNoaWxkcmVuO1xuXHRcdEBpbmNsdWRlIHQtc2hhZG93KCRhcHBseS1ob3ZlcjogdHJ1ZSk7XG5cdFx0YmFja2dyb3VuZDogdC1jb2xvci1iYWNrZ3JvdW5kKGRlZmF1bHQpO1xuXHR9XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19sZWdlbmQge1xuXHRAaW5jbHVkZSB0LWhpZGRlbjtcbn1cblxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2ZpZWxkcyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZmxvdzogY29sdW1uO1xuXHRtYXJnaW46IDA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG1hcmdpbi1ib3R0b206IDFweDtcblxuXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKHhsYXJnZSkge1xuXHRcdGZsZXgtZmxvdzogcm93IG5vd3JhcDtcblx0fVxuXG5cdC5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLS1yZXN1bHRzICYge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0LWNvbG9yLWJvcmRlcihzdWJ0bGUpO1xuXHR9XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19maWVsZC1ncm91cCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHQtY29sb3ItYmFja2dyb3VuZChkZWZhdWx0KTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiBjb2x1bW47XG5cdHdpZHRoOiAxMDAlO1xuXG5cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4oeGxhcmdlKSB7XG5cdFx0ZmxleC1mbG93OiByb3cgbm93cmFwO1xuXHR9XG5cblx0Ji0tc3RlcC0xIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4obGFyZ2UpIHtcblxuXHRcdFx0LmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2ZpZWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdC1yZW0oLTMwcHgpO1xuXHRcdFx0fVxuXG5cdFx0XHQuY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fZmllbGQ6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4oeGxhcmdlKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdC1jb2xvci1ib3JkZXIoc3VidGxlKTtcblx0XHRcdHdpZHRoOiBtYXAtZ2V0KCRjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLXN0ZXAtcHJvcG9ydGlvbnMsIDEpICogMTAwJTtcblxuXHRcdFx0LmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2ZpZWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLS1zdGVwLTIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbihsYXJnZSkge1xuXHRcdFx0ZmxleC1mbG93OiByb3c7XG5cblx0XHRcdC5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19maWVsZCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKHhsYXJnZSkge1xuXHRcdFx0bWluLXdpZHRoOiAkY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpYy1idXR0b24tbWluLXdpZHRoO1xuXHRcdFx0d2lkdGg6IG1hcC1nZXQoJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtc3RlcC1wcm9wb3J0aW9ucywgMikgKiAxMDAlO1xuXG5cdFx0XHQuY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpYy0tcmVzdWx0cyAmIHtcblx0XHRcdFx0d2lkdGg6IG1hcC1nZXQoJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtc3RlcC1wcm9wb3J0aW9ucywgMikgKiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fc3BlY2lmaWVyLFxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX2ZpZWxkIHtcblx0QGluY2x1ZGUgdC1mbGF0dGVuLWNoaWxkcmVuO1xuXHRjb2xvcjogdC1jb2xvci10ZXh0KGRlZmF1bHQpO1xuXHRmbGV4OiAxIDEgYXV0bztcblx0bWFyZ2luOiAwO1xuXHRtaW4td2lkdGg6IDA7XG5cdHBhZGRpbmc6IHQtcmVtKDEwcHgpO1xuXG5cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4obGFyZ2UpIHtcblx0XHRwYWRkaW5nOiB0LXJlbSgzMHB4IDIwcHgpO1xuXHR9XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19maWVsZCB7XG5cblx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbih4bGFyZ2UpIHtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG5cblx0JjplbXB0eSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdCYtLWRpc2FibGVkIHtcblx0XHRvcGFjaXR5OiAwLjI7XG5cdH1cblxuXHQuY21wLWZvcm0tdGV4dF9fdGV4dCxcblx0LmNtcC1mb3JtLW9wdGlvbnNfX2ZpZWxkIHtcblxuXHRcdCZbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxuXG5cdC5jbXAtZm9ybS1vcHRpb25zX19sYWJlbCxcblx0LmNtcC1mb3JtLXRleHRfX2xhYmVsLFxuXHQuY21wLWZvcm0tb3B0aW9uc19fbGVnZW5kIHtcblx0XHRAaW5jbHVkZSB0LXRydW5jYXRlO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG5cblx0Ji0tMSB7XG5cdFx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbih4bGFyZ2UpIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0LWNvbG9yLWJvcmRlcihzdWJ0bGUpO1xuXHRcdH1cblx0fVxufVxuXG4uY21wLWRpc3RyaWJ1dGVkLXB1bXBpbmctdG9vbC1iYXNpY19fYnV0dG9uIHtcblx0ZGlzcGxheTogbm9uZTtcblxuXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKHhsYXJnZSkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRtaW4td2lkdGg6ICRjbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljLWJ1dHRvbi1taW4td2lkdGg7XG5cdFx0d2lkdGg6IG1hcC1nZXQoJGNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWMtc3RlcC1wcm9wb3J0aW9ucywgMikgKiAxMDAlO1xuXHR9XG59XG5cbi5jbXAtZGlzdHJpYnV0ZWQtcHVtcGluZy10b29sLWJhc2ljX19tb2JpbGUtYnV0dG9uIHtcblx0QGluY2x1ZGUgdC1yZXNwb25zaXZlLXZlcnRpY2FsLXNwYWNpbmcoeGxhcmdlLCBtYXJnaW4tdG9wKTtcblxuXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWF4KGxhcmdlKSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKHhsYXJnZSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmNtcC1kaXN0cmlidXRlZC1wdW1waW5nLXRvb2wtYmFzaWNfX3NwZWNpZmllciB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGhlaWdodDogMTAwJTtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIvLyBUb29scyAtIExheW91dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEBtaXhpbiB0LXZlcnRpY2FsLXNwYWNpbmdcbi8vLyBTZXRzIHRoZSB2YWx1ZXMgb2YgYSBnaXZlbiBzZXQgb2YgcHJvcGVydGllcyBmb3IgYSBnaXZlbiAkc3BhY2luZy1rZXkgZm9yIG9uZSBzcGVjaWZpYyAkYnJlYWtwb2ludC1rZXkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3BhY2luZy1rZXkgLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgc3BhY2luZyBsYWJlbCBpbiB0aGUgJHMtdmVydGljYWwtc3BhY2luZyBtYXAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJvcHMgLSBBIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgaW4gd2hpY2ggdG8gYXBwbHkgdGhlIHJlc3VsdGluZyB1bml0cy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGJyZWFrcG9pbnQgbGFiZWwgaW4gdGhlICRzLWJyZWFrcG9pbnRzIG1hcCBpbiB3aGljaCB0byByZWZlcmVuY2UgdGhlIGNvcnJlY3QgcmVzdWx0LlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyB0LXZlcnRpY2FsLXNwYWNpbmcoc21hbGwsIChtYXJnaW4tdG9wLCBtYXJnaW4tYm90dG9tKSwgbWVkaXVtKTtcbkBtaXhpbiB0LXZlcnRpY2FsLXNwYWNpbmcoJHNwYWNpbmcta2V5LCAkcHJvcHMsICRicmVha3BvaW50LWtleTogJHMtbWluLWJyZWFrcG9pbnQta2V5KSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLWJyZWFrcG9pbnRzKSAhPSBtYXAgb3IgdHlwZS1vZigkcy12ZXJ0aWNhbC1zcGFjaW5nKSAhPSBtYXApIHtcblx0XHRAZXJyb3IgXCIkcy1icmVha3BvaW50cyBhbmQgJHMtdmVydGljYWwtc3BhY2luZyBtdXN0IGJlIHZhbGlkIG1hcHMuXCI7XG5cdH1cblxuXHRAaWYgKG1hcC1oYXMta2V5KCRzLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1rZXkpKSB7XG5cdFx0JHNwYWNpbmctbWFwOiBtYXAtZ2V0KCRzLXZlcnRpY2FsLXNwYWNpbmcsICRzcGFjaW5nLWtleSk7XG5cdFx0JHNwYWNpbmc6IG1hcC1nZXQoJHNwYWNpbmctbWFwLCAkYnJlYWtwb2ludC1rZXkpO1xuXG5cdFx0QGlmICgkc3BhY2luZyAhPSBudWxsKSB7XG5cblx0XHRcdEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG5cdFx0XHRcdCN7ICRwcm9wIH06IHQtcmVtKCRzcGFjaW5nKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8vIEBtaXhpbiB0LWhvcml6b250YWwtc3BhY2luZ1xuLy8vIFNldHMgdGhlIHZhbHVlcyBvZiBhIGdpdmVuIHNldCBvZiBwcm9wZXJ0aWVzIGZvciBhIGdpdmVuICRzcGFjaW5nLWtleSBmb3Igb25lIHNwZWNpZmljICRicmVha3BvaW50LWtleS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzcGFjaW5nLWtleSAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBzcGFjaW5nIGxhYmVsIGluIHRoZSAkcy1ob3Jpem9udGFsLXNwYWNpbmcgbWFwLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHByb3BzIC0gQSBMaXN0IG9mIENTUyBwcm9wZXJ0aWVzIGluIHdoaWNoIHRvIGFwcGx5IHRoZSByZXN1bHRpbmcgdW5pdHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50LWtleSAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBicmVha3BvaW50IGxhYmVsIGluIHRoZSAkcy1icmVha3BvaW50cyBtYXAgaW4gd2hpY2ggdG8gcmVmZXJlbmNlIHRoZSBjb3JyZWN0IHJlc3VsdC5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gdC1ob3Jpem9udGFsLXNwYWNpbmcoc21hbGwsIChtYXJnaW4tbGVmdCwgbWFyZ2luLXJpZ2h0KSwgbWVkaXVtKTtcbkBtaXhpbiB0LWhvcml6b250YWwtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcywgJGJyZWFrcG9pbnQta2V5OiAkcy1taW4tYnJlYWtwb2ludC1rZXkpIHtcblxuXHRAaWYgKHR5cGUtb2YoJHMtYnJlYWtwb2ludHMpICE9IG1hcCBvciB0eXBlLW9mKCRzLWhvcml6b250YWwtc3BhY2luZykgIT0gbWFwKSB7XG5cdFx0QGVycm9yIFwiJHMtYnJlYWtwb2ludHMgYW5kICRzLWhvcml6b250YWwtc3BhY2luZyBtdXN0IGJlIHZhbGlkIG1hcHMuXCI7XG5cdH1cblxuXHRAaWYgKG1hcC1oYXMta2V5KCRzLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1rZXkpKSB7XG5cdFx0JHNwYWNpbmctbWFwOiBtYXAtZ2V0KCRzLWhvcml6b250YWwtc3BhY2luZywgJHNwYWNpbmcta2V5KTtcblx0XHQkc3BhY2luZzogbWFwLWdldCgkc3BhY2luZy1tYXAsICRicmVha3BvaW50LWtleSk7XG5cblx0XHRAaWYgKCRzcGFjaW5nICE9IG51bGwpIHtcblxuXHRcdFx0QGVhY2ggJHByb3AgaW4gJHByb3BzIHtcblx0XHRcdFx0I3sgJHByb3AgfTogdC1yZW0oJHNwYWNpbmcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLy8gQG1peGluIHQtcmVzcG9uc2l2ZS12ZXJ0aWNhbC1zcGFjaW5nXG4vLy8gU2V0cyB0aGUgdmFsdWVzIG9mIGEgZ2l2ZW4gc2V0IG9mIHByb3BlcnRpZXMgZm9yIGEgZ2l2ZW4gJHNwYWNpbmcta2V5IGZvciBhbGwgYnJlYWtwb2ludHMgd2l0aCBhbiBvcHRpb25hbCAkdHlwZS1zaXplIHNwZWNpZmljYXRpb24gdG8gc3VidHJhY3QgdGhlXG4vLy8gYXBwcm94aW1hdGUgc3BhY2UgYmV0d2VlbiB0aGUgdGV4dCAvIGxpbmUgaGVpZ2h0LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNwYWNpbmcta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIHNwYWNpbmcgbGFiZWwgaW4gdGhlICRzLXZlcnRpY2FsLXNwYWNpbmcgbWFwLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHByb3BzIC0gQSBMaXN0IG9mIENTUyBwcm9wZXJ0aWVzIGluIHdoaWNoIHRvIGFwcGx5IHRoZSByZXN1bHRpbmcgdW5pdHMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXJlc3BvbnNpdmUtdmVydGljYWwtc3BhY2luZyhzbWFsbCwgKG1hcmdpbi10b3AsIG1hcmdpbi1ib3R0b20pKTtcbkBtaXhpbiB0LXJlc3BvbnNpdmUtdmVydGljYWwtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcykge1xuXG5cdEBpZiAodHlwZS1vZigkcy12ZXJ0aWNhbC1zcGFjaW5nKSAhPSBtYXApIHtcblx0XHRAZXJyb3IgXCIkcy12ZXJ0aWNhbC1zcGFjaW5nIG11c3QgYmUgYSB2YWxpZCBtYXAuXCI7XG5cdH1cblxuXHRAaW5jbHVkZSB0LXZlcnRpY2FsLXNwYWNpbmcoJHNwYWNpbmcta2V5LCAkcHJvcHMsICRzLW1pbi1icmVha3BvaW50LWtleSk7XG5cblx0QGVhY2ggJGJyZWFrcG9pbnQta2V5IGluIG1hcC1rZXlzKG1hcC1nZXQoJHMtdmVydGljYWwtc3BhY2luZywgJHNwYWNpbmcta2V5KSkge1xuXG5cdFx0QGlmICgkYnJlYWtwb2ludC1rZXkgIT0gJHMtbWluLWJyZWFrcG9pbnQta2V5KSB7XG5cblx0XHRcdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4oJGJyZWFrcG9pbnQta2V5KSB7XG5cdFx0XHRcdEBpbmNsdWRlIHQtdmVydGljYWwtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcywgJGJyZWFrcG9pbnQta2V5KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8vIEBtaXhpbiB0LXJlc3BvbnNpdmUtaG9yaXpvbnRhbC1zcGFjaW5nXG4vLy8gU2V0cyB0aGUgdmFsdWVzIG9mIGEgZ2l2ZW4gc2V0IG9mIHByb3BlcnRpZXMgZm9yIGEgZ2l2ZW4gJHNwYWNpbmcta2V5IGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3BhY2luZy1rZXkgLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgc3BhY2luZyBsYWJlbCBpbiB0aGUgJHMtaG9yaXpvbnRhbC1zcGFjaW5nIG1hcC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcm9wcyAtIEEgTGlzdCBvZiBDU1MgcHJvcGVydGllcyBpbiB3aGljaCB0byBhcHBseSB0aGUgcmVzdWx0aW5nIHVuaXRzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1x0QGluY2x1ZGUgdC1yZXNwb25zaXZlLWhvcml6b250YWwtc3BhY2luZyhzbWFsbCwgKG1hcmdpbi1sZWZ0LCBtYXJnaW4tcmlnaHQpKTtcbkBtaXhpbiB0LXJlc3BvbnNpdmUtaG9yaXpvbnRhbC1zcGFjaW5nKCRzcGFjaW5nLWtleSwgJHByb3BzKSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLWhvcml6b250YWwtc3BhY2luZykgIT0gbWFwKSB7XG5cdFx0QGVycm9yIFwiJHMtaG9yaXpvbnRhbC1zcGFjaW5nIG11c3QgYmUgYSB2YWxpZCBtYXAuXCI7XG5cdH1cblxuXHRAaW5jbHVkZSB0LWhvcml6b250YWwtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcywgJHMtbWluLWJyZWFrcG9pbnQta2V5KTtcblxuXHRAZWFjaCAkYnJlYWtwb2ludC1rZXkgaW4gbWFwLWtleXMobWFwLWdldCgkcy1ob3Jpem9udGFsLXNwYWNpbmcsICRzcGFjaW5nLWtleSkpIHtcblxuXHRcdEBpZiAoJGJyZWFrcG9pbnQta2V5ICE9ICRzLW1pbi1icmVha3BvaW50LWtleSkge1xuXG5cdFx0XHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKCRicmVha3BvaW50LWtleSkge1xuXHRcdFx0XHRAaW5jbHVkZSB0LWhvcml6b250YWwtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcywgJGJyZWFrcG9pbnQta2V5KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8vIEBtaXhpbiB0LWxheWVyXG4vLy8gU2V0cyB0aGUgY29ycmVjdCBnbG9iYWwgei1pbmRleCBnaXZlbiBhIGxldmVsIHBhcmFtZXRlciBhbmQgb3B0aW9uYWwgbW9kaWZpZXIuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV2ZWwgLSBBIGtleSB3aGljaCBpZGVudGlmaWVzIHRoZSBiYXNlIHotaW5kZXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtb2RpZmllciAtIEFuIG9wdGlvbmFsIG1vZGlmaWVyIHRvIGluY3JlYXNlIHRoZSBiYXNlIHotaW5kZXggbGV2ZWwgYnkgdGhlIGdpdmVuIG51bWJlci5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gQGluY2x1ZGUgdC1sYXllcigyLCAxKTtcbkBtaXhpbiB0LWxheWVyKCRsZXZlbDogMCwgJG1vZGlmaWVyOiAwKSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLWxheWVycykgIT0gbWFwKSB7XG5cdFx0QGVycm9yIFwiJHMtbGF5ZXJzIG11c3QgYmUgYSB2YWxpZCBtYXAuXCI7XG5cdH1cblxuXHR6LWluZGV4OiBtYXAtZ2V0KCRzLWxheWVycywgJGxldmVsKSArICRtb2RpZmllcjtcbn1cblxuQG1peGluIHQtY29udGFpbmVyIHtcblx0JGRlZmF1bHQtZ3V0dGVyOiBtYXAtZ2V0KCRzLWxheW91dC1ncmlkLWd1dHRlcnMsICRzLW1pbi1icmVha3BvaW50LWtleSk7XG5cblx0bWFyZ2luOiAwIGF1dG87XG5cdG1heC13aWR0aDogdC1yZW0oJHMtc2l0ZS13aWR0aCAtICgkZGVmYXVsdC1ndXR0ZXIgKiAyKSk7XG5cdHBhZGRpbmctbGVmdDogdC1yZW0oJGRlZmF1bHQtZ3V0dGVyKTtcblx0cGFkZGluZy1yaWdodDogdC1yZW0oJGRlZmF1bHQtZ3V0dGVyKTtcblx0d2lkdGg6IDEwMCU7XG5cblx0QGVhY2ggJGJyZWFrcG9pbnQta2V5IGluIG1hcC1rZXlzKCRzLWxheW91dC1ncmlkLWd1dHRlcnMpIHtcblxuXHRcdEBpZiAoJGJyZWFrcG9pbnQta2V5ICE9ICRzLW1pbi1icmVha3BvaW50LWtleSkge1xuXG5cdFx0XHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKCRicmVha3BvaW50LWtleSkge1xuXHRcdFx0XHQkZ3V0dGVyOiBtYXAtZ2V0KCRzLWxheW91dC1ncmlkLWd1dHRlcnMsICRicmVha3BvaW50LWtleSk7XG5cblx0XHRcdFx0bWF4LXdpZHRoOiB0LXJlbSgkcy1zaXRlLXdpZHRoIC0gKCRndXR0ZXIgKiAyKSk7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdC1yZW0oJGd1dHRlcik7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHQtcmVtKCRndXR0ZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gdC1mdWxsLXdpZHRoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuXHR3aWR0aDogdmFyKC0tYi12aWV3cG9ydC13aWR0aCk7XG5cblx0QG1lZGlhIHByaW50IHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHRyYW5zZm9ybTogbm9uZTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG5AbWl4aW4gdC1kZWNrLXBhZGRpbmcge1xuXHRAaW5jbHVkZSB0LXZlcnRpY2FsLXNwYWNpbmcoeHh4bGFyZ2UsIHBhZGRpbmctYm90dG9tKTtcblx0QGluY2x1ZGUgdC12ZXJ0aWNhbC1zcGFjaW5nKHh4bGFyZ2UsIHBhZGRpbmctdG9wKTtcblxuXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWluKGxhcmdlKSB7XG5cdFx0QGluY2x1ZGUgdC12ZXJ0aWNhbC1zcGFjaW5nKHh4eHhsYXJnZSwgcGFkZGluZy1ib3R0b20pO1xuXHRcdEBpbmNsdWRlIHQtdmVydGljYWwtc3BhY2luZyh4eHhsYXJnZSwgcGFkZGluZy10b3ApO1xuXHR9XG59XG4iLCIvLyBUb29scyAtIERlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBmdW5jdGlvbiB0LWljb24oJG5hbWUsICRmaWxsOiAjMDAwLCAkc3Ryb2tlOiBub25lKSB7XG5cdEByZXR1cm4gc3ZnLWxvYWQoXCJpY29ucy9cIiArICRuYW1lICsgXCIuc3ZnXCIsIGZpbGw9JGZpbGwsIHN0cm9rZT0kc3Ryb2tlKTtcbn1cblxuLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiB0LWljb24gKCRuYW1lLCAkZmlsbDogIzAwMCwgJHN0cm9rZTogbm9uZSwgJHNpemU6IHNtYWxsLCAkcG9zOiBhZnRlcikge1xuXHQkcmVzb2x2ZWQtc2l6ZTogaWYobWFwLWhhcy1rZXkoJHMtc2l6ZXMtaWNvbnMsICRzaXplKSwgdC1yZW0obWFwLWdldCgkcy1zaXplcy1pY29ucywgJHNpemUpKSwgdC1yZW0oJHNpemUpKTtcblxuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1wc2V1ZG8tZWxlbWVudC1uby11bmtub3duICovXG5cdCY6OiN7ICRwb3MgfSB7XG5cdFx0YmFja2dyb3VuZDogdC1pY29uKCRuYW1lLCAkZmlsbCwgJHN0cm9rZSkgY2VudGVyIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGhlaWdodDogJHJlc29sdmVkLXNpemU7XG5cdFx0d2lkdGg6ICRyZXNvbHZlZC1zaXplO1xuXG5cdFx0QGNvbnRlbnQ7XG5cdH1cblx0Lyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1wc2V1ZG8tZWxlbWVudC1uby11bmtub3duICovXG59XG5cbkBtaXhpbiB0LXBvaW50ZXIgKCRkaXIsICRzaXplLCAkY29sb3IsICRib3JkZXItY29sb3I6ICRjb2xvcikge1xuXHQkYm9yZGVyLXN0eWxlOiB0LXJlbSgkc2l6ZSkgc29saWQgJGJvcmRlci1jb2xvcjtcblx0JHRyYW5zLXN0eWxlOiB0LXJlbSgkc2l6ZSkgc29saWQgdHJhbnNwYXJlbnQ7XG5cdCRmaWxsLXN0eWxlOiB0LXJlbSgkc2l6ZSkgc29saWQgJGNvbG9yO1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOjpiZWZvcmUsXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDA7XG5cblx0XHRAaWYgJGRpciA9PSB1cCB7XG5cdFx0XHRib3JkZXItbGVmdDogJHRyYW5zLXN0eWxlO1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAkdHJhbnMtc3R5bGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSk7XG5cdFx0fVxuXG5cdFx0QGlmICRkaXIgPT0gcmlnaHQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogJHRyYW5zLXN0eWxlO1xuXHRcdFx0Ym9yZGVyLXRvcDogJHRyYW5zLXN0eWxlO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC01MCUpO1xuXHRcdH1cblxuXHRcdEBpZiAkZGlyID09IGRvd24ge1xuXHRcdFx0Ym9yZGVyLWxlZnQ6ICR0cmFucy1zdHlsZTtcblx0XHRcdGJvcmRlci1yaWdodDogJHRyYW5zLXN0eWxlO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMTAwJSk7XG5cdFx0fVxuXG5cdFx0QGlmICRkaXIgPT0gbGVmdCB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAkdHJhbnMtc3R5bGU7XG5cdFx0XHRib3JkZXItdG9wOiAkdHJhbnMtc3R5bGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwJSwgLTUwJSk7XG5cdFx0fVxuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXG5cdFx0QGlmICRkaXIgPT0gdXAge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogJGZpbGwtc3R5bGU7XG5cdFx0fVxuXG5cdFx0QGlmICRkaXIgPT0gcmlnaHQge1xuXHRcdFx0Ym9yZGVyLWxlZnQ6ICRmaWxsLXN0eWxlO1xuXHRcdH1cblxuXHRcdEBpZiAkZGlyID09IGRvd24ge1xuXHRcdFx0Ym9yZGVyLXRvcDogJGZpbGwtc3R5bGU7XG5cdFx0fVxuXG5cdFx0QGlmICRkaXIgPT0gbGVmdCB7XG5cdFx0XHRib3JkZXItcmlnaHQ6ICRmaWxsLXN0eWxlO1xuXHRcdH1cblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cblx0XHRAaWYgJGRpciA9PSB1cCB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAkYm9yZGVyLXN0eWxlO1xuXHRcdH1cblxuXHRcdEBpZiAkZGlyID09IHJpZ2h0IHtcblx0XHRcdGJvcmRlci1sZWZ0OiAkYm9yZGVyLXN0eWxlO1xuXHRcdH1cblxuXHRcdEBpZiAkZGlyID09IGRvd24ge1xuXHRcdFx0Ym9yZGVyLXRvcDogJGJvcmRlci1zdHlsZTtcblx0XHR9XG5cblx0XHRAaWYgJGRpciA9PSBsZWZ0IHtcblx0XHRcdGJvcmRlci1yaWdodDogJGJvcmRlci1zdHlsZTtcblx0XHR9XG5cdH1cbn1cblxuQG1peGluIHQtbG9hZGVyKCRmaWxsOiBmYWxzZSkge1xuXHRtaW4taGVpZ2h0OiB0LXJlbShtYXAtZ2V0KCRzLXNpemVzLWljb25zLCB4bGFyZ2UpICsgKCRzLWJhc2UtZ3V0dGVyICogMikpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIHQtbGF5ZXIoMik7XG5cdFx0YmFja2dyb3VuZDogc3ZnLWxvYWQoXCJncnVuZGZvcy9sb2FkZXIuc3ZnXCIpIGNlbnRlciBjZW50ZXIgLyB0LXJlbShtYXAtZ2V0KCRzLXNpemVzLWljb25zLCB4bGFyZ2UpKSBuby1yZXBlYXQ7XG5cblx0XHRAaWYgKCRmaWxsKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHQtY29sb3Iod2hpdGUpLCAwLjcpO1xuXHRcdH1cblxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0bGVmdDogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbkBtaXhpbiB0LXNoYWRvdygkc3VidGxlOiBmYWxzZSwgJGFwcGx5LWhvdmVyOiBmYWxzZSkge1xuXHQkc2hhZG93LXN1YnRsZTogdC1yZW0oMCAwIDJweCAwKSByZ2JhKDAsMCwwLDAuMDYpLCB0LXJlbSgwIDJweCAycHggMCkgcmdiYSgwLDAsMCwwLjA5KTtcblx0JHNoYWRvdy1zdWJ0bGUtaG92ZXI6IHQtcmVtKDAgMCAycHggMCkgcmdiYSgwLDAsMCwwLjA5KSwgdC1yZW0oMCAycHggNnB4IDFweCkgcmdiYSgwLDAsMCwwLjI0KTtcblxuXHQkc2hhZG93LW5vcm1hbDogdC1yZW0oMCAwIDJweCAwKSByZ2JhKDAsMCwwLDAuMDkpLCB0LXJlbSgwIDJweCA0cHggMCkgcmdiYSgwLDAsMCwwLjEyKTtcblx0JHNoYWRvdy1ub3JtYWwtaG92ZXI6IHQtcmVtKDAgMCAycHggMCkgcmdiYSgwLDAsMCwwLjEyKSwgdC1yZW0oMCAycHggOHB4IDFweCkgcmdiYSgwLDAsMCwwLjI0KTtcblxuXHQkc2hhZG93LXJlc3VsdDogaWYoJHN1YnRsZSwgJHNoYWRvdy1zdWJ0bGUsICRzaGFkb3ctbm9ybWFsKTtcblx0JHNoYWRvdy1yZXN1bHQtaG92ZXI6IGlmKCRzdWJ0bGUsICRzaGFkb3ctc3VidGxlLWhvdmVyLCAkc2hhZG93LW5vcm1hbC1ob3Zlcik7XG5cblx0Ym94LXNoYWRvdzogJHNoYWRvdy1yZXN1bHQ7XG5cblx0QGlmICgkYXBwbHktaG92ZXIpIHtcblx0XHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IG1hcC1nZXQoJHMtdHJhbnNpdGlvbnMsIGhvdmVyKTtcblx0XHR3aWxsLWNoYW5nZTogYm94LXNoYWRvdztcblxuXHRcdEBpbmNsdWRlIHQtYWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6ICRzaGFkb3ctcmVzdWx0LWhvdmVyO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gdC1wc3VlZG8tc2hhZG93KCRkaXJlY3Rpb246IHRvcCwgJHN1YnRsZTogZmFsc2UpIHtcblx0JHNpemU6IDVweDtcblxuXHQmOjphZnRlciB7XG5cdFx0QGluY2x1ZGUgdC1sYXllcigxKTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gJGRpcmVjdGlvbiwgcmdiYSgwLDAsMCwwKSAwLHJnYmEoMCwwLDAsMC4yKSAxMDAlKTtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQjeyAkZGlyZWN0aW9uIH06IDA7XG5cblx0XHRAaWYgKCRkaXJlY3Rpb24gPT0gbGVmdCBvciAkZGlyZWN0aW9uID09IHJpZ2h0KSB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHR3aWR0aDogdC1yZW0oJHNpemUpO1xuXHRcdH1cblx0XHRAZWxzZSB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0aGVpZ2h0OiB0LXJlbSgkc2l6ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gdC1hY3RpdmUtdW5kZXJsaW5lKCRhcHBseS1ob3ZlcjogZmFsc2UpIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6bm90KFtkaXNhYmxlZF0pOjphZnRlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdC1jb2xvcihibHVlKTtcblx0XHRib3R0b206IDA7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRoZWlnaHQ6IHQtcmVtKDNweCk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRyYW5zZm9ybTogc2NhbGVYKDApO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSBtYXAtZ2V0KCRzLXRyYW5zaXRpb25zLCBob3Zlcik7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0fVxuXG5cdEBpZiAoJGFwcGx5LWhvdmVyKSB7XG5cblx0XHRAaW5jbHVkZSB0LWFjdGl2ZSB7XG5cblx0XHRcdCY6bm90KFtkaXNhYmxlZF0pOjphZnRlciB7XG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCY6bm90KFtkaXNhYmxlZF0pW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdLFxuXHQmOm5vdChbZGlzYWJsZWRdKSN7ICRzLWFjdGl2ZS1zZWxlY3RvciB9IHtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gU2V0dGluZ3MgLSBMYXlvdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHMtYmFzZS1ndXR0ZXI6IDE2cHg7XG4kcy1iYXNlLW1pbi1oZWlnaHRzOiAoXG5cdHNtYWxsOiAyODBweCxcblx0bWVkaXVtOiAzNjBweCxcblx0bGFyZ2U6IDQ0MHB4XG4pO1xuXG4kcy13aWRlLWd1dHRlcjogNzBweDtcblxuJHMtaGVhZGVyLW1vYmlsZS1wZWVrOiA2MHB4O1xuJHMtaGVhZGVyLW1vYmlsZS1tYXgtd2lkdGg6IDMxNXB4O1xuXG4kcy1sYXlvdXQtZ3JpZC1kaXZpc2lvbnM6IDEyO1xuJHMtbGF5b3V0LWdyaWQtZ3V0dGVyczogKFxuXHRzbWFsbDogMTZweFxuKTtcblxuJHMtc2l0ZS13aWR0aDogMTIwMHB4O1xuXG4vLy8gJHMtdmVydGljYWwtc3BhY2luZ1xuLy8vIEVzdGFibGlzaGVzIGEgbWFwIGNvbnRhaW5pbmcgdmVydGljYWwgbGF5b3V0IHNwYWNpbmcgdmFsdWVzIGF0IGVhY2ggZGVmaW5lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAkcy12ZXJ0aWNhbC1zcGFjaW5nOiAoXG4vLy8gXHRzbWFsbDogKFxuLy8vIFx0XHRzbWFsbDogMTBweCxcbi8vLyBcdFx0bWVkaXVtOiAyMHB4XG4vLy8gXHQpLFxuLy8vIFx0bWVkaXVtOiAoXG4vLy8gXHRcdHNtYWxsOiAyMHB4LFxuLy8vIFx0XHRtZWRpdW06IDQwcHhcbi8vLyBcdCksXG4vLy8gXHRsYXJnZTogKFxuLy8vIFx0XHRzbWFsbDogMzBweCxcbi8vLyBcdFx0bWVkaXVtOiA2MHB4XG4vLy8gXHQpXG4vLy8gKTtcbiRzLXZlcnRpY2FsLXNwYWNpbmc6IChcblx0eHNtYWxsOiAoXG5cdFx0c21hbGw6IDhweFxuXHQpLFxuXHRzbWFsbDogKFxuXHRcdHNtYWxsOiAxMHB4XG5cdCksXG5cdG1lZGl1bTogKFxuXHRcdHNtYWxsOiAxNnB4XG5cdCksXG5cdGxhcmdlOiAoXG5cdFx0c21hbGw6IDIwcHhcblx0KSxcblx0eGxhcmdlOiAoXG5cdFx0c21hbGw6IDMwcHhcblx0KSxcblx0eHhsYXJnZTogKFxuXHRcdHNtYWxsOiA0MHB4XG5cdCksXG5cdHh4eGxhcmdlOiAoXG5cdFx0c21hbGw6IDYwcHhcblx0KSxcblx0eHh4eGxhcmdlOiAoXG5cdFx0c21hbGw6IDgwcHhcblx0KVxuKTtcblxuLy8vICRzLWhvcml6b250YWwtc3BhY2luZ1xuLy8vIEVzdGFibGlzaGVzIGEgbWFwIGNvbnRhaW5pbmcgaG9yaXpvbnRhbCBsYXlvdXQgc3BhY2luZyB2YWx1ZXMgYXQgZWFjaCBkZWZpbmVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICRzLWhvcml6b250YWwtc3BhY2luZzogKFxuLy8vIFx0c21hbGw6IChcbi8vLyBcdFx0c21hbGw6IDEwcHgsXG4vLy8gXHRcdG1lZGl1bTogMjBweFxuLy8vIFx0KSxcbi8vLyBcdG1lZGl1bTogKFxuLy8vIFx0XHRzbWFsbDogMjBweCxcbi8vLyBcdFx0bWVkaXVtOiA0MHB4XG4vLy8gXHQpLFxuLy8vIFx0bGFyZ2U6IChcbi8vLyBcdFx0c21hbGw6IDMwcHgsXG4vLy8gXHRcdG1lZGl1bTogNjBweFxuLy8vIFx0KVxuLy8vICk7XG4kcy1ob3Jpem9udGFsLXNwYWNpbmc6IChcblx0eHNtYWxsOiAoXG5cdFx0c21hbGw6IDhweCxcblx0XHRtZWRpdW06IDE2cHgsXG5cdFx0bGFyZ2U6IDIwcHhcblx0KSxcblx0c21hbGw6IChcblx0XHRzbWFsbDogMTZweCxcblx0XHRtZWRpdW06IDIwcHgsXG5cdFx0bGFyZ2U6IDMwcHhcblx0KSxcblx0bWVkaXVtOiAoXG5cdFx0c21hbGw6IDIwcHgsXG5cdFx0bWVkaXVtOiAzMHB4LFxuXHRcdGxhcmdlOiA0MHB4XG5cdCksXG5cdGxhcmdlOiAoXG5cdFx0c21hbGw6IDMwcHgsXG5cdFx0bWVkaXVtOiA0MHB4LFxuXHRcdGxhcmdlOiA2MHB4XG5cdClcbik7XG5cbi8vLyAkcy1sYXllcnNcbi8vLyBFc3RhYmxpc2hlcyBhIG1hcCBjb250YWluaW5nIHotaW5kZXggbGF5ZXJzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAkcy1sYXllcnM6IChcbi8vLyBcdDA6IDAsXG4vLy8gXHQxOiAxLFxuLy8vIFx0MjogMTAsXG4vLy8gXHQzOiAxMDAsXG4vLy8gXHQ0OiAxMDAwXG4vLy8gKTtcbiRzLWxheWVyczogKFxuXHQwOiAwLFxuXHQxOiAxLFxuXHQyOiAxMCxcblx0MzogMTAwLFxuXHQ0OiAxMDAwXG4pO1xuIiwiLy8gVG9vbHMgLSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQGZ1bmN0aW9uIHQtZ2V0LXR5cGUtc3BhY2luZy10eXBlLWFkanVzdFxuLy8vIEdldHMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBmb3IgYSBnaXZlbiBicmVha3BvaW50LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHR5cGUtc2l6ZSAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSB0eXBlIHNpemUgbGFiZWwgaW4gdGhlICRzLXR5cGUtc2l6aW5nIG1hcC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGJyZWFrcG9pbnQgbGFiZWwgb2YgdGhlIGdpdmUgJHR5cGUtc2l6ZSB3aXRoaW4gdGhlICRzLXR5cGUtc2l6aW5nIG1hcC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IGV4cHJlc3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUgdW5pdC5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gdC1nZXQtdHlwZS1zcGFjaW5nLXR5cGUtYWRqdXN0KHNtYWxsLCBtZWRpdW0pO1xuQGZ1bmN0aW9uIHQtZ2V0LXR5cGUtc3BhY2luZy10eXBlLWFkanVzdCgkdHlwZS1zaXplLCAkYnJlYWtwb2ludC1rZXkpIHtcblxuXHRAaWYgKHR5cGUtb2YoJHMtdHlwZS1zaXppbmcpICE9IG1hcCkge1xuXHRcdEBlcnJvciBcIiRzLXR5cGUtc2l6aW5nIG11c3QgYmUgYSB2YWxpZCBtYXAuXCI7XG5cdH1cblxuXHQkdHlwZS1zaXplLW1hcDogbWFwLWdldCgkcy10eXBlLXNpemluZywgJHR5cGUtc2l6ZSk7XG5cblx0QGlmIChtYXAtaGFzLWtleSgkdHlwZS1zaXplLW1hcCwgJGJyZWFrcG9pbnQta2V5KSkge1xuXHRcdCR0eXBlLWJyZWFrcG9pbnQtbWFwOiBtYXAtZ2V0KCR0eXBlLXNpemUtbWFwLCAkYnJlYWtwb2ludC1rZXkpO1xuXHRcdCRmb250LXNpemU6IG1hcC1nZXQoJHR5cGUtYnJlYWtwb2ludC1tYXAsIGZvbnQtc2l6ZSk7XG5cdFx0JGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCR0eXBlLWJyZWFrcG9pbnQtbWFwLCBsaW5lLWhlaWdodCk7XG5cblx0XHRAaWYgKCRmb250LXNpemUgIT0gbnVsbCBhbmQgJGxpbmUtaGVpZ2h0ICE9IG51bGwpIHtcblxuXHRcdFx0QGlmICh1bml0bGVzcygkbGluZS1oZWlnaHQpKSB7XG5cdFx0XHRcdCRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0ICogJGZvbnQtc2l6ZTtcblx0XHRcdH1cblxuXHRcdFx0QHJldHVybiAoJGxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgLyAyO1xuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gMDtcbn1cblxuLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBAbWl4aW4gdC1mb250XG4vLy8gU2V0cyB0aGUgdW5xdW90ZWQgZm9udC1mYW1pbHkgc3RhY2sgZnJvbSB0aGUgJHMtZm9udC1mYW1pbGllcyBtYXAuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1uYW1lIC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGtleSBpbiB0aGUgJHMtZm9udC1mYW1pbGllcyBtYXAuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LWZvbnQoJ0ZvbnROYW1lJyk7XG5AbWl4aW4gdC1mb250KCRmb250LW5hbWUpIHtcblx0JGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRzLWZvbnQtZmFtaWxpZXMsICRmb250LW5hbWUpO1xuXG5cdEBpZiAoJGZvbnQtZmFtaWx5IT0gbnVsbCkge1xuXHRcdGZvbnQtZmFtaWx5OiB1bnF1b3RlKCRmb250LWZhbWlseSk7XG5cdH1cbn1cblxuLy8vIEBtaXhpbiB0LXR5cGUtc2l6ZVxuLy8vIFNldHMgdGhlIGZvbnQtc2l6ZSBhbmQgbGluZS1oZWlnaHRzIGZvciBhIGdpdmVuICR0eXBlLXNpemUgZm9yIG9uZSBzcGVjaWZpYyAkYnJlYWtwb2ludC1rZXkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZS1zaXplIC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIHR5cGUtc2l6ZSBrZXkgaW4gdGhlICRzLXR5cGUtc2l6aW5nIG1hcCBzcGVjaWZ5aW5nIHRoZSByZXF1aXJlZCB0eXBlIHNpemUuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50LWtleSAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBicmVha3BvaW50IGtleSBpbiB0aGUgJHMtYnJlYWtwb2ludHMgbWFwIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIGJyZWFrcG9pbnQgc2l6ZS5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cdEBpbmNsdWRlIHQtdHlwZS1zaXplKHNtYWxsLCBtZWRpdW0pO1xuQG1peGluIHQtdHlwZS1zaXplKCR0eXBlLXNpemUsICRicmVha3BvaW50LWtleTogJHMtbWluLWJyZWFrcG9pbnQta2V5KSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLXR5cGUtc2l6aW5nKSAhPSBtYXApIHtcblx0XHRAZXJyb3IgXCIkcy10eXBlLXNpemluZyBtdXN0IGJlIGEgdmFsaWQgbWFwLlwiO1xuXHR9XG5cblx0Zm9udC1zaXplOiB0LXJlbShtYXAtdmFsdWUoJHMtdHlwZS1zaXppbmcsICgkdHlwZS1zaXplLCAkYnJlYWtwb2ludC1rZXksIGZvbnQtc2l6ZSkpKTtcblx0bGluZS1oZWlnaHQ6IHQtcmVtKG1hcC12YWx1ZSgkcy10eXBlLXNpemluZywgKCR0eXBlLXNpemUsICRicmVha3BvaW50LWtleSwgbGluZS1oZWlnaHQpKSk7XG59XG5cbi8vLyBAbWl4aW4gdC1yZXNwb25zaXZlLXR5cGUtc2l6ZVxuLy8vIFNldHMgdGhlIGZvbnQtc2l6ZSBhbmQgbGluZS1oZWlnaHRzIGZvciBhIGdpdmVuICR0eXBlLXNpemUgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlLXNpemUgLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgdHlwZS1zaXplIGtleSBpbiB0aGUgJHMtdHlwZS1zaXppbmcgbWFwIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIHR5cGUgc2l6ZS5cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXJlc3BvbnNpdmUtdHlwZS1zaXplKG1lZGl1bSk7XG5AbWl4aW4gdC1yZXNwb25zaXZlLXR5cGUtc2l6ZSgkdHlwZS1zaXplKSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLXR5cGUtc2l6aW5nKSAhPSBtYXApIHtcblx0XHRAZXJyb3IgXCIkcy10eXBlLXNpemluZyBtdXN0IGJlIGEgdmFsaWQgbWFwLlwiO1xuXHR9XG5cblx0QGluY2x1ZGUgdC10eXBlLXNpemUoJHR5cGUtc2l6ZSk7XG5cblx0QGVhY2ggJGJyZWFrcG9pbnQta2V5IGluIG1hcC1rZXlzKG1hcC1nZXQoJHMtdHlwZS1zaXppbmcsICR0eXBlLXNpemUpKSB7XG5cblx0XHRAaWYgKCRicmVha3BvaW50LWtleSAhPSAkcy1taW4tYnJlYWtwb2ludC1rZXkpIHtcblxuXHRcdFx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbihtYXAtZ2V0KCRzLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1rZXkpKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHQtdHlwZS1zaXplKCR0eXBlLXNpemUsICRicmVha3BvaW50LWtleSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vLyBAbWl4aW4gdC10eXBlLXNwYWNpbmdcbi8vLyBTZXRzIHRoZSB2YWx1ZXMgb2YgYSBnaXZlbiBzZXQgb2YgcHJvcGVydGllcyBmb3IgYSBnaXZlbiAkc3BhY2luZy1rZXkgZm9yIG9uZSBzcGVjaWZpYyAkYnJlYWtwb2ludC1rZXkgd2l0aCBhbiBvcHRpb25hbCAkdHlwZS1zaXplIHNwZWNpZmljYXRpb24gdG9cbi8vLyBzdWJ0cmFjdCB0aGUgYXBwcm94aW1hdGUgc3BhY2UgYmV0d2VlbiB0aGUgdGV4dCAvIGxpbmUgaGVpZ2h0LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNwYWNpbmcta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIHNwYWNpbmcgbGFiZWwgaW4gdGhlICRzLXR5cGUtc3BhY2luZyBtYXAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJvcHMgLSBBIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgaW4gd2hpY2ggdG8gYXBwbHkgdGhlIHJlc3VsdGluZyB1bml0cy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGJyZWFrcG9pbnQgbGFiZWwgaW4gdGhlICRzLWJyZWFrcG9pbnRzIG1hcCBpbiB3aGljaCB0byByZWZlcmVuY2UgdGhlIGNvcnJlY3QgcmVzdWx0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZS1zaXplIC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIHR5cGUgc2l6ZSBsYWJlbCBpbiB0aGUgJHMtdHlwZS1zaXppbmcgbWFwLiAoT3B0aW9uYWwpXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHQtdHlwZS1zcGFjaW5nKHNtYWxsLCAobWFyZ2luLXRvcCwgbWFyZ2luLWJvdHRvbSksIG1lZGl1bSk7XG5AbWl4aW4gdC10eXBlLXNwYWNpbmcoJHNwYWNpbmcta2V5LCAkcHJvcHMsICRicmVha3BvaW50LWtleTogJHMtbWluLWJyZWFrcG9pbnQta2V5LCAkdHlwZS1zaXplOiBudWxsKSB7XG5cblx0QGlmICh0eXBlLW9mKCRzLWJyZWFrcG9pbnRzKSAhPSBtYXAgb3IgdHlwZS1vZigkcy10eXBlLXNwYWNpbmcpICE9IG1hcCkge1xuXHRcdEBlcnJvciBcIiRzLWJyZWFrcG9pbnRzIGFuZCAkcy10eXBlLXNwYWNpbmcgbXVzdCBiZSB2YWxpZCBtYXBzLlwiO1xuXHR9XG5cblx0QGlmIChtYXAtaGFzLWtleSgkcy1icmVha3BvaW50cywgJGJyZWFrcG9pbnQta2V5KSkge1xuXHRcdCRzcGFjaW5nLW1hcDogbWFwLWdldCgkcy10eXBlLXNwYWNpbmcsICRzcGFjaW5nLWtleSk7XG5cdFx0JHNwYWNpbmc6IG1hcC1nZXQoJHNwYWNpbmctbWFwLCAkYnJlYWtwb2ludC1rZXkpO1xuXHRcdCRhZGp1c3Q6IDA7XG5cblx0XHRAaWYgKCRzcGFjaW5nICE9IG51bGwpIHtcblxuXHRcdFx0QGlmICgkdHlwZS1zaXplICE9IG51bGwpIHtcblx0XHRcdFx0JGFkanVzdDogdC1nZXQtdHlwZS1zcGFjaW5nLXR5cGUtYWRqdXN0KCR0eXBlLXNpemUsICRicmVha3BvaW50LWtleSk7XG5cdFx0XHR9XG5cblx0XHRcdEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG5cdFx0XHRcdCN7ICRwcm9wIH06IHQtcmVtKCRzcGFjaW5nIC0gJGFkanVzdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vLyBAbWl4aW4gdC1yZXNwb25zaXZlLXR5cGUtc3BhY2luZ1xuLy8vIFNldHMgdGhlIHZhbHVlcyBvZiBhIGdpdmVuIHNldCBvZiBwcm9wZXJ0aWVzIGZvciBhIGdpdmVuICRzcGFjaW5nLWtleSBmb3IgYWxsIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNwYWNpbmcta2V5IC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIHNwYWNpbmcgbGFiZWwgaW4gdGhlICRzLXR5cGUtc3BhY2luZyBtYXAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJvcHMgLSBBIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgaW4gd2hpY2ggdG8gYXBwbHkgdGhlIHJlc3VsdGluZyB1bml0cy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHR5cGUtc2l6ZSAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSB0eXBlIHNpemUgbGFiZWwgaW4gdGhlICRzLXR5cGUtc2l6aW5nIG1hcC4gKE9wdGlvbmFsKVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vL1x0QGluY2x1ZGUgdC1yZXNwb25zaXZlLXR5cGUtc3BhY2luZyhzbWFsbCwgKG1hcmdpbi1ib3R0b20sIHBhZGRpbmctYm90dG9tKSk7XG5AbWl4aW4gdC1yZXNwb25zaXZlLXR5cGUtc3BhY2luZygkc3BhY2luZy1rZXksICRwcm9wcywgJHR5cGUtc2l6ZTogbnVsbCkge1xuXG5cdEBpZiAodHlwZS1vZigkcy10eXBlLXNwYWNpbmcpICE9IG1hcCkge1xuXHRcdEBlcnJvciBcIiRzLXR5cGUtc3BhY2luZyBtdXN0IGJlIGEgdmFsaWQgbWFwLlwiO1xuXHR9XG5cblx0QGluY2x1ZGUgdC10eXBlLXNwYWNpbmcoJHNwYWNpbmcta2V5LCAkcHJvcHMsICRzLW1pbi1icmVha3BvaW50LWtleSwgJHR5cGUtc2l6ZSk7XG5cblx0QGVhY2ggJGJyZWFrcG9pbnQta2V5IGluIG1hcC1rZXlzKG1hcC1nZXQoJHMtdHlwZS1zcGFjaW5nLCAkc3BhY2luZy1rZXkpKSB7XG5cblx0XHRAaWYgKCRicmVha3BvaW50LWtleSAhPSAkcy1taW4tYnJlYWtwb2ludC1rZXkpIHtcblxuXHRcdFx0QGluY2x1ZGUgdC1yZXNwb25kLXRvLW1pbigkYnJlYWtwb2ludC1rZXkpIHtcblx0XHRcdFx0QGluY2x1ZGUgdC10eXBlLXNwYWNpbmcoJHNwYWNpbmcta2V5LCAkcHJvcHMsICRicmVha3BvaW50LWtleSwgJHR5cGUtc2l6ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiB0LWxpbmsge1xuXHRAaW5jbHVkZSB0LXdyYXAtdGV4dDtcblx0YXBwZWFyYW5jZTogbm9uZTsgLy8gTk9TT05BUlxuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRib3JkZXI6IDA7XG5cdGNvbG9yOiB0LWNvbG9yLWxpbmsoZGVmYXVsdCk7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR0cmFuc2l0aW9uOiBtYXAtZ2V0KCRzLXRyYW5zaXRpb25zLCBhY3RpdmUpIGNvbG9yO1xuXG5cdC8vIFRPRE86IEFjdGl2ZSBzdGF0ZXMuLi5cblx0QGluY2x1ZGUgdC1hY3RpdmUge1xuXHRcdGNvbG9yOiB0LWNvbG9yKGJsdWUsIHF1aW5hcnkpO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdC8vIFRPRE86IFZpc2l0ZWQgc3RhdGUuLi5cblx0Ly8gJjp2aXNpdGVkIHt9XG59XG5cbkBtaXhpbiB0LXRydW5jYXRlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyBTZXR0aW5ncyAtIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vICRzLWZvbnRzXG4vLy8gRXN0YWJsaXNoZXMgYSBtYXAgY29udGFpbmluZyBhIHNlcmllcyBvZiBmb250IGZpbGVzIGxvY2F0ZWQgaW4gdGhlIHNwZWNpZmllZCBmb250cyBkaXJlY3RvcnkuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICRzLWZvbnRzOiAoXG4vLy8gXHRcIkZvbnROYW1lXCI6IChcbi8vL1x0XHRcdGRpc3BsYXk6IHN3YXAsXG4vLy8gXHRcdGZpbGU6IFwiZm9udC1maWxlLW5hbWVcIixcbi8vL1x0XHRcdG5hbWU6IFwiRm9udCBOYW1lXCIsXG4vLy9cdFx0XHRzdHlsZTogbm9ybWFsLFxuLy8vIFx0XHR3ZWlnaHQ6IDQwMFxuLy8vIFx0KVxuLy8vICk7XG4kcy1mb250czogKFxuXHRcIkdydW5kZm9zVGhlU2FuczVSXCI6IChcblx0XHRkaXNwbGF5OiBzd2FwLFxuXHRcdGZpbGU6IFwiR3J1bmRmb3NUaGVTYW5zVjJfNV9cIixcblx0XHRuYW1lOiBcIkdydW5kZm9zXCIsXG5cdFx0c3R5bGU6IG5vcm1hbCxcblx0XHR3ZWlnaHQ6IDQwMFxuXHQpLFxuXHRcIkdydW5kZm9zVGhlU2FuczVJXCI6IChcblx0XHRkaXNwbGF5OiBzd2FwLFxuXHRcdGZpbGU6IFwiR3J1bmRmb3NUaGVTYW5zVjJfNWlfXCIsXG5cdFx0bmFtZTogXCJHcnVuZGZvc1wiLFxuXHRcdHN0eWxlOiBpdGFsaWMsXG5cdFx0d2VpZ2h0OiA0MDBcblx0KSxcblx0XCJHcnVuZGZvc1RoZVNhbnM3QlwiOiAoXG5cdFx0ZGlzcGxheTogc3dhcCxcblx0XHRmaWxlOiBcIkdydW5kZm9zVGhlU2Fuc1YyXzdfXCIsXG5cdFx0bmFtZTogXCJHcnVuZGZvc1wiLFxuXHRcdHN0eWxlOiBub3JtYWwsXG5cdFx0d2VpZ2h0OiA3MDBcblx0KSxcblx0XCJHcnVuZGZvc1RoZVNhbnM3QklcIjogKFxuXHRcdGRpc3BsYXk6IHN3YXAsXG5cdFx0ZmlsZTogXCJHcnVuZGZvc1RoZVNhbnNWMl83aV9cIixcblx0XHRuYW1lOiBcIkdydW5kZm9zXCIsXG5cdFx0c3R5bGU6IGl0YWxpYyxcblx0XHR3ZWlnaHQ6IDcwMFxuXHQpXG4pO1xuXG4kcy1mb250LWZhbWlsaWVzOiAoXG5cdFwiZ3J1bmRmb3NcIjogJ1wiR3J1bmRmb3NcIiwgTHVjaWRhIEdyYW5kZSwgVGFob21hLCBHZW5ldmEsIFZlcmRhbmEsIHNhbnMtc2VyaWYnLFxuXHRcIm5vdG9cIjogJ1wiTm90byBTYW5zXCIsIEx1Y2lkYSBHcmFuZGUsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmJyxcblx0XCJzeXN0ZW1cIjogXCJMdWNpZGEgR3JhbmRlLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZlwiXG4pO1xuXG4vLy8gJHMtdHlwZS1zaXppbmdcbi8vLyBFc3RhYmxpc2hlcyBhIG1hcCBjb250YWluaW5nIGFic3RyYWN0IHR5cGUgc2l6aW5nIGRlZmluaXRpb25zIHdpdGggbWF0Y2hpbmcgYnJlYWtwb2ludCBzcGVjaWZpY2F0aW9ucy5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gJHMtdHlwZS1zaXppbmc6IChcbi8vLyBcdHNtYWxsOiAoXG4vLy8gXHRcdHNtYWxsOiAoXG4vLy8gXHRcdFx0Zm9udC1zaXplOiAxMHB4LFxuLy8vIFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjVcbi8vLyBcdFx0KSxcbi8vLyBcdFx0bWVkaXVtOiAoXG4vLy8gXHRcdFx0Zm9udC1zaXplOiAyMHB4LFxuLy8vIFx0XHRcdGxpbmUtaGVpZ2h0OiAyXG4vLy8gXHRcdClcbi8vLyBcdClcbi8vLyApO1xuJHMtdHlwZS1zaXppbmc6IChcblx0eHhzbWFsbDogKFxuXHRcdHNtYWxsOiAoXG5cdFx0XHRmb250LXNpemU6IDhweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMC84XG5cdFx0KSxcblx0XHRsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiA4cHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMTAvOFxuXHRcdCksXG5cdFx0eGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDhweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMC84XG5cdFx0KVxuXHQpLFxuXHR4c21hbGw6IChcblx0XHRzbWFsbDogKFxuXHRcdFx0Zm9udC1zaXplOiAxMnB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDE4LzEyXG5cdFx0KSxcblx0XHRsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiAxMnB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDE4LzEyXG5cdFx0KSxcblx0XHR4bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMTJweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOC8xMlxuXHRcdClcblx0KSxcblx0c21hbGw6IChcblx0XHRzbWFsbDogKFxuXHRcdFx0Zm9udC1zaXplOiAxNHB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDIwLzE0XG5cdFx0KSxcblx0XHRsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiAxNHB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDIxLzE0XG5cdFx0KSxcblx0XHR4bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMTRweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMS8xNFxuXHRcdClcblx0KSxcblx0bWVkaXVtOiAoXG5cdFx0c21hbGw6IChcblx0XHRcdGZvbnQtc2l6ZTogMTZweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMi8xNlxuXHRcdCksXG5cdFx0bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMTZweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMi8xNlxuXHRcdCksXG5cdFx0eGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDE2cHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMjQvMTZcblx0XHQpXG5cdCksXG5cdGxhcmdlOiAoXG5cdFx0c21hbGw6IChcblx0XHRcdGZvbnQtc2l6ZTogMThweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNC8xOFxuXHRcdCksXG5cdFx0bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMThweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNy8xOFxuXHRcdCksXG5cdFx0eGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDE4cHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMjcvMThcblx0XHQpXG5cdCksXG5cdHhsYXJnZTogKFxuXHRcdHNtYWxsOiAoXG5cdFx0XHRmb250LXNpemU6IDE4cHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMjQvMThcblx0XHQpLFxuXHRcdGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDIwcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMjcvMjBcblx0XHQpLFxuXHRcdHhsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiAyMHB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDI4LzIwXG5cdFx0KVxuXHQpLFxuXHR4eGxhcmdlOiAoXG5cdFx0c21hbGw6IChcblx0XHRcdGZvbnQtc2l6ZTogMjFweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNi8yMVxuXHRcdCksXG5cdFx0bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMjJweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyOC8yMlxuXHRcdCksXG5cdFx0eGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDIzcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMzAvMjNcblx0XHQpXG5cdCksXG5cdHh4eGxhcmdlOiAoXG5cdFx0c21hbGw6IChcblx0XHRcdGZvbnQtc2l6ZTogMjRweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAyOS8yNFxuXHRcdCksXG5cdFx0bGFyZ2U6IChcblx0XHRcdGZvbnQtc2l6ZTogMjdweCxcblx0XHRcdGxpbmUtaGVpZ2h0OiAzNC8yN1xuXHRcdCksXG5cdFx0eGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDMwcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMzkvMzBcblx0XHQpXG5cdCksXG5cdHh4eHhsYXJnZTogKFxuXHRcdHNtYWxsOiAoXG5cdFx0XHRmb250LXNpemU6IDMwcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogMzYvMzBcblx0XHQpLFxuXHRcdGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDM1cHgsXG5cdFx0XHRsaW5lLWhlaWdodDogNDIvMzVcblx0XHQpLFxuXHRcdHhsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiA0MHB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDQ4LzQwXG5cdFx0KSxcblx0KSxcblx0eHh4eHhsYXJnZTogKFxuXHRcdHNtYWxsOiAoXG5cdFx0XHRmb250LXNpemU6IDQwcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogNDYvNDBcblx0XHQpLFxuXHRcdGxhcmdlOiAoXG5cdFx0XHRmb250LXNpemU6IDUwcHgsXG5cdFx0XHRsaW5lLWhlaWdodDogNTgvNTBcblx0XHQpLFxuXHRcdHhsYXJnZTogKFxuXHRcdFx0Zm9udC1zaXplOiA2MHB4LFxuXHRcdFx0bGluZS1oZWlnaHQ6IDcwLzYwXG5cdFx0KVxuXHQpXG4pO1xuXG4vLy8gJHMtdHlwZS1zcGFjaW5nXG4vLy8gRXN0YWJsaXNoZXMgYSBtYXAgY29udGFpbmluZyB2ZXJ0aWNhbCB0eXBlIHNwYWNpbmcgdmFsdWVzIGF0IGVhY2ggZGVmaW5lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAkcy10eXBlLXNwYWNpbmc6IChcbi8vLyBcdHNtYWxsOiAoXG4vLy8gXHRcdHNtYWxsOiAxMHB4LFxuLy8vIFx0XHRtZWRpdW06IDIwcHhcbi8vLyBcdCksXG4vLy8gXHRtZWRpdW06IChcbi8vLyBcdFx0c21hbGw6IDIwcHgsXG4vLy8gXHRcdG1lZGl1bTogNDBweFxuLy8vIFx0KSxcbi8vLyBcdGxhcmdlOiAoXG4vLy8gXHRcdHNtYWxsOiAzMHB4LFxuLy8vIFx0XHRtZWRpdW06IDYwcHhcbi8vLyBcdClcbi8vLyApO1xuJHMtdHlwZS1zcGFjaW5nOiAoXG5cdHhzbWFsbDogKFxuXHRcdHNtYWxsOiA4cHgsXG5cdFx0bGFyZ2U6IDhweFxuXHQpLFxuXHRzbWFsbDogKFxuXHRcdHNtYWxsOiAxNnB4LFxuXHRcdGxhcmdlOiAxNnB4XG5cdCksXG5cdG1lZGl1bTogKFxuXHRcdHNtYWxsOiAyMHB4LFxuXHRcdGxhcmdlOiAyMXB4XG5cdCksXG5cdGxhcmdlOiAoXG5cdFx0c21hbGw6IDIycHgsXG5cdFx0bGFyZ2U6IDI0cHhcblx0KSxcblx0eGxhcmdlOiAoXG5cdFx0c21hbGw6IDI0cHgsXG5cdFx0bGFyZ2U6IDI3cHhcblx0KSxcblx0eHhsYXJnZTogKFxuXHRcdHNtYWxsOiAzMnB4LFxuXHRcdGxhcmdlOiAzMnB4XG5cdClcbik7XG5cbiRzLWJhc2UtZm9udC1zaXplOiAxNnB4O1xuJHMtYmFzZS1saW5lLWhlaWdodDogMTtcbiIsIi8vIFNldHRpbmdzIC0gVHJhbnNpdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vICRzLXN0cmFuc2l0aW9uc1xuLy8vIEVzdGFibGlzaGVzIGEgbWFwIGNvbnRhaW5pbmcgZ2xvYmFsIHRyYW5zaXRpb24gc2V0dGluZ3MuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICRzLWJyZWFrcG9pbnRzOiAoXG4vLy9cdFx0c2xpZGU6IDAuNXMgZWFzZS1pblxuLy8vICk7XG4kcy10cmFuc2l0aW9uczogKFxuXHRhY3RpdmU6IDAuM3MgZWFzZSxcblx0ZmFkZTogMC4zcyBlYXNlLFxuXHRob3ZlcjogMC4ycyBlYXNlLW91dCxcblx0b3ZlcmxheTogMC4ycyBlYXNlLW91dCxcblx0c2xpZGU6IDAuM3MgZWFzZVxuKTtcbiIsIi8vIFRvb2xzIC0gTWVkaWFcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBAZnVuY3Rpb24gdC1nZXQtYnJlYWtwb2ludC13aWR0aFxuLy8vIEdldHMgYSBicmVha3BvaW50IHdpZHRoIG1hdGNoaW5nIGEgYnJlYWtwb2ludCBrZXkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkd2lkdGhcdC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGJyZWFrcG9pbnQga2V5IGluIHRoZSAkcy1icmVha3BvaW50cyBtYXAgb3IgYSBOdW1iZXIgKHdpdGggb3Igd2l0aG91dCBhIHVuaXQpLlxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIE51bWJlciByZXByZXNlbnRpbmcgdGhlIG1hcCB2YWx1ZSBvciB0aGUgb3JpZ2luYWwgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHQtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJ3NtYWxsJyk7XG5AZnVuY3Rpb24gdC1nZXQtYnJlYWtwb2ludC13aWR0aCgkd2lkdGgpIHtcblxuXHRAaWYgdHlwZS1vZigkd2lkdGgpICE9IFwibnVtYmVyXCIge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkcy1icmVha3BvaW50cywgJHdpZHRoKTtcblx0fVxuXG5cdEByZXR1cm4gJHdpZHRoO1xufVxuXG5cbi8vIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQG1peGluIHQtcmVzcG9uZC10by1taW5cbi8vLyBNZWRpYSBxdWVyeSBpbmplY3Rpb24gcmVzcG9uZGluZyB0byBhIG1pbmltdW0gd2lkdGggd2l0aCBAY29udGVudC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR3aWR0aCAtIEEgU3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBicmVha3BvaW50IGtleSBpbiB0aGUgJHMtYnJlYWtwb2ludHMgbWFwIG9yIGEgTnVtYmVyICh3aXRoIG9yIHdpdGhvdXQgYSB1bml0KS5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1taW4oc21hbGwpIHtcbi8vLyBcdC8vIEBjb250ZW50Li4uXG4vLy8gfVxuQG1peGluIHQtcmVzcG9uZC10by1taW4oJHdpZHRoKSB7XG5cdCR3aWR0aDogdC1nZXQtYnJlYWtwb2ludC13aWR0aCgkd2lkdGgpO1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8vIEBtaXhpbiB0LXJlc3BvbmQtdG8tbWF4XG4vLy8gTWVkaWEgcXVlcnkgaW5qZWN0aW9uIHJlc3BvbmRpbmcgdG8gYSBtYXhpbXVtIHdpZHRoIHdpdGggQGNvbnRlbnQuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkd2lkdGggLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgYnJlYWtwb2ludCBrZXkgaW4gdGhlICRzLWJyZWFrcG9pbnRzIG1hcCBvciBhIE51bWJlciAod2l0aCBvciB3aXRob3V0IGEgdW5pdCkuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWF4KHNtYWxsKSB7XG4vLy8gXHQvLyBAY29udGVudC4uLlxuLy8vIH1cbkBtaXhpbiB0LXJlc3BvbmQtdG8tbWF4KCR3aWR0aCkge1xuXHQkd2lkdGg6IHQtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHdpZHRoKTtcblxuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZSBtZWRpYS1mZWF0dXJlLW5vLW1pc3NpbmctcHVuY3R1YXRpb24gKi9cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGggLSAxcHgpIHtcblx0XHRAY29udGVudDtcblx0fVxuXG5cdC8qIHN0eWxlbGludC1lbmFibGUgbWVkaWEtZmVhdHVyZS1uby1taXNzaW5nLXB1bmN0dWF0aW9uICovXG59XG5cbi8vLyBAbWl4aW4gdC1yZXNwb25kLXRvLW1pbi1tYXhcbi8vLyBNZWRpYSBxdWVyeSBpbmplY3Rpb24gcmVzcG9uZGluZyB0byBhIHdpZHRoIHJhbmdlIHNwZWNpZmllZCBieSBhIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGggd2l0aCBAY29udGVudC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRtaW4td2lkdGggLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgYnJlYWtwb2ludCBrZXkgaW4gdGhlICRzLWJyZWFrcG9pbnRzIG1hcCBvciBhIE51bWJlciAod2l0aCBvciB3aXRob3V0IGEgdW5pdCkuXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRtYXgtd2lkdGggLSBBIFN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgYnJlYWtwb2ludCBrZXkgaW4gdGhlICRzLWJyZWFrcG9pbnRzIG1hcCBvciBhIE51bWJlciAod2l0aCBvciB3aXRob3V0IGEgdW5pdCkuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tbWF4KHNtYWxsLCBsYXJnZSkge1xuLy8vIFx0Ly8gQGNvbnRlbnQuLi5cbi8vLyB9XG5AbWl4aW4gdC1yZXNwb25kLXRvLW1pbi1tYXgoJG1pbi13aWR0aCwgJG1heC13aWR0aCkge1xuXHQkbWluLXdpZHRoOiB0LWdldC1icmVha3BvaW50LXdpZHRoKCRtaW4td2lkdGgpO1xuXHQkbWF4LXdpZHRoOiB0LWdldC1icmVha3BvaW50LXdpZHRoKCRtYXgtd2lkdGgpO1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1pbi13aWR0aCkgYW5kIChtYXgtd2lkdGg6ICRtYXgtd2lkdGggLSAxcHgpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG4vLy8gQG1peGluIHQtcmVzcG9uZC10by1yZXNcbi8vLyBNZWRpYSBxdWVyeSBpbmplY3Rpb24gcmVzcG9uZGluZyB0byBhIHNwZWNpZmllZCBkaXNwbGF5IHJlc29sdXRpb24gd2l0aCBAY29udGVudC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkcCAtIEEgTnVtYmVyIHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhcmdldCBkZXZpY2UgcGl4ZWwgcmF0aW8gbXVsdGlwbGllci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJlcyAtIEEgTnVtYmVyIHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhcmdldCByZXNvbHV0aW9uIGRlbnNpdHkuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXJlc3BvbmQtdG8tcmVzKDIsIDE5MmRwcHgpIHtcbi8vLyBcdC8vIEBjb250ZW50Li4uXG4vLy8gfVxuQG1peGluIHQtcmVzcG9uZC10by1yZXMoJHJlczogMmRwcHgpIHtcblxuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZSBtZWRpYS1mZWF0dXJlLW5hbWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJlcykge1xuXHRcdEBjb250ZW50O1xuXHR9XG5cblx0Lyogc3R5bGVsaW50LWVuYWJsZSBtZWRpYS1mZWF0dXJlLW5hbWUtbm8tdmVuZG9yLXByZWZpeCAqL1xufVxuXG4vLy8gQG1peGluIHQtcmVzcG9uZC10by1vcmllbnRhdGlvblxuLy8vIE1lZGlhIHF1ZXJ5IGluamVjdGlvbiByZXNwb25kaW5nIHRvIGEgc3BlY2lmaWVkIGRldmljZSBvcmllbnRhdGlvbiB3aXRoIEBjb250ZW50LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9yaWVudGF0aW9uIC0gQSBTdHJpbmcgd2hpY2ggcmVwcmVzZW50cyB0aGUgdGFyZ2V0IGRldmljZSBvcmllbnRhdGlvbi5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy9cdEBpbmNsdWRlIHQtcmVzcG9uZC10by1vcmllbnRhdGlvbihwb3J0cmFpdCkge1xuLy8vIFx0Ly8gQGNvbnRlbnQuLi5cbi8vLyB9XG5AbWl4aW4gdC1yZXNwb25kLXRvLW9yaWVudGF0aW9uKCRvcmllbnRhdGlvbikge1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG4vLy8gQG1peGluIHQtcHJpbnRcbi8vLyBNZWRpYSBxdWVyeSBpbmplY3Rpb24gZm9yIHByaW50IHNwZWNpZmljIHN0eWxlcy5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vXHRAaW5jbHVkZSB0LXByaW50IHtcbi8vLyBcdC8vIEBjb250ZW50Li4uXG4vLy8gfVxuQG1peGluIHQtcHJpbnQge1xuXG5cdEBtZWRpYSBwcmludCB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qIENvbXBvbmVudCAtIEV4YW1wbGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNtcC1leGFtcGxlIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKiBNb2R1bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJtb2QtZXhhbXBsZVwiO1xuIiwiLyogTW9kdWxlIC0gRXhhbXBsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubW9kLWV4YW1wbGUge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=*/