/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/shepherd.js/dist/css/shepherd.css ***!
  \***************************************************************************************************************************************/
.shepherd-button{background:#3288e6;border:0;border-radius:3px;color:hsla(0,0%,100%,.75);cursor:pointer;margin-right:.5rem;padding:.5rem 1.5rem;transition:all .5s ease}.shepherd-button:not(:disabled):hover{background:#196fcc;color:hsla(0,0%,100%,.75)}.shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-button.shepherd-button-secondary:not(:disabled):hover{background:#d6d9db;color:rgba(0,0,0,.75)}.shepherd-button:disabled{cursor:not-allowed}
.shepherd-footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:flex;justify-content:flex-end;padding:0 .75rem .75rem}.shepherd-footer .shepherd-button:last-child{margin-right:0}
.shepherd-cancel-icon{background:transparent;border:none;color:hsla(0,0%,50%,.75);cursor:pointer;font-size:2em;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:hsla(0,0%,50%,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}
.shepherd-title{color:rgba(0,0,0,.75);display:flex;flex:1 0 auto;font-size:1rem;font-weight:400;margin:0;padding:0}
.shepherd-header{align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:flex;justify-content:flex-end;line-height:2em;padding:.75rem .75rem 0}.shepherd-has-title .shepherd-content .shepherd-header{background:#e6e6e6;padding:1em}
.shepherd-text{color:rgba(0,0,0,.75);font-size:1rem;line-height:1.3em;padding:.75em}.shepherd-text p{margin-top:0}.shepherd-text p:last-child{margin-bottom:0}
.shepherd-content{border-radius:5px;outline:none;padding:0}
.shepherd-element{background:#fff;border-radius:5px;box-shadow:0 1px 4px rgba(0,0,0,.2);max-width:400px;opacity:0;outline:none;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{height:16px;position:absolute;width:16px;z-index:-1}.shepherd-arrow:before{background:#fff;content:"";transform:rotate(45deg)}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:#e6e6e6}.shepherd-target-click-disabled.shepherd-enabled.shepherd-target,.shepherd-target-click-disabled.shepherd-enabled.shepherd-target *{pointer-events:none}
.shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0ms .3s,opacity .3s 0ms;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transform:translateZ(0);transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./vendor/sylius/mollie-plugin/assets/admin/css/main.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
.onboarding-wizard {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  position: fixed;
  right: 50px;
  bottom: 10px;
  z-index: 9999;
  counter-reset: nav-element 0;
}

.onboarding-wizard__logo {
  width: 60px;
  height: 60px;
  margin-left: 15px;
}

.onboarding-wizard__steps {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 20px;
  border-radius: 30px;
  background-color: #FFF;
  list-style-type: none;
}

.onboarding-wizard__step {
  display: flex;
  align-items: center;
  position: relative;
  counter-increment: nav-element 1;
}
.onboarding-wizard__step:before {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 1px;
  bottom: 0;
  left: -1px;
  width: 18px;
  height: 18px;
  margin: auto;
  border-radius: 50%;
  background-color: #000;
  color: #FFF;
  font-size: 12px;
  font-weight: 600;
}

.onboarding-wizard__step--current:before {
  background-color: #32AD30;
}
.onboarding-wizard__step--current.onboarding-wizard__step .onboarding-wizard__name,
.onboarding-wizard__step--current ~ .onboarding-wizard__step .onboarding-wizard__name {
  color: #000;
}
.onboarding-wizard__step--current.onboarding-wizard__step:before,
.onboarding-wizard__step--current ~ .onboarding-wizard__step:before {
  content: counter(nav-element);
}

.onboarding-wizard__name {
  color: #979797;
}

.onboarding-wizard__check {
  color: #979797;
  font-size: 14px;
}
.onboarding-wizard__check.icon {
  margin-right: 5px;
}

.onboarding-wizard__arrow.icon {
  margin-left: 2px;
}

.pushable {
  height: fit-content;
}

.draggable {
  position: relative;
}

.draggable-button-enable {
  position: absolute;
  top: 20px;
  right: 20px;
}

.d-none {
  display: none !important;
}

.mr-auto {
  margin-right: auto !important;
}

.ml-auto {
  margin-left: auto;
}

.shepherd-header,
.shepherd-footer {
  padding: 0;
}

.shepherd-header {
  margin-bottom: 30px;
}

.shepherd-text {
  padding: 40px;
}

.shepherd-element:not(.shepherd-has-title) .shepherd-header {
  margin-bottom: 0;
}

.shepherd-element--first .shepherd-header.shepherd-header {
  flex-direction: column;
}
.shepherd-element--first .shepherd-header.shepherd-header .shepherd-title {
  display: block;
  text-align: center;
}
.shepherd-element--first .shepherd-header:before {
  content: "";
  width: 120px;
  height: 26px;
  margin-bottom: 20px;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("https://sylius.com/wp-content/uploads/2018/06/mollie.png");
}

#step-finish-wizard-error-label i {
  display: none;
}

.shepherd-element--align-right {
  position: fixed !important;
  top: auto !important;
  left: auto !important;
  bottom: 100px !important;
  right: 50px !important;
  transform: none !important;
}

.shepherd-element--collapsed {
  width: 100px;
  height: 50px;
}
.shepherd-element--collapsed .shepherd-header,
.shepherd-element--collapsed .shepherd-button,
.shepherd-element--collapsed .shepherd-text {
  opacity: 0;
}
.shepherd-element--collapsed .shepherd-button--collapse {
  top: 10px;
  left: 10px;
  background-color: #0040FF;
  opacity: 1;
}
.shepherd-element--collapsed .shepherd-button--collapse .icon {
  color: #FFF;
  transform: rotate(180deg);
}

.shepherd-centered:not(.shepherd-element--align-right) .shepherd-footer {
  flex-direction: column-reverse;
  padding: 0 40px 40px;
}
.shepherd-centered:not(.shepherd-element--align-right) .shepherd-button:not(.shepherd-button__open):not(.shepherd-button--close) {
  border-radius: 25px !important;
}

.shepherd-button {
  position: relative;
  margin-right: 0;
  padding: 15px 25px;
  border-radius: 0 0 4px 0;
  background-color: #0040FF;
  color: #FFF;
  font-weight: 600;
}
.shepherd-button .icon.right {
  margin-left: 15px;
}

.shepherd-button__open {
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding-left: 35px;
  color: #000;
  font-weight: 600;
}

.shepherd-button-secondary {
  color: #979797;
  background-color: transparent;
}

.shepherd-button--close,
.shepherd-button--collapse {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -40px;
  width: 28px;
  height: 28px;
  padding: 1px !important;
  border-radius: 50%;
  background: #FFF;
  color: #000;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.3));
  transition: none;
}
.shepherd-button--close .icon,
.shepherd-button--collapse .icon {
  margin: 0;
}
.shepherd-button--close:hover,
.shepherd-button--collapse:hover {
  background-color: #0040FF;
  color: #FFF;
}

.shepherd-button--close {
  right: 0;
}

.shepherd-button--collapse {
  right: 40px;
}

.shepherd-button--arrow-down:after {
  content: "";
  position: absolute;
  bottom: -10px;
  right: 15px;
  width: 0;
  height: 0;
  border-color: #0040FF transparent transparent transparent;
  border-style: solid;
  border-width: 10px 10px 0 10px;
  transition: border-color 0.5s ease;
}
.shepherd-button--arrow-down:hover:after {
  border-top-color: #196fcc;
}

.shepherd-has-title .shepherd-title {
  width: 100%;
  font-size: 30px;
  font-weight: 600;
}
.shepherd-has-title .shepherd-title .icon {
  color: #32AD30;
}
.shepherd-has-title .shepherd-text {
  padding: 0 40px 40px;
}
.shepherd-has-title .shepherd-content .shepherd-header {
  position: relative;
  width: 100%;
  padding: 40px 40px 0;
  background-color: #FFF;
  color: #000;
}

#mollie-payment-form .ui.dropdown.selection .menu {
  position: static;
  margin: 10px 0 -12px -15px;
  width: calc(100% + 45px);
  border-radius: 0;
}

.shepherd-content a {
  color: #0040FF;
}

.js-onboardingWizard-singleClick,
.js-onboardingWizard-mollieComponents {
  padding: 4px 0;
}

.step-next-disabled .shepherd-button--arrow-down,
.step-next-disabled .shepherd-button-next {
  pointer-events: none;
  background-color: #979797;
  user-select: none;
}
.step-next-disabled .shepherd-button--arrow-down:hover,
.step-next-disabled .shepherd-button-next:hover {
  background-color: #7e7e7e;
}

#mollie-subscription-transitions form {
  display: inline;
}

#recurring-variant-settings .field {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
#recurring-variant-settings .field .help-text {
  flex-direction: column;
}
#recurring-variant-settings .field .checkbox > * {
  display: flex;
}
#recurring-variant-settings .field .checkbox > label {
  order: 1;
}

.accordion-button.mollie-accordion::after {
  flex-shrink: 0;
  width: var(--tblr-accordion-btn-icon-width, 1.25rem);
  height: var(--tblr-accordion-btn-icon-width, 1.25rem);
  margin-left: auto;
  content: "";
  background-image: var(--tblr-accordion-btn-icon, url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"));
  background-repeat: no-repeat;
  background-size: var(--tblr-accordion-btn-icon-width, 1.25rem);
  transition: var(--tblr-accordion-btn-icon-transition, transform 0.2s ease-in-out);
}
.accordion-button.mollie-accordion:not(.collapsed) {
  opacity: 1;
}
.accordion-button.mollie-accordion:not(.collapsed)::after {
  background-image: var(--tblr-accordion-btn-active-icon, url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"));
  transform: var(--tblr-accordion-btn-icon-transform, rotate(-180deg));
}
/*!************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/trix/dist/trix.css ***!
  \************************************************************************************************************************/
@charset "UTF-8";
/*
Trix 1.3.5
Copyright © 2024 37signals, LLC
http://trix-editor.org/*/
trix-editor {
  border: 1px solid #bbb;
  border-radius: 3px;
  margin: 0;
  padding: 0.4em 0.6em;
  min-height: 5em;
  outline: none; }
trix-toolbar * {
  box-sizing: border-box; }
trix-toolbar .trix-button-row {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  overflow-x: auto; }
trix-toolbar .trix-button-group {
  display: flex;
  margin-bottom: 10px;
  border: 1px solid #bbb;
  border-top-color: #ccc;
  border-bottom-color: #888;
  border-radius: 3px; }
  trix-toolbar .trix-button-group:not(:first-child) {
    margin-left: 1.5vw; }
    @media (max-device-width: 768px) {
      trix-toolbar .trix-button-group:not(:first-child) {
        margin-left: 0; } }
trix-toolbar .trix-button-group-spacer {
  flex-grow: 1; }
  @media (max-device-width: 768px) {
    trix-toolbar .trix-button-group-spacer {
      display: none; } }
trix-toolbar .trix-button {
  position: relative;
  float: left;
  color: rgba(0, 0, 0, 0.6);
  font-size: 0.75em;
  font-weight: 600;
  white-space: nowrap;
  padding: 0 0.5em;
  margin: 0;
  outline: none;
  border: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  background: transparent; }
  trix-toolbar .trix-button:not(:first-child) {
    border-left: 1px solid #ccc; }
  trix-toolbar .trix-button.trix-active {
    background: #cbeefa;
    color: black; }
  trix-toolbar .trix-button:not(:disabled) {
    cursor: pointer; }
  trix-toolbar .trix-button:disabled {
    color: rgba(0, 0, 0, 0.125); }
  @media (max-device-width: 768px) {
    trix-toolbar .trix-button {
      letter-spacing: -0.01em;
      padding: 0 0.3em; } }
trix-toolbar .trix-button--icon {
  font-size: inherit;
  width: 2.6em;
  height: 1.6em;
  max-width: calc(0.8em + 4vw);
  text-indent: -9999px; }
  @media (max-device-width: 768px) {
    trix-toolbar .trix-button--icon {
      height: 2em;
      max-width: calc(0.8em + 3.5vw); } }
  trix-toolbar .trix-button--icon::before {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.6;
    content: "";
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain; }
    @media (max-device-width: 768px) {
      trix-toolbar .trix-button--icon::before {
        right: 6%;
        left: 6%; } }
  trix-toolbar .trix-button--icon.trix-active::before {
    opacity: 1; }
  trix-toolbar .trix-button--icon:disabled::before {
    opacity: 0.125; }
trix-toolbar .trix-button--icon-attach::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M16.5%206v11.5a4%204%200%201%201-8%200V5a2.5%202.5%200%200%201%205%200v10.5a1%201%200%201%201-2%200V6H10v9.5a2.5%202.5%200%200%200%205%200V5a4%204%200%201%200-8%200v12.5a5.5%205.5%200%200%200%2011%200V6h-1.5z%22%2F%3E%3C%2Fsvg%3E");
  top: 8%;
  bottom: 4%; }
trix-toolbar .trix-button--icon-bold::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M15.6%2011.8c1-.7%201.6-1.8%201.6-2.8a4%204%200%200%200-4-4H7v14h7c2.1%200%203.7-1.7%203.7-3.8%200-1.5-.8-2.8-2.1-3.4zM10%207.5h3a1.5%201.5%200%201%201%200%203h-3v-3zm3.5%209H10v-3h3.5a1.5%201.5%200%201%201%200%203z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-italic::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M10%205v3h2.2l-3.4%208H6v3h8v-3h-2.2l3.4-8H18V5h-8z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-link::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M9.88%2013.7a4.3%204.3%200%200%201%200-6.07l3.37-3.37a4.26%204.26%200%200%201%206.07%200%204.3%204.3%200%200%201%200%206.06l-1.96%201.72a.91.91%200%201%201-1.3-1.3l1.97-1.71a2.46%202.46%200%200%200-3.48-3.48l-3.38%203.37a2.46%202.46%200%200%200%200%203.48.91.91%200%201%201-1.3%201.3z%22%2F%3E%3Cpath%20d%3D%22M4.25%2019.46a4.3%204.3%200%200%201%200-6.07l1.93-1.9a.91.91%200%201%201%201.3%201.3l-1.93%201.9a2.46%202.46%200%200%200%203.48%203.48l3.37-3.38c.96-.96.96-2.52%200-3.48a.91.91%200%201%201%201.3-1.3%204.3%204.3%200%200%201%200%206.07l-3.38%203.38a4.26%204.26%200%200%201-6.07%200z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-strike::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.73%2014l.28.14c.26.15.45.3.57.44.12.14.18.3.18.5%200%20.3-.15.56-.44.75-.3.2-.76.3-1.39.3A13.52%2013.52%200%200%201%207%2014.95v3.37a10.64%2010.64%200%200%200%204.84.88c1.26%200%202.35-.19%203.28-.56.93-.37%201.64-.9%202.14-1.57s.74-1.45.74-2.32c0-.26-.02-.51-.06-.75h-5.21zm-5.5-4c-.08-.34-.12-.7-.12-1.1%200-1.29.52-2.3%201.58-3.02%201.05-.72%202.5-1.08%204.34-1.08%201.62%200%203.28.34%204.97%201l-1.3%202.93c-1.47-.6-2.73-.9-3.8-.9-.55%200-.96.08-1.2.26-.26.17-.38.38-.38.64%200%20.27.16.52.48.74.17.12.53.3%201.05.53H7.23zM3%2013h18v-2H3v2z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-quote::before {
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M6%2017h3l2-4V7H5v6h3zm8%200h3l2-4V7h-6v6h3z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-heading-1::before {
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12%209v3H9v7H6v-7H3V9h9zM8%204h14v3h-6v12h-3V7H8V4z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-code::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.2%2012L15%2015.2l1.4%201.4L21%2012l-4.6-4.6L15%208.8l3.2%203.2zM5.8%2012L9%208.8%207.6%207.4%203%2012l4.6%204.6L9%2015.2%205.8%2012z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-bullet-list::before {
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%204a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm4%203h14v-2H8v2zm0-6h14v-2H8v2zm0-8v2h14V5H8z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-number-list::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M2%2017h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1%203h1.8L2%2013.1v.9h3v-1H3.2L5%2010.9V10H2v1zm5-6v2h14V5H7zm0%2014h14v-2H7v2zm0-6h14v-2H7v2z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-undo::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.5%208c-2.6%200-5%201-6.9%202.6L2%207v9h9l-3.6-3.6A8%208%200%200%201%2020%2016l2.4-.8a10.5%2010.5%200%200%200-10-7.2z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-redo::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.4%2010.6a10.5%2010.5%200%200%200-16.9%204.6L4%2016a8%208%200%200%201%2012.7-3.6L13%2016h9V7l-3.6%203.6z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-decrease-nesting-level::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-8.3-.3l2.8%202.9L6%2014.2%204%2012l2-2-1.4-1.5L1%2012l.7.7zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-button--icon-increase-nesting-level::before {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-6.9-1L1%2014.2l1.4%201.4L6%2012l-.7-.7-2.8-2.8L1%209.9%203.1%2012zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E"); }
trix-toolbar .trix-dialogs {
  position: relative; }
trix-toolbar .trix-dialog {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  font-size: 0.75em;
  padding: 15px 10px;
  background: #fff;
  box-shadow: 0 0.3em 1em #ccc;
  border-top: 2px solid #888;
  border-radius: 5px;
  z-index: 5; }
trix-toolbar .trix-input--dialog {
  font-size: inherit;
  font-weight: normal;
  padding: 0.5em 0.8em;
  margin: 0 10px 0 0;
  border-radius: 3px;
  border: 1px solid #bbb;
  background-color: #fff;
  box-shadow: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none; }
  trix-toolbar .trix-input--dialog.validate:invalid {
    box-shadow: #F00 0px 0px 1.5px 1px; }
trix-toolbar .trix-button--dialog {
  font-size: inherit;
  padding: 0.5em;
  border-bottom: none; }
trix-toolbar .trix-dialog--link {
  max-width: 600px; }
trix-toolbar .trix-dialog__link-fields {
  display: flex;
  align-items: baseline; }
  trix-toolbar .trix-dialog__link-fields .trix-input {
    flex: 1; }
  trix-toolbar .trix-dialog__link-fields .trix-button-group {
    flex: 0 0 content;
    margin: 0; }
trix-editor [data-trix-mutable]:not(.attachment__caption-editor) {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

trix-editor [data-trix-mutable]::-moz-selection,
trix-editor [data-trix-cursor-target]::-moz-selection, trix-editor [data-trix-mutable] ::-moz-selection {
  background: none; }
trix-editor [data-trix-mutable]::selection,
trix-editor [data-trix-cursor-target]::selection, trix-editor [data-trix-mutable] ::selection {
  background: none; }

trix-editor [data-trix-mutable].attachment__caption-editor:focus::-moz-selection {
  background: highlight; }
trix-editor [data-trix-mutable].attachment__caption-editor:focus::selection {
  background: highlight; }

trix-editor [data-trix-mutable].attachment.attachment--file {
  box-shadow: 0 0 0 2px highlight;
  border-color: transparent; }
trix-editor [data-trix-mutable].attachment img {
  box-shadow: 0 0 0 2px highlight; }
trix-editor .attachment {
  position: relative; }
  trix-editor .attachment:hover {
    cursor: default; }
trix-editor .attachment--preview .attachment__caption:hover {
  cursor: text; }
trix-editor .attachment__progress {
  position: absolute;
  z-index: 1;
  height: 20px;
  top: calc(50% - 10px);
  left: 5%;
  width: 90%;
  opacity: 0.9;
  transition: opacity 200ms ease-in; }
  trix-editor .attachment__progress[value="100"] {
    opacity: 0; }
trix-editor .attachment__caption-editor {
  display: inline-block;
  width: 100%;
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  color: inherit;
  text-align: center;
  vertical-align: top;
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none; }
trix-editor .attachment__toolbar {
  position: absolute;
  z-index: 1;
  top: -0.9em;
  left: 0;
  width: 100%;
  text-align: center; }
trix-editor .trix-button-group {
  display: inline-flex; }
trix-editor .trix-button {
  position: relative;
  float: left;
  color: #666;
  white-space: nowrap;
  font-size: 80%;
  padding: 0 0.8em;
  margin: 0;
  outline: none;
  border: none;
  border-radius: 0;
  background: transparent; }
  trix-editor .trix-button:not(:first-child) {
    border-left: 1px solid #ccc; }
  trix-editor .trix-button.trix-active {
    background: #cbeefa; }
  trix-editor .trix-button:not(:disabled) {
    cursor: pointer; }
trix-editor .trix-button--remove {
  text-indent: -9999px;
  display: inline-block;
  padding: 0;
  outline: none;
  width: 1.8em;
  height: 1.8em;
  line-height: 1.8em;
  border-radius: 50%;
  background-color: #fff;
  border: 2px solid highlight;
  box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.25); }
  trix-editor .trix-button--remove::before {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.7;
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19%206.4L17.6%205%2012%2010.6%206.4%205%205%206.4l5.6%205.6L5%2017.6%206.4%2019l5.6-5.6%205.6%205.6%201.4-1.4-5.6-5.6z%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 90%; }
  trix-editor .trix-button--remove:hover {
    border-color: #333; }
    trix-editor .trix-button--remove:hover::before {
      opacity: 1; }
trix-editor .attachment__metadata-container {
  position: relative; }
trix-editor .attachment__metadata {
  position: absolute;
  left: 50%;
  top: 2em;
  transform: translate(-50%, 0);
  max-width: 90%;
  padding: 0.1em 0.6em;
  font-size: 0.8em;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.7);
  border-radius: 3px; }
  trix-editor .attachment__metadata .attachment__name {
    display: inline-block;
    max-width: 100%;
    vertical-align: bottom;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  trix-editor .attachment__metadata .attachment__size {
    margin-left: 0.2em;
    white-space: nowrap; }
@charset "UTF-8";
.trix-content {
  line-height: 1.5; }
  .trix-content * {
    box-sizing: border-box;
    margin: 0;
    padding: 0; }
  .trix-content h1 {
    font-size: 1.2em;
    line-height: 1.2; }
  .trix-content blockquote {
    border: 0 solid #ccc;
    border-left-width: 0.3em;
    margin-left: 0.3em;
    padding-left: 0.6em; }
  .trix-content [dir=rtl] blockquote,
  .trix-content blockquote[dir=rtl] {
    border-width: 0;
    border-right-width: 0.3em;
    margin-right: 0.3em;
    padding-right: 0.6em; }
  .trix-content li {
    margin-left: 1em; }
  .trix-content [dir=rtl] li {
    margin-right: 1em; }
  .trix-content pre {
    display: inline-block;
    width: 100%;
    vertical-align: top;
    font-family: monospace;
    font-size: 0.9em;
    padding: 0.5em;
    white-space: pre;
    background-color: #eee;
    overflow-x: auto; }
  .trix-content img {
    max-width: 100%;
    height: auto; }
  .trix-content .attachment {
    display: inline-block;
    position: relative;
    max-width: 100%; }
    .trix-content .attachment a {
      color: inherit;
      text-decoration: none; }
      .trix-content .attachment a:hover, .trix-content .attachment a:visited:hover {
        color: inherit; }
  .trix-content .attachment__caption {
    text-align: center; }
    .trix-content .attachment__caption .attachment__name + .attachment__size::before {
      content: ' · '; }
  .trix-content .attachment--preview {
    width: 100%;
    text-align: center; }
    .trix-content .attachment--preview .attachment__caption {
      color: #666;
      font-size: 0.9em;
      line-height: 1.2; }
  .trix-content .attachment--file {
    color: #333;
    line-height: 1;
    margin: 0 2px 2px 2px;
    padding: 0.4em 1em;
    border: 1px solid #bbb;
    border-radius: 5px; }
  .trix-content .attachment-gallery {
    display: flex;
    flex-wrap: wrap;
    position: relative; }
    .trix-content .attachment-gallery .attachment {
      flex: 1 0 33%;
      padding: 0 0.5em;
      max-width: 33%; }
    .trix-content .attachment-gallery.attachment-gallery--2 .attachment, .trix-content .attachment-gallery.attachment-gallery--4 .attachment {
      flex-basis: 50%;
      max-width: 50%; }

/*!************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/tom-select/dist/css/tom-select.default.css ***!
  \************************************************************************************************************************************************/
/**
 * tom-select.css (v2.4.3)
 * Copyright (c) contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 */
.ts-control {
  border: 1px solid #d0d0d0;
  padding: 8px 8px;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
  border-radius: 3px;
  display: flex;
  flex-wrap: wrap;
}
.ts-wrapper.multi.has-items .ts-control {
  padding: calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px);
}
.full .ts-control {
  background-color: #fff;
}
.disabled .ts-control, .disabled .ts-control * {
  cursor: default !important;
}
.focus .ts-control {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}
.ts-control > * {
  vertical-align: baseline;
  display: inline-block;
}
.ts-wrapper.multi .ts-control > div {
  cursor: pointer;
  margin: 0 3px 3px 0;
  padding: 2px 6px;
  background: #1da7ee;
  color: #fff;
  border: 1px solid #0073bb;
}
.ts-wrapper.multi .ts-control > div.active {
  background: #92c836;
  color: #fff;
  border: 1px solid #00578d;
}
.ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
  color: white;
  background: #d2d2d2;
  border: 1px solid #aaaaaa;
}
.ts-control > input {
  flex: 1 1 auto;
  min-width: 7rem;
  display: inline-block !important;
  padding: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  max-width: 100% !important;
  margin: 0 !important;
  text-indent: 0 !important;
  border: 0 none !important;
  background: none !important;
  line-height: inherit !important;
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
      -ms-user-select: auto !important;
          user-select: auto !important;
  box-shadow: none !important;
}
.ts-control > input::-ms-clear {
  display: none;
}
.ts-control > input:focus {
  outline: none !important;
}
.has-items .ts-control > input {
  margin: 0 4px !important;
}
.ts-control.rtl {
  text-align: right;
}
.ts-control.rtl.single .ts-control:after {
  left: 15px;
  right: auto;
}
.ts-control.rtl .ts-control > input {
  margin: 0 4px 0 -2px !important;
}
.disabled .ts-control {
  opacity: 0.5;
  background-color: #fafafa;
}
.input-hidden .ts-control > input {
  opacity: 0;
  position: absolute;
  left: -10000px;
}

.ts-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 10;
  border: 1px solid #d0d0d0;
  background: #fff;
  margin: 0.25rem 0 0;
  border-top: 0 none;
  box-sizing: border-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 3px 3px;
}
.ts-dropdown [data-selectable] {
  cursor: pointer;
  overflow: hidden;
}
.ts-dropdown [data-selectable] .highlight {
  background: rgba(125, 168, 208, 0.2);
  border-radius: 1px;
}
.ts-dropdown .option,
.ts-dropdown .optgroup-header,
.ts-dropdown .no-results,
.ts-dropdown .create {
  padding: 5px 8px;
}
.ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
  cursor: inherit;
  opacity: 0.5;
}
.ts-dropdown [data-selectable].option {
  opacity: 1;
  cursor: pointer;
}
.ts-dropdown .optgroup:first-child .optgroup-header {
  border-top: 0 none;
}
.ts-dropdown .optgroup-header {
  color: #303030;
  background: #fff;
  cursor: default;
}
.ts-dropdown .active {
  background-color: #f5fafd;
  color: #495c68;
}
.ts-dropdown .active.create {
  color: #495c68;
}
.ts-dropdown .create {
  color: rgba(48, 48, 48, 0.5);
}
.ts-dropdown .spinner {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin: 5px 8px;
}
.ts-dropdown .spinner::after {
  content: " ";
  display: block;
  width: 24px;
  height: 24px;
  margin: 3px;
  border-radius: 50%;
  border: 5px solid #d0d0d0;
  border-color: #d0d0d0 transparent #d0d0d0 transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}
@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.ts-dropdown-content {
  overflow: hidden auto;
  max-height: 200px;
  scroll-behavior: smooth;
}

.ts-wrapper.plugin-drag_drop .ts-dragging {
  color: transparent !important;
}
.ts-wrapper.plugin-drag_drop .ts-dragging > * {
  visibility: hidden !important;
}

.plugin-checkbox_options:not(.rtl) .option input {
  margin-right: 0.5rem;
}

.plugin-checkbox_options.rtl .option input {
  margin-left: 0.5rem;
}

/* stylelint-disable function-name-case */
.plugin-clear_button {
  --ts-pr-clear-button: 1em;
}
.plugin-clear_button .clear-button {
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: calc(8px - 6px);
  margin-right: 0 !important;
  background: transparent !important;
  transition: opacity 0.5s;
  cursor: pointer;
}
.plugin-clear_button.form-select .clear-button, .plugin-clear_button.single .clear-button {
  right: max(var(--ts-pr-caret), 8px);
}
.plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
  opacity: 1;
}

.ts-wrapper .dropdown-header {
  position: relative;
  padding: 10px 8px;
  border-bottom: 1px solid #d0d0d0;
  background: color-mix(#fff, #d0d0d0, 85%);
  border-radius: 3px 3px 0 0;
}
.ts-wrapper .dropdown-header-close {
  position: absolute;
  right: 8px;
  top: 50%;
  color: #303030;
  opacity: 0.4;
  margin-top: -12px;
  line-height: 20px;
  font-size: 20px !important;
}
.ts-wrapper .dropdown-header-close:hover {
  color: black;
}

.plugin-dropdown_input.focus.dropdown-active .ts-control {
  box-shadow: none;
  border: 1px solid #d0d0d0;
}
.plugin-dropdown_input .dropdown-input {
  border: 1px solid #d0d0d0;
  border-width: 0 0 1px;
  display: block;
  padding: 8px 8px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
  width: 100%;
  background: transparent;
}
.plugin-dropdown_input .items-placeholder {
  border: 0 none !important;
  box-shadow: none !important;
  width: 100%;
}
.plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder {
  display: none !important;
}

.ts-wrapper.plugin-input_autogrow.has-items .ts-control > input {
  min-width: 0;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input {
  flex: none;
  min-width: 4px;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::-ms-input-placeholder {
  color: transparent;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::placeholder {
  color: transparent;
}

.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
  display: flex;
}
.ts-dropdown.plugin-optgroup_columns .optgroup {
  border-right: 1px solid #f2f2f2;
  border-top: 0 none;
  flex-grow: 1;
  flex-basis: 0;
  min-width: 0;
}
.ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
  border-right: 0 none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup::before {
  display: none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup-header {
  border-top: 0 none;
}

.ts-wrapper.plugin-remove_button .item {
  display: inline-flex;
  align-items: center;
}
.ts-wrapper.plugin-remove_button .item .remove {
  color: inherit;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  padding: 0 6px;
  border-radius: 0 2px 2px 0;
  box-sizing: border-box;
}
.ts-wrapper.plugin-remove_button .item .remove:hover {
  background: rgba(0, 0, 0, 0.05);
}
.ts-wrapper.plugin-remove_button.disabled .item .remove:hover {
  background: none;
}
.ts-wrapper.plugin-remove_button .remove-single {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 23px;
}

.ts-wrapper.plugin-remove_button:not(.rtl) .item {
  padding-right: 0 !important;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
  border-left: 1px solid #0073bb;
  margin-left: 6px;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove {
  border-left-color: #00578d;
}
.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove {
  border-left-color: #aaaaaa;
}

.ts-wrapper.plugin-remove_button.rtl .item {
  padding-left: 0 !important;
}
.ts-wrapper.plugin-remove_button.rtl .item .remove {
  border-right: 1px solid #0073bb;
  margin-right: 6px;
}
.ts-wrapper.plugin-remove_button.rtl .item.active .remove {
  border-right-color: #00578d;
}
.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove {
  border-right-color: #aaaaaa;
}

:root {
  --ts-pr-clear-button: 0px;
  --ts-pr-caret: 0px;
  --ts-pr-min: .75rem;
}

.ts-wrapper.single .ts-control, .ts-wrapper.single .ts-control input {
  cursor: pointer;
}

.ts-control:not(.rtl) {
  padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-control.rtl {
  padding-left: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-wrapper {
  position: relative;
}

.ts-dropdown,
.ts-control,
.ts-control input {
  color: #303030;
  font-family: inherit;
  font-size: 13px;
  line-height: 18px;
}

.ts-control,
.ts-wrapper.single.input-active .ts-control {
  background: #fff;
  cursor: text;
}

.ts-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
          clip-path: inset(50%) !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
}

.ts-wrapper.single .ts-control {
  --ts-pr-caret: 2rem;
}
.ts-wrapper.single .ts-control::after {
  content: " ";
  display: block;
  position: absolute;
  top: 50%;
  margin-top: -3px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: #808080 transparent transparent transparent;
}
.ts-wrapper.single .ts-control:not(.rtl)::after {
  right: 15px;
}
.ts-wrapper.single .ts-control.rtl::after {
  left: 15px;
}
.ts-wrapper.single.dropdown-active .ts-control::after {
  margin-top: -4px;
  border-width: 0 5px 5px 5px;
  border-color: transparent transparent #808080 transparent;
}
.ts-wrapper.single.input-active .ts-control, .ts-wrapper.single.input-active .ts-control input {
  cursor: text;
}

.ts-wrapper {
  display: flex;
  min-height: 36px;
}
.ts-wrapper.multi.has-items .ts-control {
  padding-left: 5px;
  --ts-pr-min: $padding-x;
}
.ts-wrapper.multi .ts-control [data-value] {
  text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
  border-radius: 3px;
  background-color: color-mix(#1da7ee, #178ee9, 60%);
  background-image: linear-gradient(to bottom, #1da7ee, #178ee9);
  background-repeat: repeat-x;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.03);
}
.ts-wrapper.multi .ts-control [data-value].active {
  background-color: color-mix(#008fd8, #0075cf, 60%);
  background-image: linear-gradient(to bottom, #008fd8, #0075cf);
  background-repeat: repeat-x;
}
.ts-wrapper.multi.disabled .ts-control [data-value] {
  color: #999;
  text-shadow: none;
  background: none;
  box-shadow: none;
}
.ts-wrapper.multi.disabled .ts-control [data-value], .ts-wrapper.multi.disabled .ts-control [data-value] .remove {
  border-color: #e6e6e6;
}
.ts-wrapper.multi.disabled .ts-control [data-value] .remove {
  background: none;
}
.ts-wrapper.single .ts-control {
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  background-color: color-mix(#fefefe, #f2f2f2, 60%);
  background-image: linear-gradient(to bottom, #fefefe, #f2f2f2);
  background-repeat: repeat-x;
}

.ts-wrapper.single .ts-control, .ts-dropdown.single {
  border-color: #b8b8b8;
}

.dropdown-active .ts-control {
  border-radius: 3px 3px 0 0;
}

.ts-dropdown .optgroup-header {
  padding-top: 7px;
  font-weight: bold;
  font-size: 0.85em;
}
.ts-dropdown .optgroup {
  border-top: 1px solid #f0f0f0;
}
.ts-dropdown .optgroup:first-child {
  border-top: 0 none;
}
/*# sourceMappingURL=tom-select.default.css.map */
/*!**************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./vendor/symfony/ux-live-component/assets/dist/live.min.css ***!
  \**************************************************************************************************************************************************/
[data-loading=""],[data-loading=show],[data-loading*=\|show]{display:none}
/*!**********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/ckeditor5/dist/ckeditor5.css ***!
  \**********************************************************************************************************************************/
/**
 * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Reset */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-base-foreground: 								hsl(0, 0%, 98%);
	--ck-color-base-background: 								hsl(0, 0%, 100%);
	--ck-color-base-border: 									hsl(220, 6%, 81%);
	--ck-color-base-action: 									hsl(104, 50.2%, 42.5%);
	--ck-color-base-focus: 										hsl(209, 92%, 70%);
	--ck-color-base-text: 										hsl(0, 0%, 20%);
	--ck-color-base-active: 									hsl(218.1, 100%, 58%);
	--ck-color-base-active-focus:								hsl(218.2, 100%, 52.5%);
	--ck-color-base-error:										hsl(15, 100%, 43%);

	/* -- Generic colors ------------------------------------------------------------------------ */

	--ck-color-focus-border-coordinates: 						218, 81.8%, 56.9%;
	--ck-color-focus-border: 									hsl(var(--ck-color-focus-border-coordinates));
	--ck-color-focus-outer-shadow:								hsl(212.4, 89.3%, 89%);
	--ck-color-focus-disabled-shadow:							hsla(209, 90%, 72%,.3);
	--ck-color-focus-error-shadow:								hsla(9,100%,56%,.3);
	--ck-color-text: 											var(--ck-color-base-text);
	--ck-color-shadow-drop: 									hsla(0, 0%, 0%, 0.15);
	--ck-color-shadow-drop-active:								hsla(0, 0%, 0%, 0.2);
	--ck-color-shadow-inner: 									hsla(0, 0%, 0%, 0.1);

	/* -- Buttons ------------------------------------------------------------------------------- */

	--ck-color-button-default-background: 						transparent;
	--ck-color-button-default-hover-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-active-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-disabled-background: 				transparent;

	--ck-color-button-on-background: 							hsl(212, 100%, 97.1%);
	--ck-color-button-on-hover-background: 						hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-active-background: 					hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-disabled-background: 					hsl(211, 15%, 95%);
	--ck-color-button-on-color:									hsl(218.1, 100%, 58%);


	--ck-color-button-action-background: 						var(--ck-color-base-action);
	--ck-color-button-action-hover-background: 					hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-active-background: 				hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-disabled-background: 				hsl(104, 44%, 58%);
	--ck-color-button-action-text: 								var(--ck-color-base-background);

	--ck-color-button-save: 									hsl(120, 100%, 27%);
	--ck-color-button-cancel: 									hsl(15, 100%, 43%);

	--ck-color-switch-button-off-background:					hsl(0, 0%, 57.6%);
	--ck-color-switch-button-off-hover-background:				hsl(0, 0%, 49%);
	--ck-color-switch-button-on-background:						var(--ck-color-button-action-background);
	--ck-color-switch-button-on-hover-background:				hsl(104, 53.2%, 40.2%);
	--ck-color-switch-button-inner-background:					var(--ck-color-base-background);
	--ck-color-switch-button-inner-shadow:						hsla(0, 0%, 0%, 0.1);

	/* -- Dropdown ------------------------------------------------------------------------------ */

	--ck-color-dropdown-panel-background: 						var(--ck-color-base-background);
	--ck-color-dropdown-panel-border: 							var(--ck-color-base-border);

	/* -- Dialog -------------------------------------------------------------------------------- */

	--ck-color-dialog-background: 								var(--ck-custom-background);
	--ck-color-dialog-form-header-border: 						var(--ck-custom-border);

	/* -- Input --------------------------------------------------------------------------------- */

	--ck-color-input-background: 								var(--ck-color-base-background);
	--ck-color-input-border: 									var(--ck-color-base-border);
	--ck-color-input-error-border:								var(--ck-color-base-error);
	--ck-color-input-text: 										var(--ck-color-base-text);
	--ck-color-input-disabled-background: 						hsl(0, 0%, 95%);
	--ck-color-input-disabled-border: 							var(--ck-color-base-border);
	--ck-color-input-disabled-text: 							hsl(0, 0%, 46%);

	/* -- List ---------------------------------------------------------------------------------- */

	--ck-color-list-background: 								var(--ck-color-base-background);
	--ck-color-list-button-hover-background: 					var(--ck-color-button-default-hover-background);
	--ck-color-list-button-on-background: 						var(--ck-color-button-on-color);
	--ck-color-list-button-on-background-focus: 				var(--ck-color-button-on-color);
	--ck-color-list-button-on-text:								var(--ck-color-base-background);

	/* -- Panel --------------------------------------------------------------------------------- */

	--ck-color-panel-background: 								var(--ck-color-base-background);
	--ck-color-panel-border: 									var(--ck-color-base-border);

	/* -- Toolbar ------------------------------------------------------------------------------- */

	--ck-color-toolbar-background: 								var(--ck-color-base-background);
	--ck-color-toolbar-border: 									var(--ck-color-base-border);

	/* -- Tooltip ------------------------------------------------------------------------------- */

	--ck-color-tooltip-background: 								var(--ck-color-base-text);
	--ck-color-tooltip-text: 									var(--ck-color-base-background);

	/* -- Engine -------------------------------------------------------------------------------- */

	--ck-color-engine-placeholder-text: 						hsl(0, 0%, 44%);

	/* -- Upload -------------------------------------------------------------------------------- */

	--ck-color-upload-bar-background:		 					hsl(209, 92%, 70%);

	/* -- Link -------------------------------------------------------------------------------- */

	--ck-color-link-default:									hsl(240, 100%, 47%);
	--ck-color-link-selected-background:						hsla(201, 100%, 56%, 0.1);
	--ck-color-link-fake-selection:								hsla(201, 100%, 56%, 0.3);

	/* -- Search result highlight ---------------------------------------------------------------- */

	--ck-color-highlight-background:							hsl(60, 100%, 50%);

	/* -- Generic colors ------------------------------------------------------------------------- */

	--ck-color-light-red:										hsl(0, 100%, 90%);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * An opacity value of disabled UI item.
	 */
	--ck-disabled-opacity: .5;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * The geometry of the of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow-geometry: 0 0 0 3px;

	/**
	 * A visual style of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);

	/**
	 * A visual style of focused element's outer shadow (when disabled).
	 */
	--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);

	/**
	 * A visual style of focused element's outer shadow (when has errors).
	 */
	--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);

	/**
	 * A visual style of focused element's border or outline.
	 */
	--ck-focus-ring: 1px solid var(--ck-color-focus-border);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-font-size-base: 13px;
	--ck-line-height-base: 1.84615;
	--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;

	--ck-font-size-tiny: 0.7em;
	--ck-font-size-small: 0.75em;
	--ck-font-size-normal: 1em;
	--ck-font-size-big: 1.4em;
	--ck-font-size-large: 1.8em;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* This is super-important. This is **manually** adjusted so a button without an icon
	is never smaller than a button with icon, additionally making sure that text-less buttons
	are perfect squares. The value is also shared by other components which should stay "in-line"
	with buttons. */
	--ck-ui-component-min-height: 2.3em;
}
/**
 * Resets an element, ignoring its children.
 */
.ck.ck-reset,
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	box-sizing: border-box;
	width: auto;
	height: auto;
	position: static;

	/* Do not include inheritable rules here. */
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-decoration: none;
	vertical-align: middle;
	transition: none;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */
	word-wrap: break-word;
}
/**
 * Resets an element AND its children.
 */
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	/* These are rule inherited by all children elements. */
	border-collapse: collapse;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: var(--ck-color-text);
	text-align: left;
	white-space: nowrap;
	cursor: auto;
	float: none;
}
.ck-reset_all .ck-rtl *:not(.ck-reset_all-excluded *) {
		text-align: right;
	}
.ck-reset_all iframe:not(.ck-reset_all-excluded *) {
		/* For IE */
		vertical-align: inherit;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *) {
		white-space: pre-wrap;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"]:not(.ck-reset_all-excluded *) {
		cursor: text;
	}
.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"][disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"][disabled]:not(.ck-reset_all-excluded *) {
		cursor: default;
	}
.ck-reset_all fieldset:not(.ck-reset_all-excluded *) {
		padding: 10px;
		border: 2px groove hsl(255, 7%, 88%);
	}
.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner {
		/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */
		padding: 0;
		border: 0
	}
/**
 * Default UI rules for RTL languages.
 */
.ck[dir="rtl"],
.ck[dir="rtl"] .ck {
	text-align: right;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Default border-radius value.
 */
:root{
	--ck-border-radius: 2px;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * A visual style of element's inner shadow (i.e. input).
	 */
	--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;

	/**
	 * A visual style of element's drop shadow (i.e. panel).
	 */
	--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);

	/**
	 * A visual style of element's active shadow (i.e. comment or suggestion).
	 */
	--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-spacing-unit: 						0.6em;
	--ck-spacing-extra-large:				calc(var(--ck-spacing-unit) * 2);
	--ck-spacing-large: 					calc(var(--ck-spacing-unit) * 1.5);
	--ck-spacing-standard: 					var(--ck-spacing-unit);
	--ck-spacing-medium: 					calc(var(--ck-spacing-unit) * 0.8);
	--ck-spacing-medium-small:				calc(var(--ck-spacing-unit) * 0.667);
	--ck-spacing-small: 					calc(var(--ck-spacing-unit) * 0.5);
	--ck-spacing-tiny: 						calc(var(--ck-spacing-unit) * 0.3);
	--ck-spacing-extra-tiny: 				calc(var(--ck-spacing-unit) * 0.16);
}

/* Components */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-autocomplete > .ck-search__results {
		border-radius: 0;

		max-height: 200px;
		overflow-y: auto;
		background: var(--ck-color-base-background);
		border: 1px solid var(--ck-color-dropdown-panel-border);
		min-width: auto;
	}
.ck-rounded-corners .ck.ck-autocomplete > .ck-search__results,
	.ck.ck-autocomplete > .ck-search__results.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-autocomplete > .ck-search__results {
		box-shadow: var(--ck-drop-shadow), 0 0;
	}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-bottom: -1px;
		}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			border-top-left-radius: 0;
			border-top-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-top: -1px;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button,
a.ck.ck-button {
	background: var(--ck-color-button-default-background);
	border-radius: 0;

	white-space: nowrap;
	cursor: default;
	vertical-align: middle;
	padding: var(--ck-spacing-tiny);
	text-align: center;

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: var(--ck-ui-component-min-height);
	min-height: var(--ck-ui-component-min-height);

	/* Normalize the height of the line. Removing this will break consistent height
	among text and text-less buttons (with icons). */
	line-height: 1;

	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;

	/* Avoid flickering when the foucs border shows up. */
	border: 1px solid transparent;

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .2s ease-in-out, border .2s ease-in-out;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */
	-webkit-appearance: none;
}
.ck.ck-button:not(.ck-disabled):hover, a.ck.ck-button:not(.ck-disabled):hover {
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: var(--ck-color-button-default-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {
		background: var(--ck-color-button-default-disabled-background);
	}
.ck-rounded-corners .ck.ck-button,
	.ck-rounded-corners a.ck.ck-button,
	.ck.ck-button.ck-rounded-corners,
	a.ck.ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button,
a.ck.ck-button {
		transition: none;
}
	}
.ck.ck-button:active,
	a.ck.ck-button:active,
	.ck.ck-button:focus,
	a.ck.ck-button:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
/* Allow icon coloring using the text "color" property. */
.ck.ck-button .ck-button__icon use,
		a.ck.ck-button .ck-button__icon use,
		.ck.ck-button .ck-button__icon use *,
		a.ck.ck-button .ck-button__icon use * {
			color: inherit;
		}
.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		/* Enable font size inheritance, which allows fluid UI scaling. */
		font-size: inherit;
		font-weight: inherit;
		color: inherit;
		cursor: inherit;

		/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and
		without labels (but with icons) have different sizes in Chrome */
		vertical-align: middle;
	}
[dir="ltr"] .ck.ck-button .ck-button__label, [dir="ltr"] a.ck.ck-button .ck-button__label {
			text-align: left;
	}
[dir="rtl"] .ck.ck-button .ck-button__label, [dir="rtl"] a.ck.ck-button .ck-button__label {
			text-align: right;
	}
.ck.ck-button .ck-button__keystroke, a.ck.ck-button .ck-button__keystroke {
		color: inherit;

		opacity: .5;
	}
[dir="ltr"] .ck.ck-button .ck-button__keystroke, [dir="ltr"] a.ck.ck-button .ck-button__keystroke {
			margin-left: var(--ck-spacing-large);
	}
[dir="rtl"] .ck.ck-button .ck-button__keystroke, [dir="rtl"] a.ck.ck-button .ck-button__keystroke {
			margin-right: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-button.ck-disabled:active,
		a.ck.ck-button.ck-disabled:active,
		.ck.ck-button.ck-disabled:focus,
		a.ck.ck-button.ck-disabled:focus {
			/* The disabled button should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-button.ck-disabled .ck-button__icon, a.ck.ck-button.ck-disabled .ck-button__icon {
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled .ck-button__label, a.ck.ck-button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
.ck.ck-button.ck-disabled .ck-button__keystroke, a.ck.ck-button.ck-disabled .ck-button__keystroke {
			opacity: .3;
		}
.ck.ck-button.ck-button_with-text, a.ck.ck-button.ck-button_with-text {
		padding: var(--ck-spacing-tiny) var(--ck-spacing-standard);

		/* stylelint-disable-next-line no-descending-specificity */
	}
[dir="ltr"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="ltr"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="rtl"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-left: var(--ck-spacing-medium);
	}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-button_with-keystroke .ck-button__label, a.ck.ck-button.ck-button_with-keystroke .ck-button__label {
			flex-grow: 1;
		}
/* A style of the button which is currently on, e.g. its feature is active. */
.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		background: var(--ck-color-button-on-background);

		color: var(--ck-color-button-on-color);
	}
.ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):hover {
			background: var(--ck-color-button-on-hover-background);
		}
.ck.ck-button.ck-on:not(.ck-disabled):active, a.ck.ck-button.ck-on:not(.ck-disabled):active {
			background: var(--ck-color-button-on-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-on.ck-disabled, a.ck.ck-button.ck-on.ck-disabled {
		background: var(--ck-color-button-on-disabled-background);
	}
.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: var(--ck-color-button-save);
	}
.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: var(--ck-color-button-cancel);
	}
/* A style of the button which handles the primary action. */
.ck.ck-button-action,
a.ck.ck-button-action {
	background: var(--ck-color-button-action-background);

	color: var(--ck-color-button-action-text);
}
.ck.ck-button-action:not(.ck-disabled):hover, a.ck.ck-button-action:not(.ck-disabled):hover {
			background: var(--ck-color-button-action-hover-background);
		}
.ck.ck-button-action:not(.ck-disabled):active, a.ck.ck-button-action:not(.ck-disabled):active {
			background: var(--ck-color-button-action-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button-action.ck-disabled, a.ck.ck-button-action.ck-disabled {
		background: var(--ck-color-button-action-disabled-background);
	}
.ck.ck-button-bold,
a.ck.ck-button-bold {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature
of the component, floating–point numbers have been used which, for the default font size
(see: --ck-font-size-base), will generate simple integers. */
:root {
	/* 34px at 13px font-size */
	--ck-switch-button-toggle-width: 2.6153846154em;
	/* 14px at 13px font-size */
	--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);
	--ck-switch-button-translation: calc(
		var(--ck-switch-button-toggle-width) -
		var(--ck-switch-button-toggle-inner-size) -
		2px /* Border */
	);
	--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);
}
/* Unlike a regular button, the switch button text color and background should never change.
	 * Changing toggle switch (background, outline) is enough to carry the information about the
	 * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)
	 */
.ck.ck-button.ck-switchbutton, .ck.ck-button.ck-switchbutton:hover, .ck.ck-button.ck-switchbutton:focus, .ck.ck-button.ck-switchbutton:active, .ck.ck-button.ck-switchbutton.ck-on:hover, .ck.ck-button.ck-switchbutton.ck-on:focus, .ck.ck-button.ck-switchbutton.ck-on:active {
		color: inherit;
		background: transparent;
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-right: calc(2 * var(--ck-spacing-large));
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-left: calc(2 * var(--ck-spacing-large));
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle {
		border-radius: 0;

		/* Apply some smooth transition to the box-shadow and border. */
		/* Gently animate the background color of the toggle switch */
		transition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;
		border: 1px solid transparent;
		width: var(--ck-switch-button-toggle-width);
		background: var(--ck-color-switch-button-off-background);
	}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,
	.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the right as far as possible. */
			margin-left: auto;
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the left as far as possible. */
			margin-right: auto;
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			border-radius: 0;

			width: var(--ck-switch-button-toggle-inner-size);
			height: var(--ck-switch-button-toggle-inner-size);
			background: var(--ck-color-switch-button-inner-background);

			/* Gently animate the inner part of the toggle switch */
			transition: all 300ms ease;
		}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,
	.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-radius: calc(.5 * var(--ck-border-radius));
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
				transition: none;
		}
			}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover {
			background: var(--ck-color-switch-button-off-hover-background);
		}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner {
				box-shadow: var(--ck-switch-button-inner-hover-shadow);
			}
.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: var(--ck-disabled-opacity);
	}
/* Overriding default .ck-button:focus styles + an outline around the toogle */
.ck.ck-button.ck-switchbutton:focus {
		border-color: transparent;
		outline: none;
		box-shadow: none;
	}
.ck.ck-button.ck-switchbutton:focus .ck-button__toggle {
			box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);
			outline-offset: 1px;
			outline: var(--ck-focus-ring);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
			background: var(--ck-color-switch-button-on-background);
		}
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
				background: var(--ck-color-switch-button-on-hover-background);
			}
/*
				* Move the toggle switch to the right. It will be animated.
				*/
[dir="ltr"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( var( --ck-switch-button-translation ) );
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button.ck-list-item-button {
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
}
.ck.ck-button.ck-list-item-button,
	.ck.ck-button.ck-list-item-button.ck-on {
		background: var(--ck-color-list-background);
		color: var(--ck-color-text);
	}
[dir="ltr"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-right: var(--ck-spacing-small);
	}
/*
	 * `.ck-on` class and background styling is overridden for `ck-button` in many places.
	 * This is a workaround to make sure that the background is not overridden and uses similar
	 * selector specificity as the other overrides.
	 */
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled),
	.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover,
	.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable),
	.ck.ck-button.ck-list-item-button.ck-on:hover {
		background: var(--ck-color-list-button-hover-background);
	}
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-button.ck-on:hover:not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:hover:not(.ck-disabled) {
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-collapsible > .ck.ck-button {
		width: 100%;
		font-weight: bold;
		border-radius: 0;
		color: inherit;
	}
.ck.ck-collapsible > .ck.ck-button:focus {
			background: transparent;
		}
.ck.ck-collapsible > .ck.ck-button:active, .ck.ck-collapsible > .ck.ck-button:not(:focus), .ck.ck-collapsible > .ck.ck-button:hover:not(:focus) {
			background: transparent;
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-collapsible > .ck.ck-button > .ck-icon {
			margin-right: var(--ck-spacing-medium);
			width: var(--ck-collapsible-arrow-size);
		}
.ck.ck-collapsible > .ck-collapsible__children {
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);
	}
.ck.ck-collapsible.ck-collapsible_collapsed > .ck.ck-button .ck-icon {
			transform: rotate(-90deg);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-grid-tile-size: 24px;

	/* Not using global colors here because these may change but some colors in a pallette
	 * require special treatment. For instance, this ensures no matter what the UI text color is,
	 * the check icon will look good on the black color tile. */
	--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);
}
.ck.ck-color-grid {
	grid-gap: 5px;
	padding: 8px;
}
.ck.ck-color-grid__tile {
	transition: .2s ease box-shadow;
}
@media (forced-colors: none) {
		.ck.ck-color-grid__tile {
		width: var(--ck-color-grid-tile-size);
		height: var(--ck-color-grid-tile-size);
		min-width: var(--ck-color-grid-tile-size);
		min-height: var(--ck-color-grid-tile-size);
		padding: 0;
		border: 0;
		}

		.ck.ck-color-grid__tile.ck-on,
		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
		}

		.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered {
			box-shadow: 0 0 0 1px var(--ck-color-base-border);
		}

		.ck.ck-color-grid__tile.ck-on {
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);
		}

		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
	}
/*
	 * In high contrast mode, the colors are replaced with text labels.
	 * See https://github.com/ckeditor/ckeditor5/issues/14907.
	 */
@media (forced-colors: active) {
		.ck.ck-color-grid__tile {
		width: unset;
		height: unset;
		min-width: unset;
		min-height: unset;
		padding: 0 var(--ck-spacing-small);
		}

		.ck.ck-color-grid__tile .ck-button__label {
			display: inline-block;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-color-grid__tile {
		transition: none;
}
	}
.ck.ck-color-grid__tile.ck-disabled {
		cursor: unset;
		transition: unset;
	}
.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
		color: var(--ck-color-color-grid-check-icon);
	}
.ck.ck-color-grid__tile.ck-on .ck.ck-icon {
			display: block;
		}
.ck.ck-color-grid__label {
	padding: 0 var(--ck-spacing-standard);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* View fragment with color grids. */
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			width: 100%;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus) {
				border-top: 1px solid var(--ck-color-base-border);
			}
[dir="ltr"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-left: var(--ck-spacing-standard);
	}
.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label {
			font-weight: unset;
		}
/* View fragment with a color picker. */
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker {
			padding: 8px;
		}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker {
				height: 100px;
				min-width: 180px;
			}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation) {
					border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue) {
					border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer),
				.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer) {
					width: 15px;
					height: 15px;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			padding: 0 8px 8px;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );
	--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);
	--ck-dialog-max-width: 100vw;
	--ck-dialog-max-height: 90vh;
	--ck-color-dialog-background: var(--ck-color-base-background);
	--ck-color-dialog-form-header-border: var(--ck-color-base-border);
}
.ck.ck-dialog-overlay {
	animation: ck-dialog-fade-in .3s;
	background: var(--ck-dialog-overlay-background-color);
	z-index: var(--ck-z-dialog);
}
.ck.ck-dialog {
	border-radius: 0;

	--ck-drop-shadow: var(--ck-dialog-drop-shadow);

	background: var(--ck-color-dialog-background);
	max-height: var(--ck-dialog-max-height);
	max-width: var(--ck-dialog-max-width);
	border: 1px solid var(--ck-color-base-border);
	overscroll-behavior: contain;
}
.ck-rounded-corners .ck.ck-dialog,
	.ck.ck-dialog.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dialog {
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-dialog .ck.ck-form__header {
		border-bottom: 1px solid var(--ck-color-dialog-form-header-border);
	}
.ck-dialog-scroll-locked {
	overflow: hidden;
}
@keyframes ck-dialog-fade-in {
	0% {
		background: hsla( 0, 0%, 0%, 0 );
	}

	100% {
		background: var(--ck-dialog-overlay-background-color);
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dialog .ck.ck-dialog__actions {
		padding: var(--ck-spacing-large);
	}
.ck.ck-dialog .ck.ck-dialog__actions > * + * {
			margin-left: var(--ck-spacing-large);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-dropdown {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-dropdown .ck-dropdown__arrow {
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow {
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: var(--ck-spacing-small);
		}
.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-right: var(--ck-spacing-small);
			}
/* #23 */
.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
			width: 7em;
			overflow: hidden;
			text-overflow: ellipsis;
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label {
			width: auto;
		}
/* https://github.com/ckeditor/ckeditor5/issues/8699 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,
		.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active {
			box-shadow: none;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus {
				box-shadow: var(--ck-focus-outer-shadow), 0 0;
			}
.ck.ck-dropdown__panel {
	border-radius: 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;

	/* Make sure the panel is at least as wide as the drop-down's button. */
	min-width: 100%;
}
.ck-rounded-corners .ck.ck-dropdown__panel,
	.ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dropdown__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Disabled corner border radius to be consistent with the .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
}
.ck.ck-dropdown__panel.ck-dropdown__panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-dropdown__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {
	/* Disabled radius of top-left border to be consistent with .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
	}
/* Make sure the button belonging to the first/last child of the list goes well with the
	border radius of the entire panel. */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-color-split-button-hover-background: hsl(0, 0%, 92%);
	--ck-color-split-button-hover-border: hsl(0, 0%, 70%);
}
/*
	 * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).
	 */
[dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset;
		}
[dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the left side */
			border-top-left-radius: unset;
			border-bottom-left-radius: unset;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow {
		/* It's a text-less button and since the icon is positioned absolutely in such situation,
		it must get some arbitrary min-width. */
		min-width: unset;
	}
[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the left side */
			border-top-left-radius: unset;
			border-bottom-left-radius: unset;
		}
[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow svg {
			width: var(--ck-dropdown-arrow-size);
		}
/* Make sure the divider stretches 100% height of the button
	https://github.com/ckeditor/ckeditor5/issues/10936 */
.ck.ck-splitbutton > .ck-splitbutton__arrow:not(:focus) {
		border-top-width: 0px;
		border-bottom-width: 0px;
	}
/* Don't round the bottom left and right corners of the buttons when "open"
	https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-splitbutton.ck-splitbutton_open {
		border-radius: 0;
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,
	.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__action {
				border-bottom-left-radius: 0;
			}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__arrow {
				border-bottom-right-radius: 0;
			}
/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling
	as a whole. The background of both buttons should stand out and there should be a visual
	separation between both buttons. */
/* When the split button hovered as a whole, not as individual buttons. */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover), .ck.ck-splitbutton:hover > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {
			background: var(--ck-color-split-button-hover-background);
		}
/* Splitbutton separator needs to be set with the ::after pseudoselector
		to display properly the borders on focus */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
			content: '';
			position: absolute;
			width: 1px;
			height: 100%;
			background-color: var(--ck-color-split-button-hover-border);
		}
/* Make sure the divider between the buttons looks fine when the button is focused */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:focus::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:focus::after {
			--ck-color-split-button-hover-border: var(--ck-color-focus-border);
		}
[dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				left: -1px;
			}
[dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				right: -1px;
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar-dropdown .ck-toolbar {
	border: 0;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * All menu buttons.
 */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button {
	width: 100%;
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
	border-radius: 0;
}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on) {
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-button__label {
		flex-grow: 1;
		overflow: hidden;
		text-overflow: ellipsis;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-button__label {
		opacity: var(--ck-disabled-opacity);
	}
/* Spacing in buttons that miss the icon. */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label {
		margin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(-90deg);

			/* Nudge the arrow gently to the right because its center of gravity is to the left */
			margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(90deg);

			/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
			margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow {
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-left: var(--ck-spacing-small);
		}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-right: var(--ck-spacing-small);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: var(--ck-spacing-small);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-menu-menu-item-min-width: 18em;
}
.ck.ck-dropdown-menu-list__nested-menu__item {
	min-width: var(--ck-dropdown-menu-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * List item buttons.
 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button {
	border-radius: 0;
}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container,
	.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container .ck-spinner {
		/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
		--ck-toolbar-spinner-size: 20px;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container {
		/* These margins are the same as for .ck-icon. */
		margin-left: calc(-1 * var(--ck-spacing-small));
		margin-right: var(--ck-spacing-small);
	}
/*
	 * Hovered items automatically get focused. Default focus styles look odd
	 * while moving across a huge list of items so let's get rid of them
	 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on) {
			background: var(--ck-color-button-default-hover-background);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-dropdown-menu-menu-panel-max-width: 75vw;
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: fit-content;
	max-width: var(--ck-dropdown-menu-menu-panel-max-width);

	/* Reset balloon styling */
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::after,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::before {
		display: none;
	}
/* Corner border radius consistent with the button. */
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-accessibility-help-dialog-max-width: 600px;
	--ck-accessibility-help-dialog-max-height: 400px;
	--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);
	--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);
	--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {
	padding: var(--ck-spacing-large);
	max-width: var(--ck-accessibility-help-dialog-max-width);
	max-height: var(--ck-accessibility-help-dialog-max-height);
	overflow: auto;
	user-select: text;

	border: 1px solid transparent;
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content * {
		white-space: normal;
	}
/* Hide the main label of the content container. */
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label {
		display: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3 {
		font-weight: bold;
		font-size: 1.2em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4 {
		font-weight: bold;
		font-size: 1em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table {
		margin: 1em 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl {
		display: grid;
		grid-template-columns: 2fr 1fr;
		border-top: 1px solid var(--ck-accessibility-help-dialog-border-color);
		border-bottom: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			border-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);
			padding: .4em 0;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt {
			grid-column-start: 1;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			grid-column-start: 2;
			text-align: right;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		display: inline-block;
		background: var(--ck-accessibility-help-dialog-code-background-color);
		padding: .4em;
		vertical-align: middle;
		line-height: 1;
		border-radius: 2px;
		text-align: center;
		font-size: .9em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		font-family: monospace;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd {
		min-width: 1.8em;
		box-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);
		margin: 0 1px;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd + kbd {
			margin-left: 2px;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
:root {
	--ck-color-editable-blur-selection: hsl(0, 0%, 85%);
}
.ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),
	.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable) {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
.ck.ck-editor__editable_inline {
	overflow: auto;
	padding: 0 var(--ck-spacing-standard);
	border: 1px solid transparent;
}
.ck.ck-editor__editable_inline[dir="ltr"] {
		text-align: left;
	}
.ck.ck-editor__editable_inline[dir="rtl"] {
		text-align: right;
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */
.ck.ck-editor__editable_inline > *:first-child {
		margin-top: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/847 */
.ck.ck-editor__editable_inline > *:last-child {
		/*
		 * This value should match with the default margins of the block elements (like .media or .image)
		 * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).
		 */
		margin-bottom: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/6517 */
.ck.ck-editor__editable_inline.ck-blurred ::selection {
		background: var(--ck-color-editable-blur-selection);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]::after {
		border-bottom-color: var(--ck-color-panel-background);
	}
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: var(--ck-color-panel-background);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-form-header-height: 3.384em;
}
.ck.ck-form__header {
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	height: var(--ck-form-header-height);
	line-height: var(--ck-form-header-height);
	border-bottom: 1px solid var(--ck-color-base-border);
	/* To prevent shrinking when placed in flexbox. */
	flex-shrink: 0;
}
.ck.ck-form__header > .ck-icon {
		margin-inline-end: var(--ck-spacing-medium);
		flex-shrink: 0;
	}
.ck.ck-form__header .ck-form__header__label {
		/* Defaults to 15px. */
		--ck-font-size-base: 1.153em;

		font-weight: bold;
	}
/* Padding when back button is hidden */
.ck.ck-form__header:has(.ck-button-back.ck-hidden) {
		padding-inline: var(--ck-spacing-large) var(--ck-spacing-large);
	}
/* Padding when back button is visible */
.ck.ck-form__header:has(.ck-button-back:not(.ck-hidden)) {
		padding-inline: var(--ck-spacing-small) var(--ck-spacing-small);
	}
.ck.ck-form__header > .ck-button-back {
		margin-inline-end: var(--ck-spacing-small);
	}
.ck.ck-form__header > .ck.ck-button {
		flex-shrink: 0;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
	--ck-icon-font-size: .8333350694em;
}
.ck.ck-icon {
	width: var(--ck-icon-size);
	height: var(--ck-icon-size);

	/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */
	font-size: var(--ck-icon-font-size);

	/* Inherit cursor style (#5). */
	cursor: inherit;
}
.ck.ck-icon * {
		/* Inherit cursor style (#5). */
		cursor: inherit;
	}
/* Allows dynamic coloring of an icon by inheriting its color from the parent. */
.ck.ck-icon.ck-icon_inherit-color {
		color: inherit;
	}
.ck.ck-icon.ck-icon_inherit-color * {
			color: inherit;
		}
.ck.ck-icon.ck-icon_inherit-color *:not([fill]) {
				/* Needed by FF. */
				fill: currentColor;
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-input-width: 18em;

	/* Backward compatibility. */
	--ck-input-text-width: var(--ck-input-width);
}
.ck.ck-input {
	border-radius: 0;

	background: var(--ck-color-input-background);
	border: 1px solid var(--ck-color-input-border);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: var(--ck-input-width);

	/* This is important to stay of the same height as surrounding buttons */
	min-height: var(--ck-ui-component-min-height);

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .1s ease-in-out, border .1s ease-in-out;
}
.ck-rounded-corners .ck.ck-input,
	.ck.ck-input.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input {
		transition: none;
}
	}
.ck.ck-input:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-input[readonly] {
		border: 1px solid var(--ck-color-input-disabled-border);
		background: var(--ck-color-input-disabled-background);
		color: var(--ck-color-input-disabled-text);
	}
.ck.ck-input[readonly]:focus {
			/* The read-only input should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-input.ck-error {
		border-color: var(--ck-color-input-error-border);
		animation: ck-input-shake .3s ease both;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input.ck-error {
			animation: none;
	}
		}
.ck.ck-input.ck-error:focus {
			box-shadow: var(--ck-focus-error-outer-shadow), 0 0;
		}
@keyframes ck-input-shake {
	20% {
		transform: translateX(-2px);
	}

	40% {
		transform: translateX(2px);
	}

	60% {
		transform: translateX(-1px);
	}

	80% {
		transform: translateX(1px);
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-label {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);
	--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));
	--ck-color-labeled-field-label-background: var(--ck-color-base-background);
}
.ck.ck-labeled-field-view {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-labeled-field-view,
	.ck.ck-labeled-field-view.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		width: 100%;
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			top: 0px;

			pointer-events: none;

			background: var(--ck-color-labeled-field-label-background);
			padding: 0 calc(.5 * var(--ck-font-size-tiny));
			line-height: initial;
			font-weight: normal;

			/* Prevent overflow when the label is longer than the input */
			text-overflow: ellipsis;
			overflow: hidden;

			max-width: 100%;

			transition:
				transform var(--ck-labeled-field-view-transition),
				padding var(--ck-labeled-field-view-transition),
				background var(--ck-labeled-field-view-transition);
		}
[dir="ltr"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				left: 0px;
				transform-origin: 0 0;
				/* By default, display the label scaled down above the field. */
				transform: translate(var(--ck-spacing-medium), -6px) scale(.75);
	}
[dir="rtl"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				right: 0px;
				transform-origin: 100% 0;
				transform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				transition: none;
		}
			}
.ck.ck-labeled-field-view.ck-error > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label {
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view .ck-labeled-field-view__status {
		font-size: var(--ck-font-size-small);
		margin-top: var(--ck-spacing-small);

		/* Let the info wrap to the next line to avoid stretching the layout horizontally.
		The status could be very long. */
		white-space: normal;
	}
.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error {
			color: var(--ck-color-base-error);
		}
/* Disabled fields and fields that have no focus should fade out. */
.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
		color: var(--ck-color-input-disabled-text);
	}
/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {

		/* Compensate for the default translate position. */
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));

		background: transparent;
		padding: 0;
	}
[dir="ltr"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="ltr"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
[dir="rtl"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="rtl"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
/*------ DropdownView integration ----------------------------------------------------------------------------------- */
/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {
		background: transparent;
	}
/* When the dropdown is "empty", the labeled field label replaces its label. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {
		opacity: 0;
	}
/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));
	}
.ck.ck-labeled-field-view.ck-labeled-field-view_full-width {
		flex-grow: 1;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-labeled-input .ck-labeled-input__status {
	font-size: var(--ck-font-size-small);
	margin-top: var(--ck-spacing-small);

	/* Let the info wrap to the next line to avoid stretching the layout horizontally.
	The status could be very long. */
	white-space: normal;
}
.ck.ck-labeled-input .ck-labeled-input__status_error {
	color: var(--ck-color-base-error);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-list {
	border-radius: 0;

	list-style-type: none;
	background: var(--ck-color-list-background);

	/* A spacing at the beginning and end of the list */
	padding: var(--ck-spacing-small) 0;
}
.ck-rounded-corners .ck.ck-list,
	.ck.ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-list__item {
	cursor: default;

	/* Almost as wide as menu bar items. */
	min-width: 15em;
}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
		padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
		min-height: unset;
		width: 100%;
		border-radius: 0;
	}
[dir="ltr"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: left;
	}
[dir="rtl"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: right;
	}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) .ck-button__label {
			/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */
			line-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));
		}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):active {
			box-shadow: none;
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button) {
			background: var(--ck-color-list-button-on-background);
			color: var(--ck-color-list-button-on-text);
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):active {
				box-shadow: none;
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-on-background-focus);
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):focus:not(.ck-disabled) {
				border-color: var(--ck-color-base-background);
			}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):hover:not(.ck-disabled) {
			background: var(--ck-color-list-button-hover-background);
		}
/* It's unnecessary to change the background/text of a switch toggle; it has different ways
	of conveying its state (like the switcher) */
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on {
			background: var(--ck-color-list-background);
			color: inherit;
		}
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}
.ck-list .ck-list__group {
	padding-top: var(--ck-spacing-medium);

	/* Lists come with an inner vertical padding. Don't duplicate it. */
}
.ck-list .ck-list__group:first-child {
		padding-top: 0;
	}
/* The group should have a border when it's not the first item. */
*:not(.ck-hidden) ~ .ck-list .ck-list__group {
		border-top: 1px solid var(--ck-color-base-border);
	}
.ck-list .ck-list__group > .ck-label {
		font-size: 11px;
		font-weight: bold;
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;
	}
.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: var(--ck-color-base-border);

	/* Give the separator some air */
	margin: var(--ck-spacing-small) 0;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	background: var(--ck-color-base-background);
	padding: var(--ck-spacing-small);
	gap: var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border);
	width: 100%;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar__menu {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level {
		max-width: 100%;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * All menu buttons.
	 */
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button {
		width: 100%;
	}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-button__label {
			flex-grow: 1;
			overflow: hidden;
			text-overflow: ellipsis;
		}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button.ck-disabled > .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
[dir="ltr"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-right: var(--ck-spacing-small);
			}
/*
	 * Top-level menu buttons only.
	 */
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		min-height: unset;
	}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-button__label {
			width: unset;
			line-height: unset;

			/*
			 * Top-level buttons don't use ellipsis and overflow: hidden clips descenders.
			 *  See https://github.com/ckeditor/ckeditor5/issues/17422.
			 */
			overflow: visible;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-icon {
			display: none;
		}
/*
	 * Sub-menu buttons.
	 */
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
			width: var(--ck-dropdown-arrow-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(-90deg);

				/* A space to accommodate the triangle. */
				margin-left: var(--ck-spacing-standard);

				/* Nudge the arrow gently to the right because its center of gravity is to the left */
				margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(90deg);

				left: var(--ck-spacing-standard);

				/* A space to accommodate the triangle. */
				margin-right: var(--ck-spacing-small);

				/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
				margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled > .ck-menu-bar__menu__button__arrow {
			opacity: var(--ck-disabled-opacity);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-menu-bar-menu-item-min-width: 18em;
}
.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {
	min-width: var(--ck-menu-bar-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * List item buttons.
	 */
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container,
		.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container .ck-spinner {
			/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
			--ck-toolbar-spinner-size: 20px;
		}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
			/* This ensures margins corresponding to the .ck-icon. */
			font-size: var(--ck-icon-font-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-left: var(--ck-spacing-medium);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
:root {
	--ck-menu-bar-menu-panel-max-width: 75vw;
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	border-radius: 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: fit-content;
	max-width: var(--ck-menu-bar-menu-panel-max-width);
}
.ck-rounded-corners .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Corner border radius consistent with the button. */
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		border-top-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		border-top-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel:focus {
		outline: none;
	}
.ck.ck-menu-bar .ck-list-item-button:focus,
		.ck.ck-menu-bar .ck-list-item-button:active {
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus,
		.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active {
			/* Fix truncated shadows due to rendering order. */
			position: relative;
			z-index: 2;

			/* Disable native outline. */

			outline: none;

			border: var(--ck-focus-ring);
			box-shadow: var(--ck-focus-outer-shadow), 0 0;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-border-width: 1px;
	--ck-balloon-arrow-offset: 2px;
	--ck-balloon-arrow-height: 10px;
	--ck-balloon-arrow-half-width: 8px;
	--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);
}
.ck.ck-balloon-panel {
	border-radius: 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);
}
.ck-rounded-corners .ck.ck-balloon-panel,
	.ck.ck-balloon-panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-balloon-panel {
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			width: 0;
			height: 0;
			border-style: solid;
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before,
		.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before {
			border-color: transparent transparent var(--ck-color-panel-border) transparent;
			margin-top: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before,
		.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before {
			border-color: var(--ck-color-panel-border) transparent transparent;
			filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));
			margin-bottom: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before,
		.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before {
			border-color: transparent transparent transparent var(--ck-color-panel-border);
			margin-right: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-color: transparent transparent transparent var(--ck-color-panel-background);
			margin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before,
		.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before {
			border-color: transparent var(--ck-color-panel-border) transparent transparent;
			margin-left: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-color: transparent var(--ck-color-panel-background) transparent transparent;
			margin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::after {
			right: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::after {
			left: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck .ck-balloon-rotator__navigation {
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 var(--ck-spacing-small);

	/* Let's keep similar appearance to `ck-toolbar`. */
}
.ck .ck-balloon-rotator__navigation > * {
		margin-right: var(--ck-spacing-small);
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
/* Gives counter more breath than buttons. */
.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter {
		margin-right: var(--ck-spacing-standard);

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: var(--ck-spacing-small);
	}
/* Disable default annotation shadow inside rotator with fake panels. */
.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper {
		box-shadow: none;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-fake-panel-offset-horizontal: 6px;
	--ck-balloon-fake-panel-offset-vertical: 6px;
}
/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */
.ck .ck-fake-panel div {
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}
.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}
.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}
.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);
}
/* If balloon is positioned above element, we need to move fake panel to the top. */
.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {
	--ck-balloon-fake-panel-offset-vertical: -6px;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		box-shadow: var(--ck-drop-shadow), 0 0;

		border-width: 0 1px 1px;
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck-vertical-form > .ck-button:nth-last-child(2)::after {
	border-right: 1px solid var(--ck-color-base-border);
}
.ck.ck-responsive-form {
	padding: var(--ck-spacing-large);
}
.ck.ck-responsive-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}
[dir="ltr"] .ck.ck-responsive-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
.ck.ck-responsive-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-width));
}

		.ck.ck-responsive-form .ck-labeled-field-view {
			margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
		}

			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text,
			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number {
				min-width: 0;
				width: 100%;
			}

			/* Let the long error messages wrap in the narrow form. */
			.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error {
				white-space: normal;
			}

		/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */
			.ck.ck-responsive-form > .ck-button:nth-last-child(2)::after {
				border-right: 1px solid var(--ck-color-base-border);
			}

		.ck.ck-responsive-form > .ck-button:nth-last-child(1),
		.ck.ck-responsive-form > .ck-button:nth-last-child(2) {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-large);
			border-radius: 0;
		}

			.ck.ck-responsive-form > .ck-button:nth-last-child(1):not(:focus), .ck.ck-responsive-form > .ck-button:nth-last-child(2):not(:focus) {
				border-top: 1px solid var(--ck-color-base-border);
			}

			[dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

			[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

				[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1):last-of-type, [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2):last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));
}
.ck.ck-search > .ck-labeled-field-view .ck-input {
			width: 100%;
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon {
			--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon > .ck-labeled-field-view__input-wrapper > .ck-icon {
				opacity: .5;
				pointer-events: none;
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
					padding-left: var(--ck-search-field-view-horizontal-spacing);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty) {
						padding-left: var(--ck-search-field-view-horizontal-spacing);
					}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset {
			--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty {
				--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
				min-width: auto;
				min-height: auto;

				background: none;
				opacity: .5;
				padding: 0;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					left: var(--ck-spacing-medium);
	}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover {
					opacity: 1;
				}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty) {
						padding-right: var(--ck-search-field-view-horizontal-spacing);
					}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
					padding-right: var(--ck-search-field-view-horizontal-spacing);
	}
.ck.ck-search > .ck-search__results {
		min-width: 100%;
	}
.ck.ck-search > .ck-search__results > .ck-search__info {
			width: 100%;
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}
.ck.ck-search > .ck-search__results > .ck-search__info * {
				white-space: normal;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				font-weight: bold;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:last-child {
				margin-top: var(--ck-spacing-medium);
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-toolbar-spinner-size: 18px;
}
.ck.ck-spinner-container {
	width: var(--ck-toolbar-spinner-size);
	height: var(--ck-toolbar-spinner-size);
	animation: 1.5s infinite ck-spinner-rotate linear;
}
@media (prefers-reduced-motion: reduce) {
.ck.ck-spinner-container {
		animation-duration: 3s;
}
	}
.ck.ck-spinner {
	width: var(--ck-toolbar-spinner-size);
	height: var(--ck-toolbar-spinner-size);
	border-radius: 50%;
	border: 2px solid var(--ck-color-text);
	border-top-color: transparent;
}
@keyframes ck-spinner-rotate {
	to {
		transform: rotate(360deg)
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.
 * This bug is especially visible when rows=1.
 */
.ck-textarea {
	overflow-x: hidden
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-block-toolbar-button: var(--ck-color-text);
	--ck-block-toolbar-button-size: var(--ck-font-size-normal);
}
.ck.ck-block-toolbar-button {
	color: var(--ck-color-block-toolbar-button);
	font-size: var(--ck-block-toolbar-size);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar {
	border-radius: 0;

	background: var(--ck-color-toolbar-background);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border);
}
.ck-rounded-corners .ck.ck-toolbar,
	.ck.ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-toolbar .ck.ck-toolbar__separator {
		height: var(--ck-icon-size);
		width: 1px;
		min-width: 1px;
		background: var(--ck-color-toolbar-border);

		/*
		 * These margins make the separators look better in balloon toolbars (when aligned with the "tip").
		 * See https://github.com/ckeditor/ckeditor5/issues/7493.
		 */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar .ck-toolbar__line-break {
		height: 0;
	}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break) {
			/* (#11) Separate toolbar items. */
			margin-right: var(--ck-spacing-small);
		}
/* Don't display a separator after an empty items container, for instance,
		when all items were grouped */
.ck.ck-toolbar > .ck-toolbar__items:empty + .ck.ck-toolbar__separator {
			display: none;
		}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break),
	.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown {
		/* Make sure items wrapped to the next line have v-spacing */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar.ck-toolbar_vertical {
		/* Items in a vertical toolbar span the entire width. */
		padding: 0;

		/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */
	}
.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items > .ck {
			/* Items in a vertical toolbar should span the horizontal space. */
			width: 100%;

			/* Items in a vertical toolbar should have no margin. */
			margin: 0;

			/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */
			border-radius: 0;
		}
.ck.ck-toolbar.ck-toolbar_compact {
		/* No spacing around items. */
		padding: 0;
	}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > * {
			/* Compact toolbar items have no spacing between them. */
			margin: 0;

			/* "Middle" children should have no rounded corners. */
		}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > *:not(:first-child):not(:last-child) {
				border-radius: 0;
			}
/*
		 * Dropdown button has asymmetric padding to fit the arrow.
		 * This button has no arrow so let's revert that padding back to normal.
		 */
.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck.ck-button.ck-dropdown__button {
			padding-left: var(--ck-spacing-tiny);
		}
/* A drop-down containing the nested toolbar with configured items. */
/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-dropdown__panel {
			min-width: auto;
		}
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-button > .ck-button__label {
			max-width: 7em;
			width: auto;
		}
.ck.ck-toolbar:focus {
		outline: none;
	}
.ck-toolbar-container .ck.ck-toolbar {
		border: 0;
	}
/* stylelint-disable */
/*
 * Styles for RTL toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck {
		margin-right: 0;
	}
[dir="rtl"] .ck.ck-toolbar:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"]:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {
		/* (#11) Separate toolbar items. */
		margin-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
		margin-left: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:first-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="rtl"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="rtl"] > .ck.ck-toolbar__separator {
		margin-left: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="rtl"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-left: var(--ck-spacing-small);
	}
/*
 * Styles for LTR toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="ltr"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
		margin-right: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:first-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="ltr"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="ltr"] > .ck.ck-toolbar__separator {
		margin-right: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="ltr"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-right: var(--ck-spacing-small);
	}
/* stylelint-enable */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-balloon-panel.ck-tooltip {
	--ck-balloon-border-width: 0px;
	--ck-balloon-arrow-offset: 0px;
	--ck-balloon-arrow-half-width: 4px;
	--ck-balloon-arrow-height: 4px;
	--ck-tooltip-text-padding: 4px;
	--ck-color-panel-background: var(--ck-color-tooltip-background);

	padding: 0 var(--ck-spacing-medium);

	/* Reset balloon panel styles */
	box-shadow: none;
}
.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text {
		font-size: .9em;
		line-height: 1.5;
		color: var(--ck-color-tooltip-text);
	}
.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text {
		white-space: break-spaces;
		display: inline-block;
		padding: var(--ck-tooltip-text-padding) 0;
		max-width: 200px;
	}
/* Hide the default shadow of the .ck-balloon-panel tip */
.ck.ck-balloon-panel.ck-tooltip::before {
		display: none;
	}

/* Editor */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content {
			border-radius: 0;

			border: 1px solid var(--ck-color-base-border);
			border-bottom-width: 0;
		}
.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,
	.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky {
				border-bottom-width: 1px;
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar {
				border: 0;
				border-bottom: 1px solid var(--ck-color-base-border);
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar {
				border: 0;
			}
/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */
.ck.ck-editor__main > .ck-editor__editable {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */
	background: var(--ck-color-base-background);

	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__main > .ck-editor__editable,
	.ck.ck-editor__main > .ck-editor__editable.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
.ck.ck-editor__main > .ck-editor__editable:not(.ck-focused) {
		border-color: var(--ck-color-base-border);
	}

/* Plugins */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-bookmark-icon-hover-fill-color: var(--ck-color-widget-hover-border);
	--ck-bookmark-icon-selected-fill-color: var(--ck-color-focus-border);
	--ck-bookmark-icon-animation-duration: var(--ck-widget-handler-animation-duration);
	--ck-bookmark-icon-animation-curve: var(--ck-widget-handler-animation-curve);
}
.ck .ck-bookmark.ck-widget {
		display: inline-block;
		outline: none;
	}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon__fill {
			transition: fill var(--ck-bookmark-icon-animation-duration) var(--ck-bookmark-icon-animation-curve);
		}
.ck .ck-bookmark.ck-widget:hover .ck-bookmark__icon .ck-icon__fill {
				fill: var(--ck-bookmark-icon-hover-fill-color);
			}
.ck .ck-bookmark.ck-widget.ck-widget_selected .ck-bookmark__icon .ck-icon__fill {
				fill: var(--ck-bookmark-icon-selected-fill-color);
			}
.ck .ck-bookmark.ck-widget.ck-widget_selected,
		.ck .ck-bookmark.ck-widget.ck-widget_selected:hover {
			outline: none;
		}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon {
			position: relative;
			display: block;
			/* To make it align with text baseline. */
			top: -0.1em;
		}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon {
				height: 1.2em;
				width: auto;
				vertical-align: middle;
			}
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the bookmark UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-bookmark-selection {
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-bookmark-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-bookmark-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-bookmark-form-width: 300px;
	}
	}
.ck.ck-bookmark-form {
	width: var(--ck-bookmark-form-width);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Makes element unselectable.
 */
.ck.ck-bookmark-balloon .ck.ck-toolbar > .ck-toolbar__items {
			flex-wrap: nowrap;
		}
.ck.ck-bookmark-toolbar__preview {
	padding: 0 var(--ck-spacing-medium);
	max-width: var(--ck-input-width);
	min-width: 3em;
	font-weight: normal;
	text-overflow: ellipsis;
	text-align: center;
	overflow: hidden;

	-moz-user-select: none;

	-webkit-user-select: none;

	-ms-user-select: none;

	user-select: none;
	cursor: default;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-clipboard-drop-target-dot-width: 12px;
	--ck-clipboard-drop-target-dot-height: 8px;
	--ck-clipboard-drop-target-color: var(--ck-color-focus-border);
}
/*
	 * Vertical drop target (in text).
	 */
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			bottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			border: 1px solid var(--ck-clipboard-drop-target-color);
			background: var(--ck-clipboard-drop-target-color);
			margin-left: -1px;

			/* The triangle above the marker */
		}
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span::after {
				content: '';
				width: 0;
				height: 0;

				display: block;
				position: absolute;
				left: 50%;
				top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));

				transform: translateX(-50%);
				border-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;
				border-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));
				border-style: solid;
			}
/*
	 * Styles of the widget that it a drop target.
	 */
.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;
	}
/*
	 * Styles of the widget being dragged (its preview).
	 */
.ck.ck-editor__editable .ck-widget:-webkit-drag {
		zoom: 0.6;
		outline: none !important;
	}
.ck.ck-clipboard-drop-target-line {
	height: 0;
	border: 1px solid var(--ck-clipboard-drop-target-color);
	background: var(--ck-clipboard-drop-target-color);
	margin-top: -1px;
}
.ck.ck-clipboard-drop-target-line::before {
		content: '';
		position: absolute;
		top: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));
		width: 0;
		height: 0;
		border-style: solid;
	}
[dir="ltr"] .ck.ck-clipboard-drop-target-line::before {
			left: -1px;

			border-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);
			border-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);
	}
[dir="rtl"] .ck.ck-clipboard-drop-target-line::before {
			right: -1px;

			border-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;
			border-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-code-block-label-background: hsl(0, 0%, 46%);
}
.ck.ck-editor__editable pre[data-language]::after {
	top: -1px;
	right: 10px;
	background: var(--ck-color-code-block-label-background);

	font-size: 10px;
	font-family: var(--ck-font-face);
	line-height: 16px;
	padding: var(--ck-spacing-tiny) var(--ck-spacing-medium);
	color: hsl(0, 0%, 100%);
	white-space: nowrap;
}
.ck.ck-code-block-dropdown .ck-dropdown__panel {
	/* There could be dozens of languages available. Use scroll to prevent a 10e6px dropdown. */
	max-height: 250px;
	overflow-y: auto;
	overflow-x: hidden;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* See ckeditor/ckeditor5#936. */
@media (forced-colors: active) {
		.ck.ck-placeholder, .ck .ck-placeholder {
		/*
		 * This is needed for Edge on Windows to use the right color for the placeholder content (::before).
		 * See https://github.com/ckeditor/ckeditor5/issues/14907.
		 */
		forced-color-adjust: preserve-parent-color;
		}
	}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		cursor: text;
	}
@media (forced-colors: none) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			color: var(--ck-color-engine-placeholder-text);
		}
	}
@media (forced-colors: active) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			/*
			 * In the high contrast mode there is no telling between regular and placeholder text. Using
			 * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			font-style: italic;

			/*
			 * Without this margin, the caret will not show up and blink when the user puts the selection
			 * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			margin-left: 1px;
		}
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-find-and-replace-form {
	width: 400px;

	/*
	 * The <form> needs tabindex="-1" for proper Esc handling after being clicked
	 * but the side effect is that this creates a nasty focus outline in some browsers.
	 */
}
.ck.ck-find-and-replace-form:focus {
		outline: none;
	}
/* Generic styles for the form inputs and actions. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs,
	.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex: 1 1 auto;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		align-content: stretch;

		padding: var(--ck-spacing-large);
		margin: 0;

	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button {
			flex: 0 0 auto;
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-left: var(--ck-spacing-standard);
			}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-right: var(--ck-spacing-standard);
			}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view {
			flex: 1 1 auto;
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view .ck-input, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view .ck-input {
				width: 100%;
				min-width: 50px;
			}
/* Styles specific for inputs area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs {
		/* To display all controls in line when there's an error under the input */
		align-items: flex-start;
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-prev > .ck-icon {
			transform: rotate(90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-next > .ck-icon {
			transform: rotate(-90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
			top: 50%;
			transform: translateY(-50%);

			color: var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				left: var(--ck-spacing-standard);
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
			flex: 0 0 100%;
			padding-top: var(--ck-spacing-standard);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-left: 0;
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-right: 0;
	}
/* Styles specific for actions area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex-wrap: wrap;
		justify-content: flex-end;
		margin-top: calc( -1 * var(--ck-spacing-large) );
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find {
			font-weight: bold;

			/* Beef the find button up a little. It's the main action button in the form */
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find .ck-button__label {
				padding-left: var(--ck-spacing-large);
				padding-right: var(--ck-spacing-large);
			}
.ck.ck-find-and-replace-form .ck-switchbutton {
		width: 100%;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
	}
@media screen and (max-width: 600px) {
	.ck.ck-find-and-replace-form {
		width: 300px;

		/* Don't let the form overflow from the dialog (https://github.com/ckeditor/ckeditor5-commercial/issues/5913) */
		max-width: 100%;

		/* Styles specific for inputs area. */
	}
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__input {
			flex-wrap: wrap;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input .ck-labeled-field-view {
				flex: 1 0 auto;
				width: 100%;
				margin-bottom: var(--ck-spacing-standard);
			}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-right: 0;
	}

					.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type .ck-button__label {
						width: 100%;
						text-align: center;
					}

		/* Styles specific for actions area. */
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) {
			flex-wrap: wrap;
			flex: 1 1 auto;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-right: 0;
	}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button .ck-button__label {
					width: 100%;
					text-align: center;
				}
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Resize dropdown's button label. */
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label {
		width: 8em;
	}
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item {
		min-width: 18em;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-html-embed-content-width: calc(100% - 1.5 * var(--ck-icon-size));
	--ck-html-embed-source-height: 10em;
	--ck-html-embed-unfocused-outline-width: 1px;
	--ck-html-embed-content-min-height: calc(var(--ck-icon-size) + var(--ck-spacing-standard));

	--ck-html-embed-source-disabled-background: var(--ck-color-base-foreground);
	--ck-html-embed-source-disabled-color: hsl(0deg 0% 45%);
}
/* The feature container. */
.ck-widget.raw-html-embed {
	font-size: var(--ck-font-size-base);
	background-color: var(--ck-color-base-foreground);
}
.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover) {
		outline: var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}
/* HTML embed widget itself should respect UI language direction */
.ck-widget.raw-html-embed[dir="ltr"] {
		text-align: left;
	}
.ck-widget.raw-html-embed[dir="rtl"] {
		text-align: right;
	}
/* ----- Embed label in the upper left corner ----------------------------------------------- */
.ck-widget.raw-html-embed::before {
		content: attr(data-html-embed-label);
		top: calc(-1 * var(--ck-html-embed-unfocused-outline-width));
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: var(--ck-color-base-background);
		font-size: var(--ck-font-size-tiny);
		font-family: var(--ck-font-face);
	}
.ck-widget.raw-html-embed[dir="rtl"]::before {
		left: auto;
		right: var(--ck-spacing-standard);
	}
/* Make space for label but it only collides in LTR languages */
.ck-widget.raw-html-embed[dir="ltr"] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0px;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
		background: var(--ck-color-focus-border);
	}
.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover::before {
		top: 0px;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
.ck-widget.raw-html-embed .raw-html-embed__content-wrapper {
		padding: var(--ck-spacing-standard);
	}
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		top: var(--ck-spacing-standard);
		right: var(--ck-spacing-standard);
	}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button {
			color: var(--ck-color-button-save);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button {
			color: var(--ck-color-button-cancel);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child) {
			margin-top: var(--ck-spacing-small);
		}
.ck-widget.raw-html-embed[dir="rtl"] .raw-html-embed__buttons-wrapper {
		left: var(--ck-spacing-standard);
		right: auto;
	}
/* The edit source element. */
.ck-widget.raw-html-embed .raw-html-embed__source {
		box-sizing: border-box;
		height: var(--ck-html-embed-source-height);
		width: var(--ck-html-embed-content-width);
		resize: none;
		min-width: 0;
		padding: var(--ck-spacing-standard);

		font-family: monospace;
		tab-size: 4;
		white-space: pre-wrap;
		font-size: var(--ck-font-size-base); /* Safari needs this. */

		/* HTML code is direction–agnostic. */
		text-align: left;
		direction: ltr;
	}
.ck-widget.raw-html-embed .raw-html-embed__source[disabled] {
			background: var(--ck-html-embed-source-disabled-background);
			color: var(--ck-html-embed-source-disabled-color);

			/* Safari needs this for the proper text color in disabled input (https://github.com/ckeditor/ckeditor5/issues/8320). */
			-webkit-text-fill-color: var(--ck-html-embed-source-disabled-color);
			opacity: 1;
		}
/* The preview data container. */
.ck-widget.raw-html-embed .raw-html-embed__preview {
		min-height: var(--ck-html-embed-content-min-height);
		width: var(--ck-html-embed-content-width);

		/* Disable all mouse interaction as long as the editor is not read–only. */
	}
.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview {
			pointer-events: none;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		box-sizing: border-box;
		background-color: var(--ck-color-base-foreground);
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content > * {
			margin-left: auto;
			margin-right: auto;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		color: var(--ck-html-embed-source-disabled-color)
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-image-insert-insert-by-url-width: 250px;
}
.ck.ck-image-insert-url {
	--ck-input-width: 100%;
}
.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		grid-column-gap: var(--ck-spacing-large);
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save,
		.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel {
			justify-content: center;
			min-width: auto;
		}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label {
			color: var(--ck-color-text);
		}
.ck.ck-image-insert-form > .ck.ck-button {
		display: block;
		width: 100%;
	}
[dir="ltr"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: left;
	}
[dir="rtl"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: right;
	}
.ck.ck-image-insert-form > .ck.ck-collapsible {

		min-width: var(--ck-image-insert-insert-by-url-width);
	}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:first-child) {
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) {
			border-bottom: 1px solid var(--ck-color-base-border);
		}
/* This is the case when there are no other integrations configured than insert by URL */
.ck.ck-image-insert-form > .ck.ck-image-insert-url {
		min-width: var(--ck-image-insert-insert-by-url-width);
		padding: var(--ck-spacing-large);
	}
.ck.ck-image-insert-form:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-image-upload-icon: hsl(0, 0%, 100%);
	--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);

	/* Match the icon size with the linked image indicator brought by the link image feature. */
	--ck-image-upload-icon-size: 20;
	--ck-image-upload-icon-width: 2px;
	--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
.ck-image-upload-complete-icon {
	opacity: 0;
	background: var(--ck-color-image-upload-icon-background);
	animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;
	animation-fill-mode: forwards, forwards;
	animation-duration: 500ms, 500ms;

	/* To make animation scalable. */
	font-size: calc(1px * var(--ck-image-upload-icon-size));

	/* Hide completed upload icon after 3 seconds. */
	animation-delay: 0ms, 3000ms;

	/*
	 * Use CSS math to simulate container queries.
	 * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
	 */
	overflow: hidden;
	width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
	height: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));

	/* This is check icon element made from border-width mixed with animations. */
}
.ck-image-upload-complete-icon::after {
		/* Because of border transformation we need to "hard code" left position. */
		left: 25%;

		top: 50%;
		opacity: 0;
		height: 0;
		width: 0;

		transform: scaleX(-1) rotate(135deg);
		transform-origin: left top;
		border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);

		animation-name: ck-upload-complete-icon-check;
		animation-duration: 500ms;
		animation-delay: 500ms;
		animation-fill-mode: forwards;

		/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */
		box-sizing: border-box;
	}
@media (prefers-reduced-motion: reduce) {
.ck-image-upload-complete-icon {
		animation-duration: 0ms;
}

		.ck-image-upload-complete-icon::after {
			animation: none;
			opacity: 1;
			width: 0.3em;
			height: 0.45em;
		}
	}
@keyframes ck-upload-complete-icon-show {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}
@keyframes ck-upload-complete-icon-hide {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}
@keyframes ck-upload-complete-icon-check {
	0% {
		opacity: 1;
		width: 0;
		height: 0;
	}
	33% {
		width: 0.3em;
		height: 0;
	}
	100% {
		opacity: 1;
		width: 0.3em;
		height: 0.45em;
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);
	--ck-upload-placeholder-loader-size: 32px;
	--ck-upload-placeholder-image-aspect-ratio: 2.8;
}
.ck .ck-image-upload-placeholder {
	/* We need to control the full width of the SVG gray background. */
	width: 100%;
	margin: 0;
}
.ck .ck-image-upload-placeholder.image-inline {
		width: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );
	}
.ck .ck-image-upload-placeholder img {
		/*
		 * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.
		 * There's nothing special about this number except that it should make the image placeholder look like
		 * a real image during this short period after the upload started and before the image was read from the
		 * file system (and a rich preview was loaded).
		 */
		aspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);
	}
.ck .ck-upload-placeholder-loader {
	width: 100%;
	height: 100%;
}
.ck .ck-upload-placeholder-loader::before {
		width: var(--ck-upload-placeholder-loader-size);
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		border-top: 3px solid var(--ck-color-upload-placeholder-loader);
		border-right: 2px solid transparent;
		animation: ck-upload-placeholder-loader 1s linear infinite;
	}
@keyframes ck-upload-placeholder-loader {
	to {
		transform: rotate( 360deg );
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Showing animation. */
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
			animation: fadeIn 700ms;
		}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
				opacity: 1;
				animation: none;
		}
			}
/* Upload progress bar. */
.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		height: 2px;
		width: 0;
		background: var(--ck-color-upload-bar-background);
		transition: width 100ms;
	}
@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-text-alternative-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-text-alternative-form-width: 300px;
	}
	}
.ck.ck-text-alternative-form.ck-responsive-form {
		width: var(--ck-text-alternative-form-width);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-image-custom-resize-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-image-custom-resize-form-width: 300px;
	}
	}
.ck.ck-image-custom-resize-form.ck-responsive-form {
		width: var(--ck-image-custom-resize-form-width);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Class added to span element surrounding currently selected link. */
.ck .ck-link_selected {
	background: var(--ck-color-link-selected-background);

	/* Give linked inline images some outline to let the user know they are also part of the link. */
}
.ck .ck-link_selected span.image-inline {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);
	}
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the link UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-link-selection {
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-link-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-bookmark-icon-size: calc( var(--ck-icon-size) * 0.7); /* 0.7 = 14/20 cause default the icon size is 20px */
}
.ck.ck-toolbar.ck-link-toolbar > .ck-toolbar__items {
		flex-wrap: nowrap;
	}
a.ck.ck-button.ck-link-toolbar__preview {
	padding: 0 var(--ck-spacing-medium);
	color: var(--ck-color-link-default);
	cursor: pointer;
	justify-content: center;
}
a.ck.ck-button.ck-link-toolbar__preview .ck.ck-button__label {
		text-overflow: ellipsis;

		/* Match the box model of the link editor form's input so the balloon
		does not change width when moving between actions and the form. */
		max-width: var(--ck-input-width);
	}
a.ck.ck-button.ck-link-toolbar__preview,
	a.ck.ck-button.ck-link-toolbar__preview:hover,
	a.ck.ck-button.ck-link-toolbar__preview:focus,
	a.ck.ck-button.ck-link-toolbar__preview:active {
		background: none;
	}
a.ck.ck-button.ck-link-toolbar__preview:active {
		box-shadow: none;
	}
a.ck.ck-button.ck-link-toolbar__preview:hover,
	a.ck.ck-button.ck-link-toolbar__preview:focus {
		text-decoration: underline;
	}
a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
		width: var(--ck-link-bookmark-icon-size);
		height: var(--ck-link-bookmark-icon-size);
	}
[dir="ltr"] a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
			margin-right: var(--ck-spacing-tiny);
			margin-left: var(--ck-spacing-small);
	}
[dir="rtl"] a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
			margin-left: var(--ck-spacing-tiny);
			margin-right: var(--ck-spacing-small);
	}
a.ck.ck-button.ck-link-toolbar__preview:has( .ck-icon ) {
		padding-left: var(--ck-spacing-extra-tiny );
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-panel-width: 340px;
	/* The height of the text inside the link providers list button. */
	--ck-link-provider-list-item-text-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));
	/* The height of the link providers list item contained paddings. */
	--ck-link-provider-list-item-height: calc(var(--ck-link-provider-list-item-text-height) + var(--ck-spacing-small) + var(--ck-spacing-small));
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-panel-width: 300px;
	}
	}
/* Generic class that wraps each link balloon view. */
.ck.ck-form.ck-link-form {
	width: var(--ck-link-panel-width);
	padding-bottom: 0;
}
@media screen and (max-width: 600px) {
.ck.ck-form.ck-link-form.ck-responsive-form .ck-labeled-field-view {
				margin: 0;
		}
	}
.ck.ck-form.ck-link-form .ck-link-form__providers-list {
		border-top: 1px solid var(--ck-color-base-border);

		/* The list should be scrollable when there are more than 4 items. */
	}
.ck.ck-form.ck-link-form .ck-link-form__providers-list:has(.ck-list__item:nth-child(n + 5)) {
			overflow: auto;
			/* Scroll should appear when there are more than 5 item on the list.
			* var(--ck-spacing-large) - is a form padding.
			* 1px - is a border width. */
			max-height: calc(var(--ck-link-provider-list-item-height) * 4 + var(--ck-spacing-large) + 1px);
		}
.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button {
			padding: var(--ck-spacing-small) var(--ck-spacing-large);
			border-radius: 0;
		}
.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button > .ck-button__label {
				overflow: hidden;
				text-overflow: ellipsis;
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* Match the icon size with the upload indicator brought by the image upload feature. */
	--ck-link-image-indicator-icon-size: 20;
	--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
/* Linked image indicator */
.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			content: "";

			/*
			 * Smaller images should have the icon closer to the border.
			 * Match the icon position with the upload indicator brought by the image upload feature.
			 */
			top: min(var(--ck-spacing-medium), 6%);
			right: min(var(--ck-spacing-medium), 6%);

			background-color: hsla(0, 0%, 0%, .4);
			background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+);
			background-size: 14px;
			background-repeat: no-repeat;
			background-position: center;
			border-radius: 100%;

			/*
			* Use CSS math to simulate container queries.
			* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
			*/
			overflow: hidden;
			width: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
			height: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-properties-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-properties-width: 300px;
	}
	}
.ck.ck-link-properties {
	width: var(--ck-link-properties-width);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-providers-width: 340px;
	--ck-link-list-view-max-height: 240px;
	--ck-link-list-view-icon-size: calc( var(--ck-icon-size) * 0.8); /* 0.8 = 16/20 cause default the icon size is 20px */
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-providers-width: 300px;
	}
	}
.ck.ck-link-providers {
	width: var(--ck-link-providers-width);
}
.ck.ck-link-providers .ck-form__header__label {
		overflow: hidden;
		text-overflow: ellipsis;
	}
.ck.ck-link-providers > .ck-link-providers__list {
		max-height: min( var(--ck-link-list-view-max-height), 40vh );
	}
.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-icon {
				width: var(--ck-link-list-view-icon-size);
				height: var(--ck-link-list-view-icon-size);
			}
.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-button__label {
				overflow: hidden;
				text-overflow: ellipsis;
				white-space: nowrap;
			}
.ck.ck-link-providers .ck-link__empty-list-info {
		padding: calc( 2 * var(--ck-spacing-large) ) var(--ck-spacing-medium);
		text-align: center;
		font-style: italic;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* When there are no list styles and there is no collapsible. */
.ck.ck-list-properties.ck-list-properties_without-styles {
		padding: var(--ck-spacing-large);
	}
.ck.ck-list-properties.ck-list-properties_without-styles > * {
			min-width: 14em;
		}
.ck.ck-list-properties.ck-list-properties_without-styles > * + * {
				margin-top: var(--ck-spacing-standard);
			}
/*
	 * When the numbered list property fields (start at, reversed) should be displayed,
	 * more horizontal space is needed. Reconfigure the style grid to create that space.
	 */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-list-styles-list {
			grid-template-columns: repeat( 4, auto );
		}
/* When list styles are rendered and property fields are in a collapsible. */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible {
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * {
					width: 100%;
				}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * + * {
						margin-top: var(--ck-spacing-standard);
					}
.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input {
		min-width: auto;
		width: 100%;
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order {
		background: transparent;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: calc(-1 * var(--ck-spacing-tiny));
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active, .ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover {
			box-shadow: none;
			border-color: transparent;
			background: none;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-list-style-button-size: 44px;
}
.ck.ck-list-styles-list {
	grid-template-columns: repeat( 3, auto );
	row-gap: var(--ck-spacing-medium);
	column-gap: var(--ck-spacing-medium);
	padding: var(--ck-spacing-large);
}
.ck.ck-list-styles-list .ck-button {
		/* Make the button look like a thumbnail (the icon "takes it all"). */
		width: var(--ck-list-style-button-size);
		height: var(--ck-list-style-button-size);
		padding: 0;

		/*
		 * Buttons are aligned by the grid so disable default button margins to not collide with the
		 * gaps in the grid.
		 */
		margin: 0;

		/*
		 * Make sure the button border (which is displayed on focus, BTW) does not steal pixels
		 * from the button dimensions and, as a result, decrease the size of the icon
		 * (which becomes blurry as it scales down).
		 */
		box-sizing: content-box;
	}
.ck.ck-list-styles-list .ck-button .ck-icon {
			width: var(--ck-list-style-button-size);
			height: var(--ck-list-style-button-size);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-media-embed-placeholder-icon-size: 3em;

	--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);
	--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);
}
.ck-media__wrapper {
	margin: 0 auto;
}
.ck-media__wrapper .ck-media__placeholder {
		padding: calc( 3 * var(--ck-spacing-standard) );
		background: var(--ck-color-base-foreground);
	}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: var(--ck-media-embed-placeholder-icon-size);
			margin-bottom: var(--ck-spacing-large);
			background-position: center;
			background-size: cover;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon {
				width: 100%;
				height: 100%;
			}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text {
			color: var(--ck-color-media-embed-placeholder-url-text);
			white-space: nowrap;
			text-align: center;
			font-style: italic;
			text-overflow: ellipsis;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: var(--ck-color-media-embed-placeholder-url-text-hover);
				cursor: pointer;
				text-decoration: underline;
			}
.ck-media__wrapper[data-oembed-url*="open.spotify.com"] {
		max-width: 300px;
		max-height: 380px;
	}
.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {
		background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder {
		background: hsl(220, 46%, 48%);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(220, 100%, 90%);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder {
		background: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));
	}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(302, 100%, 94%);
		}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {
		/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */
		background: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );
	}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(201, 100%, 86%);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-content-color-mention-background: hsla(341, 100%, 30%, 0.1);
	--ck-content-color-mention-text: hsl(341, 100%, 30%);
}
.ck-content .mention {
	background: var(--ck-content-color-mention-background);
	color: var(--ck-content-color-mention-text);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-restricted-editing-exception-background: hsla(31, 100%, 65%, .2);
	--ck-color-restricted-editing-exception-hover-background: hsla(31, 100%, 65%, .35);
	--ck-color-restricted-editing-exception-brackets: hsla(31, 100%, 40%, .4);
	--ck-color-restricted-editing-selected-exception-background: hsla(31, 100%, 65%, .5);
	--ck-color-restricted-editing-selected-exception-brackets: hsla(31, 100%, 40%, .6);
}
.ck-editor__editable .restricted-editing-exception {
	transition: .2s ease-in-out background;
	background-color: var(--ck-color-restricted-editing-exception-background);
	border: 1px solid;
	border-image: linear-gradient(
		to right,
		var(--ck-color-restricted-editing-exception-brackets) 0%,
		var(--ck-color-restricted-editing-exception-brackets) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),
		var(--ck-color-restricted-editing-exception-brackets) 100%
	) 1;
}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable .restricted-editing-exception {
		transition: none;
}
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected {
		background-color: var(--ck-color-restricted-editing-selected-exception-background);
		border-image: linear-gradient(
			to right,
			var(--ck-color-restricted-editing-selected-exception-brackets) 0%,
			var(--ck-color-restricted-editing-selected-exception-brackets) 5px,
			var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),
			var(--ck-color-restricted-editing-selected-exception-brackets) 100%
		) 1;
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_collapsed {
		/* Empty exception should have the same width as exception with at least 1 char */
		padding-left: 1ch;
	}
.ck-restricted-editing_mode_restricted {
	cursor: default;

	/* We also have to override all elements inside the restricted editable to prevent cursor switching between default and text
	during the pointer movement. */
}
.ck-restricted-editing_mode_restricted * {
		cursor: default;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception {
		cursor: text;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception * {
			cursor: text;
		}
.ck-restricted-editing_mode_restricted .restricted-editing-exception:hover {
			background: var(--ck-color-restricted-editing-exception-hover-background);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-character-grid-tile-size: 24px;
}
.ck.ck-character-grid {
	overflow-y: auto;
	overflow-x: hidden;
}
.ck.ck-character-grid .ck-character-grid__tiles {
		grid-template-columns: repeat(auto-fill, minmax(var(--ck-character-grid-tile-size), 1fr));
		margin: var(--ck-spacing-standard) var(--ck-spacing-large);
		grid-gap: var(--ck-spacing-standard);
	}
.ck.ck-character-grid .ck-character-grid__tile {
		width: var(--ck-character-grid-tile-size);
		height: var(--ck-character-grid-tile-size);
		min-width: var(--ck-character-grid-tile-size);
		min-height: var(--ck-character-grid-tile-size);
		font-size: 1.5em;
		padding: 0;
		transition: .2s ease box-shadow;
		border: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-character-grid .ck-character-grid__tile {
			transition: none;
	}
		}
.ck.ck-character-grid .ck-character-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-character-grid .ck-character-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
/* Make sure the glyph is rendered in the center of the button */
.ck.ck-character-grid .ck-character-grid__tile .ck-button__label {
			line-height: var(--ck-character-grid-tile-size);
			width: 100%;
			text-align: center;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-character-info {
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	border-top: 1px solid var(--ck-color-base-border);
}
.ck.ck-character-info > * {
		text-transform: uppercase;
		font-size: var(--ck-font-size-small);
	}
.ck.ck-character-info .ck-character-info__name {
		max-width: 280px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-character-info .ck-character-info__code {
		opacity: .6;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-special-characters-navigation > .ck-label {
		max-width: 160px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-special-characters-navigation > .ck-dropdown .ck-dropdown__panel {
		/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */
		max-height: 250px;
		overflow-y: auto;
		overflow-x: hidden;
	}
@media screen and (max-width: 600px) {
.ck.ck-special-characters-navigation {
		max-width: 190px;
}

		.ck.ck-special-characters-navigation > .ck-form__header__label {
			text-overflow: ellipsis;
			overflow: hidden;
		}
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active > .ck-button > .ck-button__label {
	font-style: italic;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-button-width: 120px;
	--ck-style-panel-button-height: 80px;
	--ck-style-panel-button-label-background: hsl(0, 0%, 94.1%);
	--ck-style-panel-button-hover-label-background: hsl(0, 0%, 92.1%);
	--ck-style-panel-button-hover-border-color: hsl(0, 0%, 70%);
}
.ck.ck-style-panel .ck-style-grid {
	row-gap: var(--ck-spacing-large);
	column-gap: var(--ck-spacing-large);
}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		--ck-color-button-default-hover-background: var(--ck-color-base-background);
		--ck-color-button-default-active-background: var(--ck-color-base-background);

		padding: 0;
		width: var(--ck-style-panel-button-width);
		height: var(--ck-style-panel-button-height);

		/* Let default .ck-button :focus styles apply */
	}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus) {
			border: 1px solid var(--ck-color-base-border);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label {
			height: 22px;
			line-height: 22px;
			width: 100%;
			padding: 0 var(--ck-spacing-medium);
			overflow: hidden;
			text-overflow: ellipsis;
			flex-shrink: 0;
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			width: 100%;
			overflow: hidden;
			opacity: .9;

			padding: var(--ck-spacing-medium);
			background: var(--ck-color-base-background);
			border: 2px solid var(--ck-color-base-background);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled {
			--ck-color-button-default-disabled-background: var(--ck-color-base-foreground);

			/* Let default .ck-button :focus styles apply */
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus) {
				border-color: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview {
				opacity: .4;

				border-color: var(--ck-color-base-foreground);
				filter: saturate(.3);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on {
			border-color: var(--ck-color-base-active);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label {
				box-shadow: 0 -1px 0 var(--ck-color-base-active);
				z-index: 1; /* Stay on top of the preview with the shadow. */
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover {
				border-color: var(--ck-color-base-active-focus);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on) .ck-button__label {
				background: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on):hover .ck-button__label {
				background: var(--ck-style-panel-button-hover-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) {
			border-color: var(--ck-style-panel-button-hover-border-color);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview {
				opacity: 1;
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-style-panel .ck-style-panel__style-group > .ck-label {
		margin: var(--ck-spacing-large) 0;
	}
.ck.ck-style-panel .ck-style-panel__style-group:first-child > .ck-label {
			margin-top: 0;
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-max-height: 470px;
}
.ck.ck-style-panel {
	padding: var(--ck-spacing-large);
	overflow-y: auto;
	max-height: var(--ck-style-panel-max-height);
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
[dir="ltr"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
	}
/* Make sure the focused input is always on top of the dropdown button so its
		   outline and border are never cropped (also when the input is read-only). */
.ck.ck-input-color > .ck.ck-input-text:focus {
			z-index: 0;
		}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
			padding: 0;
		}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
	}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-left: 1px solid transparent;
				}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-right-radius: 0;
				border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-right: 1px solid transparent;
				}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button.ck-disabled {
				background: var(--ck-color-input-disabled-background);
			}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview {
				border-radius: 0;

				width: 20px;
				height: 20px;
				border: 1px solid var(--ck-color-input-border);
			}
.ck-rounded-corners .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview,
	.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
					top: -30%;
					left: 50%;
					height: 150%;
					width: 8%;
					background: hsl(0, 100%, 50%);
					border-radius: 2px;
					transform: rotate(45deg);
					transform-origin: 50%;
				}
.ck.ck-input-color .ck.ck-input-color__remove-color {
		width: 100%;
		padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);

		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus) {
			border-bottom: 1px solid var(--ck-color-input-border);
		}
[dir="ltr"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-left-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
			margin-right: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
				margin-right: 0;
				margin-left: var(--ck-spacing-standard);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Ignore labels that work as fieldset legends */
.ck.ck-form__row > *:not(.ck-label) + * {
			margin-inline-start: var(--ck-spacing-large);
		}
.ck.ck-form__row > .ck-label {
		width: 100%;
		min-width: 100%;
	}
.ck.ck-form__row.ck-table-form__action-row {
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label {
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-insert-table-dropdown-padding: 10px;
	--ck-insert-table-dropdown-box-height: 11px;
	--ck-insert-table-dropdown-box-width: 12px;
	--ck-insert-table-dropdown-box-margin: 1px;
}
.ck .ck-insert-table-dropdown__grid {
	/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */
	width: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);
	padding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;
}
.ck .ck-insert-table-dropdown__label,
.ck[dir=rtl] .ck-insert-table-dropdown__label {
	text-align: center;
}
.ck .ck-insert-table-dropdown-grid-box {
	min-width: var(--ck-insert-table-dropdown-box-width);
	min-height: var(--ck-insert-table-dropdown-box-height);
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid var(--ck-color-base-border);
	border-radius: 1px;
	outline: none;
	transition: none;
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-insert-table-dropdown-grid-box {
		transition: none;
}
	}
.ck .ck-insert-table-dropdown-grid-box:focus {
		box-shadow: none;
	}
.ck .ck-insert-table-dropdown-grid-box.ck-on {
		border-color: var(--ck-color-focus-border);
		background: var(--ck-color-focus-outer-shadow);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-cell-properties-form {
	width: 320px;
}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row {
			align-self: flex-end;
			padding: 0;
			width: 25%;
		}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: var(--ck-spacing-standard);
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-table-focused-cell-background: hsla(212, 90%, 80%, .3);
	--ck-table-content-default-border-color: hsl(0, 0%, 83%);
	--ck-table-border-none-helper-line-color: hsl(0, 0%, 83%);
	--ck-table-border-none-helper-line-style: dashed;
	--ck-table-border-none-helper-line-width: 1px;
}
/* Dashed outline for table without any border. */
.ck-widget.table table[style*="border:none"],
	.ck-widget.table table[style*="border-style:none"] {
		outline: var(--ck-table-content-default-border-color) 1px dashed;
	}
/**
		 * While setting outline is fine, the border should not be modified here
		 * because it overrides the default table cell border color which is not expected.
		 * So do not use `@mixin ck-focus-ring;` here, or any other border styles.
		 * See more: https://github.com/ckeditor/ckeditor5/issues/16979
		 */
.ck-widget.table td.ck-editor__nested-editable, .ck-widget.table th.ck-editor__nested-editable {
			outline: unset;
		}
.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused:not(.ck-editor__editable_selected),
				.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused:not(.ck-editor__editable_selected),
				.ck-widget.table td.ck-editor__nested-editable:not(.ck-editor__editable_selected):focus,
				.ck-widget.table th.ck-editor__nested-editable:not(.ck-editor__editable_selected):focus {
					/* A very slight background to highlight the focused cell */
					background: var(--ck-color-table-focused-cell-background);
					outline: 1px solid var(--ck-color-focus-border);
					outline-offset: -1px; /* progressive enhancement - no IE support */
				}
/*
By using `:where` we set the specificity to 0, but we need to override the inline styles that's why we must use `!important`.
This way it will be easier to override it in custom themes if needed.
*/
:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where( td[style*="border:none"], td[style*="border-style:none"], th[style*="border:none"], th[style*="border-style:none"] ) {
		border: var(--ck-table-border-none-helper-line-style) var(--ck-table-border-none-helper-line-width) var(--ck-table-border-none-helper-line-color) !important;
	}
:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) > :where( table[style*="border-top-style:none"] ),
	:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where( td[style*="border-top-style:none"], th[style*="border-top-style:none"] ) {
		border-top: var(--ck-table-border-none-helper-line-style) var(--ck-table-border-none-helper-line-width) var(--ck-table-border-none-helper-line-color) !important;
	}
:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) > :where( table[style*="border-right-style:none"] ),
	:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where( td[style*="border-right-style:none"], th[style*="border-right-style:none"] ) {
		border-right: var(--ck-table-border-none-helper-line-style) var(--ck-table-border-none-helper-line-width) var(--ck-table-border-none-helper-line-color) !important;
	}
:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) > :where( table[style*="border-bottom-style:none"] ),
	:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where( td[style*="border-bottom-style:none"], th[style*="border-bottom-style:none"] ) {
		border-bottom: var(--ck-table-border-none-helper-line-style) var(--ck-table-border-none-helper-line-width) var(--ck-table-border-none-helper-line-color) !important;
	}
:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) > :where( table[style*="border-left-style:none"] ),
	:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where( td[style*="border-left-style:none"], th[style*="border-left-style:none"] ) {
		border-left: var(--ck-table-border-none-helper-line-style) var(--ck-table-border-none-helper-line-width) var(--ck-table-border-none-helper-line-color) !important;
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-table-properties-error-arrow-size: 6px;
	--ck-table-properties-min-error-width: 150px;
}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label {
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,
			.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width {
				width: 80px;
				min-width: 80px;
				max-width: 80px;
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			padding: 0;
		}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
			.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
				margin: 0
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				align-self: flex-end;
				display: inline-block;
				height: var(--ck-ui-component-min-height);
				line-height: var(--ck-ui-component-min-height);
				margin: 0 var(--ck-spacing-small);
			}
.ck.ck-table-form .ck.ck-labeled-field-view {
		padding-top: var(--ck-spacing-standard);
	}
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			border-radius: 0;

			background: var(--ck-color-base-error);
			color: var(--ck-color-base-background);
			padding: var(--ck-spacing-small) var(--ck-spacing-medium);
			min-width: var(--ck-table-properties-min-error-width);
			text-align: center;

			animation: ck-table-form-labeled-view-status-appear .15s ease both;
		}
.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,
	.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
/* The arrow pointing towards the field. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				border-color: transparent transparent var(--ck-color-base-error) transparent;
				border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
				border-style: solid;
			}
@media (prefers-reduced-motion: reduce) {
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
				animation: none;
		}
			}
/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
			display: none;
		}
@keyframes ck-table-form-labeled-view-status-appear {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-properties-form {
	width: 320px;
}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			align-self: flex-end;
			padding: 0;
		}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: var(--ck-spacing-standard);
			}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items > * {
					width: 40px;
				}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);
}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected,
	.ck.ck-editor__editable .table table th.ck-editor__editable_selected {
		position: relative;
		caret-color: transparent;
		box-shadow: unset;

		/* https://github.com/ckeditor/ckeditor5/issues/6446 */
	}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after, .ck.ck-editor__editable .table table th.ck-editor__editable_selected:after {
			content: '';
			pointer-events: none;
			background-color: var(--ck-table-selected-cell-background);
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus {
			background-color: transparent;
		}
/*
		 * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.
		 * See https://github.com/ckeditor/ckeditor5/issues/9491.
		 */
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget {
			outline: unset;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle {
				display: none;
			}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-table-layout-widget-type-around-button-size: 16px;
	--ck-table-layout-widget-type-around-icon-width: 10px;
	--ck-table-layout-widget-type-around-icon-height: 8px;
	--ck-table-layout-widget-handler-icon-size: 10px;
	--ck-table-layout-default-border-color: hsl(0, 0%, 83%);

}
.ck-editor__editable .table.layout-table > table {
			width: 100%;
			height: 100%;

			/* Resetting `border-collapse` property to the user agent styles. */
			border-collapse: revert;

			/* The default table layout style in the editing view when the border is unset. */
		}
.ck-editor__editable .table.layout-table > table:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]) {
				border-color: transparent;
				border-width: 0;
				outline: none;
			}
.ck-editor__editable .table.layout-table > table > tbody > tr > td {
			box-shadow: revert;
			padding: revert;
			min-width: 2em;
			/* To make the caret visible. */
			text-indent: 1px;

			/* Resets the `min-width` style attribute that was added by the content table style. */
		}
.ck-editor__editable .table.layout-table > table > tbody > tr > td[style^="width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=" width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=";width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*="'width:"] {
				min-width: auto;
			}
/* Remove the default background color from the focused table cell. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td:focus {
				background-color: transparent;
			}
/* The default table layout cell style in the editing view when the border is unset.
			But it need to be more strict cause of style attributes like `border-collapse`, `border-spacing`, etc. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]) {
				border-color: transparent;
				/* Resetting `border-width` property to the user agent styles. */
				border-width: 0;
				outline: var(--ck-table-layout-default-border-color) 1px dashed;
				outline-offset: -1px;
			}
.ck-editor__editable .table.layout-table > table > tbody > tr > td:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]):focus {
					outline: var(--ck-color-focus-border) 1px solid;
				}
/* Reset the `width` and `text-indent` of the bogus paragraph because <td> has 1px text indent. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td > .ck-table-bogus-paragraph {
				width: calc(100% - 1px);
				text-indent: 0;
			}
/* Widget type around overrides. */
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around {
				--ck-widget-type-around-button-size: var(--ck-table-layout-widget-type-around-button-size);
			}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before,
					.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after {
						transform: translateY(0);
						/* Same value as inline-image widget because it is after the inline-image in HTML structure */
						z-index: 2;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before {
						margin-left: var(--ck-table-layout-widget-type-around-button-size);
						left: min(10%, 30px);
						border-radius: 0 0 100px 100px;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before::after {
							border-radius: 0 0 100px 100px;
						}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after {
						border-radius: 100px 100px 0 0;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after::after {
							border-radius: 100px 100px 0 0;
						}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button svg {
						width: var(--ck-table-layout-widget-type-around-icon-width);
						height: var(--ck-table-layout-widget-type-around-icon-height);
					}
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_with-selection-handle > .ck-widget__selection-handle {
					--ck-widget-handler-icon-size: var(--ck-table-layout-widget-handler-icon-size);

					transform: translateY(calc(0px - var(--ck-widget-outline-thickness)));
					/* Value increased by 1 as in selected inline-image widget
					because it is before the inline-image in HTML structure. */
					z-index: 3;
				}
/* Show fake caret on border not above. */
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
						top: 0;
					}
/* Show fake caret on border not below. */
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
						bottom: 0;
					}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-properties-form {
	width: 320px;
}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			align-self: flex-end;
		}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: var(--ck-spacing-standard);
			}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items > * {
					flex: 1;
				}
.ck.ck-table-properties-form.ck-table-properties-form_experimental .ck-form__row.ck-table-properties-form__alignment-row {
				padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;
			}
.ck.ck-table-properties-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__action-row {
				justify-content: flex-end;
			}
.ck.ck-table-properties-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__action-row > .ck.ck-button {
					flex-grow: initial;
				}
.ck.ck-table-properties-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__action-row > .ck.ck-button .ck-button__label {
						color: currentColor;
					}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-table-properties-error-arrow-size: 6px;
	--ck-table-properties-min-error-width: 150px;
}
.ck.ck-table-form.ck-table-properties-form_experimental {
	--ck-table-form-default-input-width: 80px;
}
.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label {
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}
.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,
			.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-table-form__border-width {
				width: var(--ck-table-form-default-input-width);
				min-width: var(--ck-table-form-default-input-width);
				max-width: var(--ck-table-form-default-input-width);
			}
.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row {
			--ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large));

			width: var(--ck-table-form-dimensions-input-width);
			max-width: var(--ck-table-form-dimensions-input-width);
			min-width: var(--ck-table-form-dimensions-input-width);
			padding: 0;
		}
.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
			.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
				width: var(--ck-table-form-default-input-width);
				min-width: var(--ck-table-form-default-input-width);
				max-width: var(--ck-table-form-default-input-width);
				margin: 0
			}
.ck.ck-table-form.ck-table-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				position: relative;
				left: -0.5ch;
				width: 0;
				overflow: visible;
				align-self: flex-end;
				display: inline-block;
				height: var(--ck-ui-component-min-height);
				line-height: var(--ck-ui-component-min-height);
				margin: 0 var(--ck-spacing-small);
			}
.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view {
		padding-top: var(--ck-spacing-standard);
	}
.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			border-radius: 0;

			background: var(--ck-color-base-error);
			color: var(--ck-color-base-background);
			padding: var(--ck-spacing-small) var(--ck-spacing-medium);
			min-width: var(--ck-table-properties-min-error-width);
			text-align: center;

			animation: ck-table-form-labeled-view-status-appear .15s ease both;
		}
.ck-rounded-corners .ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,
	.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
/* The arrow pointing towards the field. */
.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				border-color: transparent transparent var(--ck-color-base-error) transparent;
				border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
				border-style: solid;
			}
@media (prefers-reduced-motion: reduce) {
.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
				animation: none;
		}
			}
/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */
.ck.ck-table-form.ck-table-properties-form_experimental .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
			display: none;
		}
@keyframes ck-table-form-labeled-view-status-appear {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Ignore labels that work as fieldset legends */
.ck.ck-form__row > *:not(.ck-label) + * {
			margin-inline-start: var(--ck-spacing-large);
		}
.ck.ck-form__row > .ck-label {
		width: 100%;
		min-width: 100%;
	}
.ck.ck-form__row.ck-table-form__action-row {
		margin-top: var(--ck-spacing-large);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-cell-properties-form {
	width: 320px;
}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental {
		--ck-table-form-default-input-width: 80px;
	}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-cell-properties-form__padding-row {
				align-self: flex-end;
				padding: 0;
				width: 25%;
			}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar {
					background: none;

					/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
					margin-top: var(--ck-spacing-standard);
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label {
						font-size: var(--ck-font-size-tiny);
						text-align: center;
					}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,
				.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__border-row .ck-table-form__border-width {
					width: 80px;
					min-width: 80px;
					max-width: 80px;
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row {
				padding: 0;
			}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
				.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
					margin: 0
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
					align-self: flex-end;
					display: inline-block;
					height: var(--ck-ui-component-min-height);
					line-height: var(--ck-ui-component-min-height);
					margin: 0 var(--ck-spacing-small);
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-form__row.ck-table-form__action-row > .ck.ck-button {
					flex-grow: initial;
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental .ck-form__row.ck-form__row.ck-table-form__action-row > .ck.ck-button .ck-button__label {
						color: currentColor;
					}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-form__dimensions-row {
					--ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large));

					width: var(--ck-table-form-dimensions-input-width);
					max-width: var(--ck-table-form-dimensions-input-width);
					min-width: var(--ck-table-form-dimensions-input-width);
					padding: 0;
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
					.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
						width: var(--ck-table-form-default-input-width);
						min-width: var(--ck-table-form-default-input-width);
						max-width: var(--ck-table-form-default-input-width);
						margin: 0
					}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
						position: relative;
						left: -0.5ch;
						width: 0;
						overflow: visible;
						align-self: flex-end;
						display: inline-block;
						height: var(--ck-ui-component-min-height);
						line-height: var(--ck-ui-component-min-height);
						margin: 0 var(--ck-spacing-small);
					}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-form__cell-type-row {
					--ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large));

					width: var(--ck-table-form-dimensions-input-width);
					max-width: var(--ck-table-form-dimensions-input-width);
					min-width: var(--ck-table-form-dimensions-input-width);
					padding: 0;
				}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar.ck-table-cell-properties-form__horizontal-alignment-toolbar {
							--ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large));

							width: var(--ck-table-form-dimensions-input-width);
							max-width: var(--ck-table-form-dimensions-input-width);
							min-width: var(--ck-table-form-dimensions-input-width);
							padding: 0;
						}
.ck.ck-table-cell-properties-form.ck-table-cell-properties-form_experimental.ck-table-cell-properties-form_experimental-no-cell-type .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar.ck-table-cell-properties-form__vertical-alignment-toolbar {
							flex-grow: 1;
						}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-outline-thickness: 3px;
	--ck-widget-handler-icon-size: 16px;
	--ck-widget-handler-animation-duration: 200ms;
	--ck-widget-handler-animation-curve: ease;

	--ck-color-widget-blurred-border: hsl(0, 0%, 87%);
	--ck-color-widget-hover-border: hsl(43, 100%, 62%);
	--ck-color-widget-editable-focus-background: var(--ck-color-base-background);
	--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);
}
.ck .ck-widget {
	outline-width: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget {
		transition: none;
}
	}
.ck .ck-widget.ck-widget_selected,
	.ck .ck-widget.ck-widget_selected:hover {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}
.ck .ck-widget:hover {
		outline-color: var(--ck-color-widget-hover-border);
	}
.ck .ck-editor__nested-editable {
	border: 1px solid transparent;

	/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.
	These styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */
}
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,
	.ck .ck-editor__nested-editable:focus {
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
@media (forced-colors: none) {
		.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus {
			background-color: var(--ck-color-widget-editable-focus-background);
		}
	}
/**
		 * Focus border should not be applied to table cells because it overrides the default table cell border color.
		 * In other words - in some scenarios, the part of the table cell border has focus color style, which is not expected behavior
		 * because it should be the same as the table cell border color.
		 */
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused:not(td, th), .ck .ck-editor__nested-editable:focus:not(td, th) {
			/* Disable native outline. */
			outline: none;
			border: var(--ck-focus-ring);
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		padding: 4px;
		box-sizing: border-box;

		/* Background and opacity will be animated as the handler shows up or the widget gets selected. */
		background-color: transparent;
		opacity: 0;

		/* Transition:
		   * background-color for the .ck-widget_selected state change,
		   * visibility for hiding the handler,
		   * opacity for the proper look of the icon when the handler disappears. */
		transition:
			background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		/* Make only top corners round. */
		border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;

		/* Place the drag handler outside the widget wrapper. */
		transform: translateY(-100%);
		left: calc(0px - var(--ck-widget-outline-thickness));
		top: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
			transition: none;
	}
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the dimensions of the icon are independent of the fon-size of the content. */
			width: var(--ck-widget-handler-icon-size);
			height: var(--ck-widget-handler-icon-size);
			color: var(--ck-color-widget-drag-handler-icon-color);

			/* The "selected" part of the icon is invisible by default */
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 0;

				/* Note: The animation is longer on purpose. Simply feels better. */
				transition: opacity 300ms var(--ck-widget-handler-animation-curve);
			}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
					transition: none;
			}
				}
/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator {
			opacity: 1;
		}
/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		opacity: 1;
		background-color: var(--ck-color-widget-hover-border);
	}
/* Show the selection handler when the widget is selected, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
			opacity: 1;
			background-color: var(--ck-color-focus-border);

			/* When the widget is selected, notify the user using the proper look of the icon. */
		}
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 1;
			}
/* In a RTL environment, align the selection handler to the right side of the widget */
/* stylelint-disable-next-line no-descending-specificity */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
	left: auto;
	right: calc(0px - var(--ck-widget-outline-thickness));
}
/* https://github.com/ckeditor/ckeditor5/issues/6415 */
.ck.ck-editor__editable.ck-read-only .ck-widget {
	/* Prevent the :hover outline from showing up because of the used outline-color transition. */
	transition: none;
}
.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) {
		/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.
		 * See: https://github.com/ckeditor/ckeditor5/issues/1261
		 *
		 * Leave the unit because this custom property is used in calc() by other features.
		 * See: https://github.com/ckeditor/ckeditor5/issues/6775
		 */
		--ck-widget-outline-thickness: 0px;
	}
.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,
		.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
			background: var(--ck-color-widget-blurred-border);
		}
/*
* Hide the outline of all widget parents when the widget is being hovered.
*/
.ck .ck-widget:has( .ck-widget.table:hover ) {
	outline-color: transparent;
}
/* Hide the selection handle on mouse hover over the widget of all the widget parents. */
.ck .ck-widget.ck-widget_with-selection-handle:has( .ck-widget.table:hover ) > .ck-widget__selection-handle {
	opacity: 0;
	visibility: hidden;
}
/* Style the widget when it's selected but the editable it belongs to lost focus. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,
	.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
		outline-color: var(--ck-color-widget-blurred-border);
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle:hover,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle:hover {
				background: var(--ck-color-widget-blurred-border);
			}
.ck.ck-editor__editable:not(.ck-pagination-view) > .ck-widget.ck-widget_with-selection-handle:first-child,
.ck.ck-editor__editable:not(.ck-pagination-view) blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {
	/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.
	In fact, anything with overflow: hidden.
	https://github.com/ckeditor/ckeditor5-block-quote/issues/28
	https://github.com/ckeditor/ckeditor5-widget/issues/44
	https://github.com/ckeditor/ckeditor5-widget/issues/66 */
	margin-top: calc(1em + var(--ck-widget-handler-icon-size));
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-resizer-size: 10px;

	/* Set the resizer with a 50% offset. */
	--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);
	--ck-resizer-border-width: 1px;
}
.ck .ck-widget__resizer {
	outline: 1px solid var(--ck-color-resizer);
}
.ck .ck-widget__resizer__handle {
	width: var(--ck-resizer-size);
	height: var(--ck-resizer-size);
	background: var(--ck-color-focus-border);
	border: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);
	border-radius: var(--ck-resizer-border-radius);
}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-type-around-button-size: 20px;
	--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);
	--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);
	--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);
	--ck-color-widget-type-around-button-radar-start-alpha: 0;
	--ck-color-widget-type-around-button-radar-end-alpha: .3;
	--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);
}
/*
	 * Styles of the type around buttons
	 */
.ck .ck-widget .ck-widget__type-around__button {
		width: var(--ck-widget-type-around-button-size);
		height: var(--ck-widget-type-around-button-size);
		background: var(--ck-color-widget-type-around-button);
		border-radius: 100px;
		transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		opacity: 0;

		pointer-events: none;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button {
			transition: none;
	}
		}
.ck .ck-widget .ck-widget__type-around__button svg {
			width: 10px;
			height: 8px;
			transform: translate(-50%,-50%);
			transition: transform .5s ease;
			margin-top: 1px;
		}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button svg {
				transition: none;
		}
			}
.ck .ck-widget .ck-widget__type-around__button svg * {
				stroke-dasharray: 10;
				stroke-dashoffset: 0;

				fill: none;
				stroke: var(--ck-color-widget-type-around-button-icon);
				stroke-width: 1.5px;
				stroke-linecap: round;
				stroke-linejoin: round;
			}
.ck .ck-widget .ck-widget__type-around__button svg line {
				stroke-dasharray: 7;
			}
.ck .ck-widget .ck-widget__type-around__button:hover {
			/*
			 * Display the "sonar" around the button when hovered.
			 */
			animation: ck-widget-type-around-button-sonar 1s ease infinite;

			/*
			 * Animate active button's icon.
			 */
		}
.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
					animation: ck-widget-type-around-arrow-dash 2s linear;
				}
.ck .ck-widget .ck-widget__type-around__button:hover svg line {
					animation: ck-widget-type-around-arrow-tip-dash 2s linear;
				}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button:hover {
				animation: none;
		}
					.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
						animation: none;
					}

					.ck .ck-widget .ck-widget__type-around__button:hover svg line {
						animation: none;
					}
			}
/*
	 * Show type around buttons when the widget is being hovered.
	 */
.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}
/*
	 * Styles for the buttons when the widget is NOT selected (but the buttons are visible
	 * and still can be hovered).
	 */
.ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {
		background: var(--ck-color-widget-type-around-button-hover);
	}
/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,
	.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover {
		background: var(--ck-color-widget-type-around-button-active);
	}
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			width: calc(var(--ck-widget-type-around-button-size) - 2px);
			height: calc(var(--ck-widget-type-around-button-size) - 2px);
			border-radius: 100px;
			background: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);
		}
/*
		* Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).
		* Despite the widget being physically selected in the model, its outline should disappear.
		*/
.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before,
		.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after {
			outline-color: transparent;
		}
/*
		* Show type around buttons when the widget gets selected.
		*/
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}
/*
	 * Styles for the "before" button when the widget has a selection handle. Because some space
	 * is consumed by the handle, the button must be moved slightly to the right to let it breathe.
	 */
.ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {
		margin-left: 20px;
	}
/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */
.ck .ck-widget .ck-widget__type-around__fake-caret {
		pointer-events: none;
		height: 1px;
		animation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;

		/*
		 * The semi-transparent-outline+background combo improves the contrast
		 * when the background underneath the fake caret is dark.
		 */
		outline: solid 1px hsla(0, 0%, 100%, .5);
		background: var(--ck-color-base-text);
	}
/*
		 * When the "fake caret" is visible we simulate that the widget is not selected
		 * (despite being physically selected), so the outline color should be for the
		 * unselected widget.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover {
			outline-color: var(--ck-color-widget-hover-border);
		}
/*
		 * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).
		 * In this state, the type around buttons would collide with the fake carets so they should disappear.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 0;
			pointer-events: none;
		}
/*
		 * Fake horizontal caret integration with the selection handle. When the caret is visible, simply
		 * hide the handle because it intersects with the caret (and does not make much sense anyway).
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
					opacity: 0
				}
/*
		 * Fake horizontal caret integration with the resize UI. When the caret is visible, simply
		 * hide the resize UI because it creates too much noise. It can be visible when the user
		 * hovers the widget, though.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {
			opacity: 0
		}
/*
 * Styles for the "before" button when the widget has a selection handle in an RTL environment.
 * The selection handler is aligned to the right side of the widget so there is no need to create
 * additional space for it next to the "before" button.
 */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {
	margin-left: 0;
	margin-right: 20px;
}
/*
 * Hide type around buttons when the widget is selected as a child of a selected
 * nested editable (e.g. mulit-cell table selection).
 *
 * See https://github.com/ckeditor/ckeditor5/issues/7263.
 */
/* stylelint-disable-next-line no-descending-specificity */
.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
				opacity: 0;
				pointer-events: none;
			}
/*
 * Hide type around buttons of all widget parents when the widget is being hovered.
 */
.ck .ck-widget:has( .ck-widget.table:hover ) > .ck-widget__type-around > .ck-widget__type-around__button {
		opacity: 0;
		pointer-events: none;
	}
/*
 * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).
 */
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {
	background: var(--ck-color-widget-type-around-button-blurred-editable);
}
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * {
		stroke: hsl(0,0%,60%);
	}
@keyframes ck-widget-type-around-arrow-dash {
	0% {
		stroke-dashoffset: 10;
	}
	20%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-arrow-tip-dash {
	0%, 20% {
		stroke-dashoffset: 7;
	}
	40%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-button-sonar {
	0% {
		box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
	50% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));
	}
	100% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
}
@keyframes ck-widget-type-around-fake-caret-pulse {
	0% {
		opacity: 1;
	}
	49% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	99% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content code {
	background-color: hsla(0, 0%, 78%, 0.3);
	padding: .15em;
	border-radius: 2px;
}

.ck.ck-editor__editable .ck-code_selected  {
	background-color: hsla(0, 0%, 78%, 0.5);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content blockquote {
	/* See #12 */
	overflow: hidden;

	/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */
	padding-right: 1.5em;
	padding-left: 1.5em;

	margin-left: 0;
	margin-right: 0;
	font-style: italic;
	border-left: solid 5px hsl(0, 0%, 80%);
}

.ck-content[dir="rtl"] blockquote {
	border-left: 0;
	border-right: solid 5px hsl(0, 0%, 80%);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Based on default CKBox theme colors */
	--ck-image-processing-highlight-color: hsl(220, 10%, 98%);
	--ck-image-processing-background-color: hsl(220, 10%, 90%);
}

.ck.ck-editor__editable .image.image-processing {
			position: relative;
		}

.ck.ck-editor__editable .image.image-processing:before {
				content: '';

				position: absolute;
				top: 0;
				left: 0;
				z-index: 1;

				height: 100%;
				width: 100%;

				background: linear-gradient(
					90deg,
					var(--ck-image-processing-background-color),
					var(--ck-image-processing-highlight-color),
					var(--ck-image-processing-background-color)
				);
				background-size: 200% 100%;

				animation: ck-image-processing-animation 2s linear infinite;
			}

.ck.ck-editor__editable .image.image-processing img {
				height: 100%;
			}

@keyframes ck-image-processing-animation {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Vertical drop target (in text).
	 */

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position {
		display: inline;
		position: relative;
		pointer-events: none;
	}

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			position: absolute;
			width: 0;
		}

/*
	 * Styles of the widget being dragged (its preview).
	 */

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__selection-handle {
			display: none;
		}

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__type-around {
			display: none;
		}

.ck.ck-clipboard-drop-target-line {
	position: absolute;
	z-index: var(--ck-z-default);
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content pre {
	padding: 1em;
	color: hsl(0, 0%, 20.8%);
	background: hsla(0, 0%, 78%, 0.3);
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;

	/* Code block are language direction–agnostic. */
	text-align: left;
	direction: ltr;

	tab-size: 4;
	white-space: pre-wrap;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* Don't let the code be squashed e.g. when in a table cell. */
	min-width: 200px;
}

.ck-content pre code {
		background: unset;
		padding: 0;
		border-radius: 0;
	}

.ck.ck-editor__editable pre {
	position: relative;
}

.ck.ck-editor__editable pre[data-language]::after {
		content: attr(data-language);
		position: absolute;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	--ck-content-font-size: medium;
	/* stylelint-disable-next-line declaration-property-value-disallowed-list */
	--ck-content-font-color: #000;
	--ck-content-line-height: 1.5;
	--ck-content-word-break: break-word;
}

.ck-content {
	font-family: var(--ck-content-font-family);
	font-size: var(--ck-content-font-size);
	color: var(--ck-content-font-color);
	line-height: var(--ck-content-line-height);
	word-break: var(--ck-content-word-break);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor {
	/* All the elements within `.ck-editor` are positioned relatively to it.
	 If any element needs to be positioned with respect to the <body>, etc.,
	 it must land outside of the `.ck-editor` in DOM. */
	position: relative;
}

.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
		/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */
		z-index: var(--ck-z-panel);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar {
	border: none;
	border-bottom: 1px solid var(--ck-color-toolbar-border);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji {
	width: 320px;
}

.ck .ck.ck-emoji__search {
	display: flex;
	padding: var(--ck-spacing-large);
	padding-bottom: var(--ck-spacing-medium);
	justify-content: space-between;
	align-items: center;
}

.ck .ck.ck-emoji__search > .ck.ck-search {
		flex: 1;
	}

/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the emoji picker UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-emoji-selection {
	background: var(--ck-color-link-fake-selection);
}

/* A collapsed fake visual selection. */
.ck .ck-fake-emoji-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}

div.ck.ck-balloon-panel.ck-emoji-picker-balloon {
	z-index: calc( var( --ck-z-dialog ) + 1 );
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__categories-list {
	display: flex;
	justify-content: space-between;
	margin: 0 var(--ck-spacing-large);
}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text {
		border-width: 0;
		border-bottom-width: 2px;
		border-bottom-style: solid;
		border-bottom-color: transparent;
		padding: 0;
		font-size: var(--ck-font-size-big);
		min-width: var(--ck-font-size-big);
		min-height: var(--ck-font-size-big);
	}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on {
			border-bottom-color: var(--ck-color-base-active);
		}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span {
			margin: auto;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-emoji-grid-tile-size: 27px;
}

.ck.ck-emoji .ck.ck-emoji__tiles {
		max-width: 100%;
		max-height: min(265px, 40vh);

		overflow-y: auto;
		overflow-x: hidden;
		border-top: 1px solid var(--ck-color-base-border);
	}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid {
			display: grid;
			grid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
			margin: var(--ck-spacing-standard) var(--ck-spacing-large);
			grid-gap: var(--ck-spacing-small);
		}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
			width: var(--ck-emoji-grid-tile-size);
			height: var(--ck-emoji-grid-tile-size);
			min-width: var(--ck-emoji-grid-tile-size);
			min-height: var(--ck-emoji-grid-tile-size);
			font-size: 1.5em;
			padding: 0;
			transition: .2s ease box-shadow;
			border: 0;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
				transition: none;
		}
			}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),
			.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled) {
				/* Disable the default .ck-button's border ring. */
				border: 0;
				box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
			}

/* Make sure the glyph is rendered in the center of the button */

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label {
				line-height: var(--ck-emoji-grid-tile-size);
				width: 100%;
				text-align: center;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form.ck-emoji-picker-form {
	padding-bottom: 0;

	/*
	 * `.ck-form` overrides styling of all dropdowns by adding border around them.
	 * The border is not needed in the emoji picker form so try to remove it keeping
	 * specificity high enough to override the form styling.
	 */
}

.ck.ck-form.ck-emoji-picker-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
		border-color: transparent;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__skin-tone {
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item {
			min-width: 1em;
		}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
				width: initial;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* See ckeditor/ckeditor5#936. */
.ck.ck-placeholder,
.ck .ck-placeholder {
	position: relative;
}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		position: absolute;
		left: 0;
		right: 0;
		content: attr(data-placeholder);

		/* See ckeditor/ckeditor5#469. */
		pointer-events: none;
	}

/* See ckeditor/ckeditor5#1987. */
.ck.ck-read-only .ck-placeholder::before {
		display: none;
	}

/*
 * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.
 * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.
 * See https://github.com/ckeditor/ckeditor5/issues/11418.
 */
.ck.ck-reset_all .ck-placeholder {
	position: relative;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Elements marked by the Renderer as hidden should be invisible in the editor. */
.ck.ck-editor__editable span[data-ck-unsafe-element] {
	display: none;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-find-result {
	background: var(--ck-color-highlight-background);
	color: var(--ck-color-text);
}

.ck-find-result_selected {
	background: hsl(29, 100%, 60%);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-find-and-replace-form {
	max-width: 100%;
}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		display: flex;

		/* The inputs area styles */
	}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs.ck-find-and-replace-form__inputs .ck-results-counter, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions.ck-find-and-replace-form__inputs .ck-results-counter {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */

:root {
	--ck-content-font-size-tiny: 0.7em;
	--ck-content-font-size-small: 0.85em;
	--ck-content-font-size-big: 1.4em;
	--ck-content-font-size-huge: 1.8em;
}

/* Styles should be prefixed with the `.ck-content` class.
See https://github.com/ckeditor/ckeditor5/issues/6636 */
.ck-content .text-tiny {
		font-size: var(--ck-content-font-size-tiny);
	}
.ck-content .text-small {
		font-size: var(--ck-content-font-size-small);
	}
.ck-content .text-big {
		font-size: var(--ck-content-font-size-big);
	}
.ck-content .text-huge {
		font-size: var(--ck-content-font-size-huge);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Increase z-index of everything to make sure nothing sticks in front of the editor.
Disable scrollbars that can be present due to the rest of the website content. */
html.ck-fullscreen,
body.ck-fullscreen {
	--ck-z-fullscreen: 10000;

	overflow: hidden;

	--ck-z-default: calc(var(--ck-z-fullscreen) + 1);
	--ck-z-panel: calc(var(--ck-z-default) + 999);
	--ck-z-dialog: 100000;

	/* CKBox wrappers have z-index of 9999, let's bump them over the dialog's to ensure visibility like outside fullscreen mode. */
}
html.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog, body.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog {
		--ckbox-z-index-root: calc(var(--ck-z-dialog) + 1);
	}
html.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor, body.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor {
		--ckbox-z-index-preview: calc(var(--ck-z-dialog) + 1);
	}
html.ck-fullscreen .ck-pagination-view-line, body.ck-fullscreen .ck-pagination-view-line {
		z-index: calc(var(--ck-z-fullscreen) + 1);
	}
html.ck-fullscreen .page-break__label, body.ck-fullscreen .page-break__label {
		/* Needs to be higher than for .ck-pagination-view-line to be displayed on top of the line. */
		z-index: calc(var(--ck-z-fullscreen) + 2);
	}

/*
Fullscreen layout:

<div class="ck ck-fullscreen__main-wrapper">
	<div class="ck ck-fullscreen__top-wrapper ck-reset_all">
		<div class="ck ck-fullscreen__menu-bar" data-ck-fullscreen="menu-bar"></div>
		<div class="ck ck-fullscreen__toolbar" data-ck-fullscreen="toolbar"></div>
	</div>
	<div class="ck ck-fullscreen__editable-wrapper">
		<div class="ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar" data-ck-fullscreen="left-sidebar"></div>
		<div class="ck ck-fullscreen__editable" data-ck-fullscreen="editable"></div>
		<div class="ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar" data-ck-fullscreen="right-sidebar"></div>
		<div class="ck ck-fullscreen__right-edge" data-ck-fullscreen="right-edge"></div>
	</div>
	<div class="ck ck-fullscreen__bottom-wrapper">
		<div class="ck ck-fullscreen__body-wrapper" data-ck-fullscreen="body-wrapper"></div>
	</div>
</div>
*/

.ck.ck-fullscreen__main-wrapper {
	/* `position: fixed` prevents the overscroll on macos that would happen with `position: absolute`. */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: var(--ck-z-fullscreen);
	background: var(--ck-color-base-foreground);
	display: flex;
	flex-direction: column;
}

.ck.ck-fullscreen__main-wrapper .ck.ck-revision-history-ui__changes-navigation {
		margin-top: 0px;
		margin-bottom: 0px;
	}

/* If the fullscreen container is not directly in the body, we need to make sure it's positioned absolutely. */
:not(body> .ck-fullscreen__main-wrapper).ck-fullscreen__main-wrapper {
	position: absolute;
}
.ck-fullscreen__main-wrapper:not(body> .ck-fullscreen__main-wrapper) .ck-fullscreen__top-wrapper {
		border-top: 1px solid var(--ck-color-base-border);
		border-left: 1px solid var(--ck-color-base-border);
		border-right: 1px solid var(--ck-color-base-border);
		border-radius: var(--ck-border-radius) 0;
	}

.ck-fullscreen__menu-bar .ck.ck-menu-bar {
	border: none;
}

.ck.ck-fullscreen__toolbar .ck-toolbar {
	border-left: 0;
	border-right: 0;
	border-radius: 0;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable-wrapper {
	--ck-fullscreen-editor-top-margin: 28px;
	--ck-fullscreen-editor-bottom-margin: 28px;
	display: flex;
	justify-content: flex-start;
	overflow: auto;
	max-height: 100%;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable {
	margin-top: var(--ck-fullscreen-editor-top-margin);
	height: 100%;
	margin-left: auto;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable::after {
		content: '';
		display: block;
		height: var(--ck-fullscreen-editor-bottom-margin);
	}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	box-sizing: border-box;
	/* Make sure the border is taken into account. */
	width: calc(210mm + 2px);
	/* Make sure the border is taken into account. */
	max-width: calc(210mm + 2px);
	min-height: 297mm;
	height: fit-content;
	/* Reset margins that may be present on editable. We add them in other places. */
	margin: 0;
	padding: 20mm 12mm;
	border: 1px var(--ck-color-base-border) solid;
	background: hsl(0, 0%, 100%);
	box-shadow: 0 2px 3px hsla(0, 0%, 0%, 0.078);
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck-source-editing-area {
	width: calc(210mm + 2px);
}

.ck-fullscreen__sidebar {
	width: 270px;
	margin-top: var(--ck-fullscreen-editor-top-margin);
	margin-left: 10px;
}

.ck-fullscreen__left-sidebar {
	font-family: Helvetica, Arial, sans-serif;
	--ck-user-avatar-size: 28px;
	position: sticky;
	align-self: flex-start;
	top: 0;
	height: 100%;
	background-color: transparent;
	margin-top: 0px;
	margin-right: 10px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.ck-fullscreen__left-sidebar .ck-button.ck-fullscreen__left-sidebar-toggle-button {
		--ck-icon-size: 20px;
		--ck-ui-component-min-height: 0px;

		align-self: flex-start;
		padding-top: 0;
		margin-top: var(--ck-fullscreen-editor-top-margin);
		margin-bottom: var(--ck-spacing-large);
		opacity: 0.5;
		border-radius: 100%;
	}

.ck-fullscreen__left-sidebar > .ck-fullscreen__left-sidebar-sticky {
		/* Set minimal width if there is any item in the sidebar. */
		min-width: 270px;
	}

.ck-fullscreen__left-sidebar > .ck-fullscreen__left-sidebar-sticky:first-child {
			padding-top: var(--ck-fullscreen-editor-top-margin);
		}

.ck-fullscreen__left-sidebar.ck-fullscreen__left-sidebar--collapsed {
		width: 65px;
	}

.ck-fullscreen__left-sidebar.ck-fullscreen__left-sidebar--collapsed > :not(.ck-fullscreen__left-sidebar-toggle-button) {
			display: none;
		}

.ck-fullscreen__left-sidebar .ck.ck-presence-list--collapsed {
	--ck-user-avatar-size: 32px;
}

.ck-fullscreen__left-sidebar .ck-user {
	font-size: 0.85em;
}

.ck-fullscreen__left-sidebar .ck-presence-list__users-counter__text {
	font-size: 0.85em;
}

.ck-fullscreen__left-sidebar-item {
	padding: var(--ck-spacing-medium);
	margin-bottom: var(--ck-spacing-medium);

	/* First header should not have top padding. */
}

.ck-fullscreen__left-sidebar-item:first-child {
		padding-top: 0;
	}

.ck-fullscreen__left-sidebar-item:last-child {
		margin-bottom: 0;
	}

.ck-fullscreen__left-sidebar-header {
	--ck-fullscreen-presence-list-header-font-size: 0.875em;
	font-size: var(--ck-fullscreen-presence-list-header-font-size);
	font-weight: bold;
	color: var(--ck-document-outline-item-default-color);
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

.ck-fullscreen__left-sidebar--sticky {
	position: sticky;
	top: 0;
}

.ck-fullscreen__left-sidebar--sticky > :first-child {
		padding-top: 0;
	}

.ck-fullscreen__presence-list {
	margin-top: var(--ck-spacing-medium);
}

.ck-fullscreen__left-sidebar-item--no-margin {
	margin: 0;
}

.ck-fullscreen__left-sidebar .ck.ck-document-outline {
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
}

.ck-fullscreen__document-outline-wrapper {
	padding-top: 0;
	overflow-y: auto;
}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar {
	margin-top: var(--ck-fullscreen-editor-top-margin);
	margin-right: auto;
}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar:not(.ck-fullscreen__right-sidebar--collapsed) > :first-child {
		/* Set minimal width if there is any item in the sidebar. */
		min-width: 270px;
	}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar.ck-fullscreen__right-sidebar--collapsed {
		width: 65px;
	}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar.ck-fullscreen__right-sidebar--collapsed > :first-child {
			min-width: 65px;
		}

.ck.ck-fullscreen__right-edge {
	position: sticky;
	top: 0;
	margin-top: 0;
	margin-left: 10px;
}

.ck.ck-fullscreen__right-edge > :first-child {
		border-top: none;
		border-bottom: none;
		border-right: none;
		height: 100%;
		width: 495px;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-heading_heading1 .ck-button__label {
	font-size: 20px;
}

.ck.ck-heading_heading2 .ck-button__label {
	font-size: 17px;
}

.ck.ck-heading_heading3 .ck-button__label {
	font-size: 14px;
}

.ck[class*="ck-heading_heading"] {
	font-weight: bold;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-highlight-marker-yellow: hsl(60, 97%, 73%);
	--ck-content-highlight-marker-green: hsl(120, 93%, 68%);
	--ck-content-highlight-marker-pink: hsl(345, 96%, 73%);
	--ck-content-highlight-marker-blue: hsl(201, 97%, 72%);
	--ck-content-highlight-pen-red: hsl(0, 85%, 49%);
	--ck-content-highlight-pen-green: hsl(112, 100%, 27%);
}

.ck-content .marker-yellow {
		background-color: var(--ck-content-highlight-marker-yellow);
	}
.ck-content .marker-green {
		background-color: var(--ck-content-highlight-marker-green);
	}
.ck-content .marker-pink {
		background-color: var(--ck-content-highlight-marker-pink);
	}
.ck-content .marker-blue {
		background-color: var(--ck-content-highlight-marker-blue);
	}

.ck-content .pen-red {
		color: var(--ck-content-highlight-pen-red);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}
.ck-content .pen-green {
		color: var(--ck-content-highlight-pen-green);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */


.ck-editor__editable .ck-horizontal-line {
	/* Necessary to render properly next to floated objects, e.g. side image case. */
	display: flow-root;
}

.ck-content hr {
	margin: 15px 0;
	height: 4px;
	background: hsl(0, 0%, 87%);
	border: 0;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The feature container. */
.ck-widget.raw-html-embed {
	/* Give the embed some air. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em auto;
	position: relative;
	display: flow-root;

	/* Give the html embed some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (https://github.com/ckeditor/ckeditor5/issues/8331) */
	min-width: 15em;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* ----- Emebed label in the upper left corner ----------------------------------------------- */
}
.ck-widget.raw-html-embed::before {
		position: absolute;

		/* Make sure the content does not cover the label. */
		z-index: 1;
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		position: absolute;
		display: flex;
		flex-direction: column;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview {
		position: relative;
		overflow: hidden;
		display: flex;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		width: 100%;
		position: relative;
		margin: auto;

		/* Gives spacing to the small renderable elements, so they always cover the placeholder. */
		display: table;
		border-collapse: separate;
		border-spacing: 7px;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		position: absolute;
		left: 0;
		top: 0;
		right: 0;
		bottom: 0;

		display: flex;
		align-items: center;
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-html-object-embed-unfocused-outline-width: 1px;
}

.ck-widget.html-object-embed {
	font-size: var(--ck-font-size-base);
	background-color: var(--ck-color-base-foreground);
	padding: var(--ck-spacing-small);
	/* Leave space for label */
	padding-top: calc(var(--ck-font-size-tiny) + var(--ck-spacing-large));
	min-width: calc(76px + var(--ck-spacing-standard));
}

.ck-widget.html-object-embed:not(.ck-widget_selected):not(:hover) {
		outline: var(--ck-html-object-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}

.ck-widget.html-object-embed::before {
		font-weight: normal;
		font-style: normal;
		position: absolute;
		content: attr(data-html-object-embed-label);
		top: 0;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-object-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: var(--ck-color-base-background);
		font-size: var(--ck-font-size-tiny);
		font-family: var(--ck-font-face);
	}

/* Make space for label. */

.ck-widget.html-object-embed .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}

.ck-widget.html-object-embed .html-object-embed__content {
		/* Disable user interaction with embed content */
		pointer-events: none;
	}

div.ck-widget.html-object-embed {
	margin: 1em auto;
}

span.ck-widget.html-object-embed {
	display: inline-block;
}


/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-color-image-caption-background: hsl(0, 0%, 97%);
	--ck-content-color-image-caption-text: hsl(0, 0%, 20%);
	--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .image > figcaption {
	display: table-caption;
	caption-side: bottom;
	word-break: normal;
	overflow-wrap: anywhere;
	break-before: avoid;
	color: var(--ck-content-color-image-caption-text);
	background-color: var(--ck-content-color-image-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
.ck-content .image > figcaption {
		background-color: unset;
		color: unset;
}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: ck-image-caption-highlight .6s ease-out;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: none;
}
	}

@keyframes ck-image-caption-highlight {
	0% {
		background-color: var(--ck-color-image-caption-highlighted-background);
	}

	100% {
		background-color: var(--ck-content-color-image-caption-background);
	}
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Preserve aspect ratio of the resized image after introducing image height attribute. */
.ck-content img.image_resized {
	height: auto;
}

.ck-content .image.image_resized {
	max-width: 100%;
	/*
	The `<figure>` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.
	See https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.
	Fortunately, since we control the width, there is no risk that the image will look bad.
	*/
	display: block;
	box-sizing: border-box;
}

.ck-content .image.image_resized img {
		/* For resized images it is the `<figure>` element that determines the image width. */
		width: 100%;
	}

.ck-content .image.image_resized > figcaption {
		/* The `<figure>` element uses `display:block`, so `<figcaption>` also has to. */
		display: block;
	}

/* The resized inline image nested in the table should respect its parent size.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline.image_resized img, .ck.ck-editor__editable th .image-inline.image_resized img {
			max-width: 100%;
		}

[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-right: var(--ck-spacing-standard);
}

[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {
	width: 4em;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-image-style-spacing: 1.5em;
	--ck-content-inline-image-style-spacing: calc(var(--ck-content-image-style-spacing) / 2);
}

/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */

/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback
		confirming successful application of the style if image width exceeds the editor's size.
		See https://github.com/ckeditor/ckeditor5/issues/9342 */

.ck-content .image.image-style-block-align-left,
		.ck-content .image.image-style-block-align-right {
			max-width: calc(100% - var(--ck-content-image-style-spacing));
		}

/* Allows displaying multiple floating images in the same line.
		See https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */

.ck-content .image.image-style-align-left,
		.ck-content .image.image-style-align-right {
			clear: none;
		}

.ck-content .image.image-style-side {
			float: right;
			margin-left: var(--ck-content-image-style-spacing);
			max-width: 50%;
		}

.ck-content .image.image-style-align-left {
			float: left;
			margin-right: var(--ck-content-image-style-spacing);
		}

.ck-content .image.image-style-align-right {
			float: right;
			margin-left: var(--ck-content-image-style-spacing);
		}

.ck-content .image.image-style-block-align-right {
			margin-right: 0;
			margin-left: auto;
		}

.ck-content .image.image-style-block-align-left {
			margin-left: 0;
			margin-right: auto;
		}

.ck-content .image-style-align-center {
		margin-left: auto;
		margin-right: auto;
	}

.ck-content .image-style-align-left {
		float: left;
		margin-right: var(--ck-content-image-style-spacing);
	}

.ck-content .image-style-align-right {
		float: right;
		margin-left: var(--ck-content-image-style-spacing);
	}

/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */

.ck-content p + .image.image-style-align-left,
	.ck-content p + .image.image-style-align-right,
	.ck-content p + .image.image-style-side {
		margin-top: 0;
	}

.ck-content .image-inline.image-style-align-left,
		.ck-content .image-inline.image-style-align-right {
			margin-top: var(--ck-content-inline-image-style-spacing);
			margin-bottom: var(--ck-content-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-left {
			margin-right: var(--ck-content-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-right {
			margin-left: var(--ck-content-inline-image-style-spacing);
		}

/* The button should display as a regular drop-down if the action button
	is forced to fire the same action as the arrow button. */

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: var(--ck-color-button-on-background);
			}

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after {
					display: none;
				}

.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: var(--ck-color-button-on-hover-background);
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable .image,
	.ck.ck-editor__editable .image-inline {
		position: relative;
	}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		position: absolute;
		top: 0;
		left: 0;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-image-upload-complete-icon {
	display: block;
	position: absolute;

	/*
	 * Smaller images should have the icon closer to the border.
	 * Match the icon position with the linked image indicator brought by the link image feature.
	 */
	top: min(var(--ck-spacing-medium), 6%);
	right: min(var(--ck-spacing-medium), 6%);
	border-radius: 50%;
	z-index: 1;
}

.ck-image-upload-complete-icon::after {
		content: "";
		position: absolute;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-upload-placeholder-loader {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	left: 0;
}

.ck .ck-upload-placeholder-loader::before {
		content: '';
		position: relative;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .image {
		display: table;
		clear: both;
		text-align: center;

		/* Make sure there is some space between the content and the image. Center image by default. */
		/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	 	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
		margin: 0.9em auto;

		/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
		min-width: 50px;
	}

.ck-content .image img {
			/* Prevent unnecessary margins caused by line-height (see #44). */
			display: block;

			/* Center the image if its width is smaller than the content's width. */
			margin: 0 auto;

			/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */
			max-width: 100%;

			/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */
			min-width: 100%;

			/* Keep proportions of the block image if the height is set and the image is wider than the editor width.
			See https://github.com/ckeditor/ckeditor5/issues/14542. */
			height: auto;
		}

.ck-content .image-inline {
		/*
		 * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).
		 * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
		 * This strange behavior does not happen with inline-flex.
		 */
		display: inline-flex;

		/* While being resized, don't allow the image to exceed the width of the editing root. */
		max-width: 100%;

		/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */
		align-items: flex-start;

		/* When the picture is present it must act as a flex container to let the img resize properly */
	}

.ck-content .image-inline picture {
			display: flex;
		}

/* When the picture is present, it must act like a resizable img. */

.ck-content .image-inline picture,
		.ck-content .image-inline img {
			/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */
			flex-grow: 1;
			flex-shrink: 1;

			/* Prevents overflowing the editing root boundaries when an inline image is very wide. */
			max-width: 100%;
		}

/*
	 * Inhertit the content styles padding of the <figcaption> in case the integration overrides `text-align: center`
	 * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native
	 * caret does, and not at the edge of <figcaption>.
	 */

.ck.ck-editor__editable .image > figcaption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the image caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image {
		z-index: 1;

		/*
		 * Make sure the selected image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image.ck-widget_selected {
			z-index: 2;
		}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image-inline {
		z-index: 1;

		/*
		 * Make sure the selected inline image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image-inline.ck-widget_selected {
			z-index: 2;

			/*
			 * Make sure the native browser selection style is not displayed.
			 * Inline image widgets have their own styles for the selected state and
			 * leaving this up to the browser is asking for a visual collision.
			 */
		}

.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection {
				display: none;
			}

/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.
	See https://github.com/ckeditor/ckeditor5/issues/14542. */

.ck.ck-editor__editable .image-inline img {
		height: auto;
	}

/* The inline image nested in the table should have its original size if not resized.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline img, .ck.ck-editor__editable th .image-inline img {
			max-width: none;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable img.image_placeholder {
		background-size: 100% 100%;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-image-insert-url {
	width: 400px;
	padding: var(--ck-spacing-large) var(--ck-spacing-large) 0;
}

.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-toolbar__preview {
	display: inline-block;
}

.ck.ck-link-toolbar__preview .ck-button__label {
		overflow: hidden;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Linked image indicator */

.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			display: block;
			position: absolute;
		}


/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Generic class that wraps each link balloon view. */
.ck.ck-link-form .ck-link-form__providers-list {
		display: flex;
		flex-direction: column;
	}
.ck.ck-link-form .ck-link-form__providers-list .ck-link__button > .ck-button__label {
				flex-grow: 1;
			}
.ck.ck-link-form .ck-link__items:empty {
		display: none;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-providers > .ck-link-providers__list {
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-icon {
				flex-shrink: 0;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-editor__editable .ck-list-bogus-paragraph {
	display: block;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-styles-list {
	display: grid;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-list-marker-color: var(--ck-content-font-color);
	--ck-content-list-marker-font-family: var(--ck-content-font-family);
	--ck-content-list-marker-font-size: var(--ck-content-font-size);
}

/* Opinionated list content styling: prevents content shift
	 * when a list becomes multi-block (Enter + Backspace scenario).
	 * See: https://github.com/ckeditor/ckeditor5/pull/18801
	 */

.ck-content li > p:first-of-type {
		margin-top: 0;
	}

/* Prevents margins from appearing when a bogus paragraph
	 * receives line height or text alignment.
	 * Ensures a consistent experience with the first paragraph.
	 * See: https://github.com/ckeditor/ckeditor5/pull/18801
	 */

.ck-content li > p:only-of-type {
		margin-top: 0;
		margin-bottom: 0;
	}

.ck-content li.ck-list-marker-bold::marker {
		font-weight: bold;
	}

.ck-content li.ck-list-marker-italic::marker {
		font-style: italic;
	}

.ck-content li.ck-list-marker-color::marker {
		color: var(--ck-content-list-marker-color);
	}

.ck-content li.ck-list-marker-font-family::marker {
		font-family: var(--ck-content-list-marker-font-family);
	}

.ck-content li.ck-list-marker-font-size::marker {
		font-size: var(--ck-content-list-marker-font-size);
	}

.ck-content li.ck-list-marker-font-size-tiny::marker {
		font-size: var(--ck-content-font-size-tiny);
	}

.ck-content li.ck-list-marker-font-size-small::marker {
		font-size: var(--ck-content-font-size-small);
	}

.ck-content li.ck-list-marker-font-size-big::marker {
		font-size: var(--ck-content-font-size-big);
	}

.ck-content li.ck-list-marker-font-size-huge::marker {
		font-size: var(--ck-content-font-size-huge);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content ol {
	list-style-type: decimal;
}

.ck-content ol ol {
		list-style-type: lower-latin;
	}

.ck-content ol ol ol {
			list-style-type: lower-roman;
		}

.ck-content ol ol ol ol {
				list-style-type: upper-latin;
			}

.ck-content ol ol ol ol ol {
					list-style-type: upper-roman;
				}

.ck-content ul {
	list-style-type: disc;
}

.ck-content ul ul {
		list-style-type: circle;
	}

.ck-content ul ul ul {
			list-style-type: square;
		}

.ck-content ul ul ul ul {
				list-style-type: square;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-todo-list-checkmark-size: 16px;
}

/*
 * To-do list content styles.
 */
.ck-content .todo-list {
	list-style: none;
}
.ck-content .todo-list li {
		position: relative;
		margin-bottom: 5px;
	}
.ck-content .todo-list li .todo-list {
			margin-top: 5px;
		}
.ck-content .todo-list .todo-list__label > input {
			-webkit-appearance: none;
			display: inline-block;
			position: relative;
			width: var(--ck-content-todo-list-checkmark-size);
			height: var(--ck-content-todo-list-checkmark-size);
			vertical-align: middle;
			/* Needed on iOS */
			border: 0;
			/* LTR styles */
			left: -25px;
			margin-right: -15px;
			right: 0;
			margin-left: 0;
			/* RTL styles */
		}
.ck-content[dir=rtl] .todo-list .todo-list__label > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-content .todo-list .todo-list__label > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-content .todo-list .todo-list__label > input::before {
			transition: none;
	}
		}
.ck-content .todo-list .todo-list__label > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( var(--ck-content-todo-list-checkmark-size) / 3 );
		top: calc( var(--ck-content-todo-list-checkmark-size) / 5.3 );
		width: calc( var(--ck-content-todo-list-checkmark-size) / 5.3 );
		height: calc( var(--ck-content-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( var(--ck-content-todo-list-checkmark-size) / 8 ) calc( var(--ck-content-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-content .todo-list .todo-list__label > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-content .todo-list .todo-list__label > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-content .todo-list .todo-list__label .todo-list__label__description {
			vertical-align: middle;
		}
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * To-do list editing view styles.
 */
/*
	 * To-do list should be interactive only during the editing
	 * (https://github.com/ckeditor/ckeditor5/issues/2090).
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input,
	.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		cursor: pointer;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input:hover::before {
			box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
		}
/*
	 * Document Lists - editing view has an additional span around checkbox.
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		-webkit-appearance: none;
		display: inline-block;
		position: relative;
		width: var(--ck-content-todo-list-checkmark-size);
		height: var(--ck-content-todo-list-checkmark-size);
		vertical-align: middle;
		/* Needed on iOS */
		border: 0;
		/* LTR styles */
		left: -25px;
		margin-right: -15px;
		right: 0;
		margin-left: 0;
		/* RTL styles */
	}
.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label > span[contenteditable=false] > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
			transition: none;
	}
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( var(--ck-content-todo-list-checkmark-size) / 3 );
		top: calc( var(--ck-content-todo-list-checkmark-size) / 5.3 );
		width: calc( var(--ck-content-todo-list-checkmark-size) / 5.3 );
		height: calc( var(--ck-content-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( var(--ck-content-todo-list-checkmark-size) / 8 ) calc( var(--ck-content-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .media {
	/* Don't allow floated content overlap the media.
	https://github.com/ckeditor/ckeditor5-media-embed/issues/53 */
	clear: both;

	/* Make sure there is some space between the content and the media. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em 0;

	/* Make sure media is not overriden with Bootstrap default `flex` value.
	See: https://github.com/ckeditor/ckeditor5/issues/1373. */
	display: block;

	/* Give the media some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (#44) */
	min-width: 15em;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-media__wrapper .ck-media__placeholder {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url {
			/* Otherwise the URL will overflow when the content is very narrow. */
			max-width: 100%;

			position: relative;
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text {
				overflow: hidden;
				display: block;
			}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon * {
			display: none;
		}

/* Disable all mouse interaction as long as the editor is not read–only.
   https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */
.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {
	pointer-events: none;
}

/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).
   https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */
.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-vertical-form .ck-button::after {
		content: "";
		width: 0;
		position: absolute;
		right: -1px;
		top: -1px;
		bottom: -1px;
		z-index: 1;
	}

.ck-vertical-form .ck-button:focus::after {
		display: none;
	}

@media screen and (max-width: 600px) {
			.ck.ck-responsive-form .ck-button::after {
				content: "";
				width: 0;
				position: absolute;
				right: -1px;
				top: -1px;
				bottom: -1px;
				z-index: 1;
			}

			.ck.ck-responsive-form .ck-button:focus::after {
				display: none;
			}
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-media-form {
	display: flex;
	align-items: flex-start;
	flex-direction: row;
	flex-wrap: nowrap;
	width: 400px;
}

.ck.ck-media-form .ck-labeled-field-view {
		display: inline-block;
		width: 100%;
	}

.ck.ck-media-form .ck-label {
		display: none;
	}

.ck.ck-media-form .ck-input {
		width: 100%;
	}

@media screen and (max-width: 600px) {

.ck.ck-media-form {
		flex-wrap: wrap;
}

		.ck.ck-media-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-media-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-mention-list-max-height: 300px;
}

.ck.ck-mentions {
	max-height: var(--ck-mention-list-max-height);

	overflow-y: auto;

	/* Prevent unnecessary horizontal scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
	overflow-x: hidden;

	overscroll-behavior: contain;

	/* Prevent unnecessary vertical scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
}

.ck.ck-mentions > .ck-list__item {
		overflow: hidden;
		flex-shrink: 0;
	}

div.ck.ck-balloon-panel.ck-mention-balloon {
	z-index: calc( var( --ck-z-dialog ) + 1 );
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-minimap-tracker-background: 208, 0%, 51%;
	--ck-color-minimap-iframe-outline: hsl(0deg 0% 75%);
	--ck-color-minimap-iframe-shadow: hsl(0deg 0% 0% / 11%);
	--ck-color-minimap-progress-background: hsl(0,0%,40%);
}

.ck.ck-minimap {
	position: absolute;
	user-select: none;
	background: var(--ck-color-base-background);
}

.ck.ck-minimap,
	.ck.ck-minimap iframe {
		width: 100%;
		height: 100%;
	}

.ck.ck-minimap iframe {
		border: 0;
		pointer-events: none;
		position: relative;
		outline: 1px solid var(--ck-color-minimap-iframe-outline);
		box-shadow: 0 2px 5px var(--ck-color-minimap-iframe-shadow);
		margin: 0;
	}

.ck.ck-minimap .ck.ck-minimap__position-tracker {
		position: absolute;
		width: 100%;
		top: 0;
		background: hsla( var(--ck-color-minimap-tracker-background), .2 );
		z-index: 1;
		transition: background 100ms ease-in-out;
	}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker {
			transition: none;
	}
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker:hover {
			background:hsla( var(--ck-color-minimap-tracker-background), .3 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging,
		.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover {
			background:hsla( var(--ck-color-minimap-tracker-background), .4 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging::after, .ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover::after {
				opacity: 1;
			}

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
			content: attr(data-progress) "%";
			position: absolute;
			top: 5px;
			right: 5px;
			background: var(--ck-color-minimap-progress-background);
			color: var(--ck-color-base-background);
			border: 1px solid var(--ck-color-base-background);
			padding: 2px 4px;
			font-size: 10px;
			border-radius: 3px;
			opacity: 0;
			transition: opacity 100ms ease-in-out;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
				transition: none;
		}
			}


/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .page-break {
	position: relative;
	clear: both;
	padding: 5px 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ck-content .page-break::after {
		content: '';
		position: absolute;
		border-bottom: 2px dashed hsl(0, 0%, 77%);
		width: 100%;
	}

.ck-content .page-break__label {
	position: relative;
	z-index: 1;
	padding: .3em .6em;
	display: block;
	text-transform: uppercase;
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;
	font-size: 0.75em;
	font-weight: bold;
	color: hsl(0, 0%, 20%);
	background: hsl(0, 0%, 100%);
	box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);

	/* Disable the possibility to select the label text by the user. */
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/* Do not show the page break element inside the print preview window. */
@media print {
	.ck-content .page-break {
		padding: 0;
	}

		.ck-content .page-break::after {
			display: none;
		}

	/*
	 * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.
	 * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.
	 *
	 * Keep this in sync with the pagination plugins.
	 */
	.ck-content *:has(+ .page-break) {
		margin-bottom: 0;
	}
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-show-blocks-border-color: hsl(0, 0%, 46%);
}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *):not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck-source-editing-area {
	position: relative;
	overflow: hidden;
}

.ck-source-editing-area::after,
.ck-source-editing-area textarea {
	padding: var(--ck-spacing-large);
	margin: 0;
	border: 1px solid transparent;
	line-height: var(--ck-line-height-base);
	font-size: var(--ck-font-size-normal);
	font-family: monospace;
	white-space: pre-wrap;
}

.ck-source-editing-area::after {
	content: attr(data-value) " ";
	visibility: hidden;
	display: block;
}

.ck-source-editing-area textarea {
	position: absolute;
	width: 100%;
	height: 100%;
	resize: none;
	outline: none;
	overflow: hidden;
	box-sizing: border-box;

	border-color: var(--ck-color-base-border);

	border-radius: 0;
}

.ck-rounded-corners .ck-source-editing-area textarea,
	.ck-source-editing-area textarea.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}

.ck-source-editing-area textarea:not([readonly]):focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

.ck.ck-special-characters > .ck-dialog__content > div {
		width: 350px;
		max-width: 100%;
		height: 100%;

		display: grid;
		grid-column-gap: 0px;
		grid-row-gap: 0px;
		grid-template-columns: 1fr;
		grid-template-rows: auto 1fr auto;
	}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories {
			grid-area: 1 / 1 / 2 / 2;
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view {
				padding-top: var(--ck-spacing-standard);
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
					background: var(--ck-color-base-error);
					color: var(--ck-color-base-background);
					padding: var(--ck-spacing-small) var(--ck-spacing-medium);
					min-width: var(--ck-table-properties-min-error-width);
					text-align: center;

					animation: ck-table-form-labeled-view-status-appear .15s ease both;

					/* The arrow pointing towards the field. */
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
						border-color: transparent transparent var(--ck-color-base-error) transparent;
						border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
						border-style: solid;
					}

@media (prefers-reduced-motion: reduce) {

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
						animation: none;
				}
					}

/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
					display: none;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view > .ck-label {
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown {
				display: block;
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button:not(:focus) {
						border: 1px solid var(--ck-color-base-border);
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button > span {
						width: 100%;
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-grid {
			grid-area: 2 / 1 / 3 / 2;
			max-height: 200px;
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-info {
			grid-area: 3 / 1 / 4 / 2;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-grid {
	max-width: 100%;
}

.ck.ck-character-grid .ck-character-grid__tiles {
		display: grid;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-info {
	display: flex;
	justify-content: space-between;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-style-panel-columns: 3;
}

.ck.ck-style-panel .ck-style-grid {
	display: grid;
	grid-template-columns: repeat(var(--ck-style-panel-columns),auto);
	justify-content: start;
}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		display: flex;
		justify-content: space-between;
		flex-direction: column;
	}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			display: flex;
			align-content: center;
			justify-content: flex-start;
			align-items: center;
			flex-grow: 1;
			flex-basis: 100%;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Ensure that table header text is aligned to the start by default. See https://github.com/ckeditor/ckeditor5/issues/19454. */

.ck-content .table th {
		text-align: start;
	}

/* Text alignment of the table header should match the editor settings and override the native browser styling,
	when content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638. */

.ck-content[dir="rtl"] .table th {
		text-align: right;
	}

.ck-content[dir="ltr"] .table th {
		text-align: left;
	}

.ck-content figure.table:not(.layout-table) {
		display: table;
	}

.ck-content figure.table:not(.layout-table) > table {
			width: 100%;
			height: 100%;
		}

.ck-content .table:not(.layout-table) {
		/* Give the table widget some air and center it horizontally */
		/* The first value should be equal to --ck-spacing-large variable if used in the editor context
		to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
		margin: 0.9em auto;
	}

.ck-content table.table:not(.layout-table),
	.ck-content figure.table:not(.layout-table) > table {
		/* The table cells should have slight borders */
		border-collapse: collapse;
		border-spacing: 0;

		/* The outer border of the table should be slightly darker than the inner lines.
		Also see https://github.com/ckeditor/ckeditor5-table/issues/50. */
		border: 1px double hsl(0, 0%, 70%);
	}

/* The linter is disabled here because linter is confused when resolving the `table.table:not(.layout-table)`
			and `figure.table:not(.layout-table) > table` selectors combined with below selectors.
			There is no need to split it into two large structures with same code just to make linter happy. */

/* stylelint-disable no-descending-specificity */

.ck-content table.table:not(.layout-table) > thead > tr > th, .ck-content figure.table:not(.layout-table) > table > thead > tr > th, .ck-content table.table:not(.layout-table) > tbody > tr > th, .ck-content figure.table:not(.layout-table) > table > tbody > tr > th {
					font-weight: bold;
					background: hsla(0, 0%, 0%, 5%);
				}

.ck-content table.table:not(.layout-table) > thead > tr > td,
				.ck-content figure.table:not(.layout-table) > table > thead > tr > td,
				.ck-content table.table:not(.layout-table) > tbody > tr > td,
				.ck-content figure.table:not(.layout-table) > table > tbody > tr > td,
				.ck-content table.table:not(.layout-table) > thead > tr > th,
				.ck-content figure.table:not(.layout-table) > table > thead > tr > th,
				.ck-content table.table:not(.layout-table) > tbody > tr > th,
				.ck-content figure.table:not(.layout-table) > table > tbody > tr > th {

					min-width: 2em;
					padding: 0.4em;

					/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.
					However, the border is a content style, so it should use .ck-content (so it works outside the editor).
					Hence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */
					border: 1px solid hsl(0, 0%, 75%);
					/* Opinionated table content styling: prevents content from shifting
					 * when Enter is pressed in the first cell.
					 * See: https://github.com/ckeditor/ckeditor5/pull/18801
					 */
				}

.ck-content table.table:not(.layout-table) > thead > tr > td > p:first-of-type, .ck-content figure.table:not(.layout-table) > table > thead > tr > td > p:first-of-type, .ck-content table.table:not(.layout-table) > tbody > tr > td > p:first-of-type, .ck-content figure.table:not(.layout-table) > table > tbody > tr > td > p:first-of-type, .ck-content table.table:not(.layout-table) > thead > tr > th > p:first-of-type, .ck-content figure.table:not(.layout-table) > table > thead > tr > th > p:first-of-type, .ck-content table.table:not(.layout-table) > tbody > tr > th > p:first-of-type, .ck-content figure.table:not(.layout-table) > table > tbody > tr > th > p:first-of-type {
						margin-top: 0;
					}

/* Mirrors the rule above for the last paragraph to keep the
					 * experience consistent with the first paragraph.
					 *
					 * Together, these rules prevent margins from appearing when a
					 * bogus paragraph becomes a real paragraph after it receives line
					 * height, text alignment, or other block style.
					 *
					 * See: https://github.com/ckeditor/ckeditor5/pull/18801
					 */

.ck-content table.table:not(.layout-table) > thead > tr > td > p:last-of-type, .ck-content figure.table:not(.layout-table) > table > thead > tr > td > p:last-of-type, .ck-content table.table:not(.layout-table) > tbody > tr > td > p:last-of-type, .ck-content figure.table:not(.layout-table) > table > tbody > tr > td > p:last-of-type, .ck-content table.table:not(.layout-table) > thead > tr > th > p:last-of-type, .ck-content figure.table:not(.layout-table) > table > thead > tr > th > p:last-of-type, .ck-content table.table:not(.layout-table) > tbody > tr > th > p:last-of-type, .ck-content figure.table:not(.layout-table) > table > tbody > tr > th > p:last-of-type {
						margin-bottom: 0;
					}

@media print {
		/**
		 * Sometimes Chrome incorrectly calculates the height of the last table row and some
		 * of the content overlaps the paragraph that is placed directly after the table. It affects
		 * the column split mode pagination calculation which causes mismatch between the print mode and
		 * the preview mode.
		 *
		 * This issue happens only if:
		 *
		 * 	* The table is inside a figure element.
		 * 	* The table has `display: table` style set.
		 * 	* The block element is placed directly after the table.
		 */
		.ck-content figure.table:not(.layout-table) {
			width: fit-content;
			height: fit-content;
		}

		/**
		 * Expanding the table to the full height of the parent container is necessary because tables
		 * are rendered inside <figure> elements, which is kinda buggy in table height calculation.
		 * While setting `height: 100%` fixes the issue in the editing mode described here:
		 * https://github.com/ckeditor/ckeditor5/issues/6186
		 *
		 * it's causing another issue with the table height in the print preview mode here:
		 * https://github.com/ckeditor/ckeditor5/issues/16856
		 *
		 * For now, resetting the height to `initial` in the print mode works as a workaround.
		 */
		.ck-content figure.table:not(.layout-table) > table {
			height: initial;
		}
}

.ck-editor__editable .ck-table-bogus-paragraph {
	/*
	 * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.
	 * See https://github.com/ckeditor/ckeditor5/issues/6062.
	 */
	display: inline-block;

	/*
	 * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.
	 * See https://github.com/ckeditor/ckeditor5/issues/9117.
	 */
	width: 100%;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row {
			flex-wrap: wrap;
		}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type {
					/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */
					flex-grow: 0.57;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type {
					/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */
					flex-grow: 0.43;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button {
					flex-grow: 1;
				}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:first-child {
				margin-top: var(--ck-spacing-large);
			}

/*
			* This value should match with the default margins of the block elements (like .media, .image or .table)
			* to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).
			*/

.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:last-child,
			
			.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:nth-last-child(2):has( + .ck-fake-selection-container) {
				margin-bottom: var(--ck-spacing-large);
			}

.ck-editor__editable .table.layout-table {
		display: table;
		margin: 0;

		/* Widget type around overrides. */
	}

.ck-editor__editable .table.layout-table.ck-widget:hover {
				/* To prevent the widget outline from being cut off at the bottom
				when the next cell or table has a background color, for example. */
				z-index: var(--ck-z-default);
			}

.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle {
				opacity: 0.75;
				visibility: visible;
			}

.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle:hover {
					opacity: 1;
				}

/* Because of setting the opacity to 0.75 to the selection handle for the layout table,
			it overrides the similar selector in widget (specificity is higher),
			thats why we must override it here also. */

.ck-editor__editable .table.layout-table.ck-widget:has( .ck-widget.table:hover ) > .ck-widget__selection-handle {
				opacity: 0;
				visibility: hidden;
			}

.ck-editor__editable .table.layout-table.ck-widget.ck-widget_selected {
				/* To prevent the widget outline from being cut off at the bottom
				when the next cell or table has a background color, for example. */
				z-index: var(--ck-z-default);
			}

.ck-content table.table.layout-table,
	.ck-content figure.table.layout-table {
		/* Do not reserve space above and below the layout table. */
		margin-top: 0;
		margin-bottom: 0;
	}

.ck-content table.table.layout-table,
	.ck-content figure.table.layout-table > table {
		border-spacing: 0;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row.ck-table-form__action-row .ck-button-save,
		.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel {
			justify-content: center;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-form .ck-form__row.ck-table-form__border-row,
		.ck.ck-table-form .ck-form__row.ck-table-form__background-row,
		.ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row,
		.ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row {
			flex-wrap: wrap;
			align-items: center;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row .ck-labeled-field-view {
				display: flex;
				flex-direction: column-reverse;
				align-items: center;
			}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row .ck-labeled-field-view .ck.ck-dropdown {
					flex-grow: 0;
				}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row .ck-table-form__dimension-operator {
				flex-grow: 0;
			}

/* Ignore labels that work as fieldset legends */

/* Fallback for table dimension operator */

.ck.ck-table-form .ck-form__row > *:not(.ck-label, .ck-table-form__dimension-operator) {
			flex-grow: 1;
		}

.ck.ck-table-form .ck.ck-labeled-field-view {
		/* Allow absolute positioning of the status (error) balloons. */
		position: relative;
	}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			position: absolute;
			left: 50%;
			bottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );
			transform: translate(-50%,100%);

			/* Make sure the balloon status stays on top of other form elements. */
			z-index: 1;

			/* The arrow pointing towards the field. */
		}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				content: "";
				position: absolute;
				top: calc( -1 * var(--ck-table-properties-error-arrow-size) );
				left: 50%;
				transform: translateX( -50% );
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			flex-wrap: wrap;
			flex-basis: 0;
			align-content: baseline;
		}

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
				flex-wrap: nowrap;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-color-table-caption-background: hsl(0, 0%, 97%);
	--ck-content-color-table-caption-text: hsl(0, 0%, 20%);
	--ck-color-table-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .table > figcaption,
.ck-content figure.table > table > caption {
	display: table-caption;
	caption-side: top;
	word-break: normal;
	overflow-wrap: anywhere;
	text-align: center;
	color: var(--ck-content-color-table-caption-text);
	background-color: var(--ck-content-color-table-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
		.ck-content .table > figcaption, .ck-content figure.table > table > caption {
		background-color: unset;
		color: unset;
		}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .table > figcaption.table__caption_highlighted, .ck.ck-editor__editable figure.table > table > caption.table__caption_highlighted {
			animation: ck-table-caption-highlight .6s ease-out;
		}
	}
.ck.ck-editor__editable .table > figcaption.ck-placeholder::before, .ck.ck-editor__editable figure.table > table > caption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the table caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

@keyframes ck-table-caption-highlight {
	0% {
		background-color: var(--ck-color-table-caption-highlighted-background);
	}

	100% {
		background-color: var(--ck-content-color-table-caption-background);
	}
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-table-column-resizer-hover: var(--ck-color-base-active);
	--ck-table-column-resizer-width: 7px;

	/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.
	   The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */
	--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);
}

.ck-content .table .ck-table-resized {
	table-layout: fixed;
}

.ck-content .table td,
.ck-content .table th {
	/* To prevent text overflowing beyond its cell when columns are resized by resize handler
	(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */
	overflow-wrap: break-word;
}

.ck.ck-editor__editable .table td,
.ck.ck-editor__editable .table th {
	/* The resizer element is placed inside each cell, so it must be positioned relatively to the cell. */
	position: relative;
}

.ck.ck-editor__editable .table .ck-table-column-resizer {
	position: absolute;
	top: 0;
	bottom: 0;
	right: var(--ck-table-column-resizer-position-offset);
	width: var(--ck-table-column-resizer-width);
	cursor: col-resize;
	user-select: none;
	z-index: var(--ck-z-default);
}

.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {
	display: none;
}

/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,
   all resizers must be hidden while the table is dragged. */
.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {
	display: none;
}

.ck.ck-editor__editable .table .ck-table-column-resizer:hover,
.ck.ck-editor__editable .table .ck-table-column-resizer__active {
	background-color: var(--ck-color-table-column-resizer-hover);
	opacity: 0.25;
}

.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
	left: var(--ck-table-column-resizer-position-offset);
	right: unset;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-content-table-style-spacing: 1.5em;
}

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			flex-wrap: wrap;
			flex-basis: 0;
			align-content: baseline;
		}

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
				flex-wrap: nowrap;
			}

.ck-content .table.table-style-align-left {
			float: left;
			margin-right: var(--ck-content-table-style-spacing);
		}

.ck-content .table.table-style-align-right {
			float: right;
			margin-left: var(--ck-content-table-style-spacing);
		}

.ck-content .table.table-style-align-center {
			margin-left: auto;
			margin-right: auto;
		}

.ck-content .table.table-style-block-align-left {
			margin-left: 0;
			margin-right: auto;
		}

.ck-content .table.table-style-block-align-right {
			margin-left: auto;
			margin-right: 0;
		}

.ck-editor__editable .table.layout-table.table-style-align-center {
			margin-left: auto;
			margin-right: auto;
		}

.ck-editor__editable .table.layout-table.table-style-align-left {
			margin-right: var(--ck-content-table-style-spacing);
		}

.ck-editor__editable .table.layout-table.table-style-align-right {
			margin-left: var(--ck-content-table-style-spacing);
		}

.ck-editor__editable .table.layout-table.table-style-block-align-left {
			margin-left: 0;
			margin-right: auto;
		}

.ck-editor__editable .table.layout-table.table-style-block-align-right {
			margin-left: auto;
			margin-right: 0;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-form-default-width: 340px;
}

.ck.ck-form {
	padding: 0 0 var(--ck-spacing-large);
}

.ck.ck-form.ck-form_default-width {
		width: var(--ck-form-default-width);
	}

.ck.ck-form:focus {
		outline: none;
	}

.ck.ck-form .ck.ck-input-text,
	.ck.ck-form .ck.ck-input-number {
		min-width: 100%;
		width: 0;
	}

.ck.ck-form .ck.ck-dropdown {
		min-width: 100%;
	}

.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
				border: 1px solid var(--ck-color-base-border);
			}

.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label {
				width: 100%;
			}

/* Default `ck-responsive-form` customization when it lies next to `ck-form` class */

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit {
					flex-direction: column;
					align-items: stretch;
					padding: 0;
			}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit > .ck {
						margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
				}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text {
						justify-content: center;
				}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding {
					padding-bottom: var(--ck-spacing-large);
			}
	}

[dir="ltr"] .ck.ck-form.ck-responsive-form > :not(:first-child) {
				margin-left: 0;
			}

[dir="rtl"] .ck.ck-form.ck-responsive-form > :not(:last-child) {
				margin-left: 0;
			}

/* End of `ck-responsive-form` customization */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row.ck-table-form__action-row {
		justify-content: flex-end;
	}

.ck.ck-form__row.ck-table-form__action-row .ck-button-save,
		.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel {
			justify-content: center;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-form .ck-form__row.ck-table-form__border-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__background-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			flex-wrap: wrap;
			align-items: center;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view {
				display: flex;
				flex-direction: column-reverse;
				align-items: center;
			}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown {
					flex-grow: 0;
				}

/* Ignore labels that work as fieldset legends */

/* Fallback for table dimension operator */

.ck.ck-table-form .ck-form__row:not(.ck-table-form__action-row) > *:not(.ck-label, .ck-table-form__dimension-operator) {
			flex-grow: 1;
		}

.ck.ck-table-form .ck.ck-labeled-field-view {
		/* Allow absolute positioning of the status (error) balloons. */
		position: relative;
	}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			position: absolute;
			left: 50%;
			bottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );
			transform: translate(-50%,100%);

			/* Make sure the balloon status stays on top of other form elements. */
			z-index: 1;

			/* The arrow pointing towards the field. */
		}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				content: "";
				position: absolute;
				top: calc( -1 * var(--ck-table-properties-error-arrow-size) );
				left: 50%;
				transform: translateX( -50% );
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-input-color {
	width: 100%;
	display: flex;
	flex-direction: row-reverse;
}

.ck.ck-input-color > input.ck.ck-input-text {
		min-width: auto;
		flex-grow: 1;
	}

.ck.ck-input-color > div.ck.ck-dropdown {
		min-width: auto;

		/* This dropdown has no arrow but a color preview instead. */
	}

.ck.ck-input-color > div.ck.ck-dropdown > .ck-input-color__button .ck-dropdown__arrow {
			display: none;
		}

.ck.ck-input-color .ck.ck-input-color__button {
		/* Resolving issue with misaligned buttons on Safari (see #10589) */
		display: flex;
	}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview {
			position: relative;
			overflow: hidden;
		}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
				position: absolute;
				display: block;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-insert-table-dropdown__grid {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * A class which hides an element in DOM.
 */

.ck-hidden {
	/* Override selector specificity. Otherwise, all elements with some display
	style defined will override this one, which is not a desired result. */
	display: none !important;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-z-default: 1;
	--ck-z-panel: calc( var(--ck-z-default) + 999 );
	--ck-z-dialog: 9999;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class that disables all transitions of the element and its children.
 */
.ck-transitions-disabled,
.ck-transitions-disabled * {
	transition: none !important;
}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 10(px) is the line height of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13);
	/* where -0.2(px) is the letter spacing of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-powered-by-padding-vertical: 2px;
	--ck-powered-by-padding-horizontal: 4px;
	--ck-powered-by-text-color: hsl(0, 0%, 31%);
	--ck-powered-by-border-radius: var(--ck-border-radius);
	--ck-powered-by-background: hsl(0, 0%, 100%);
	--ck-powered-by-border-color: var(--ck-color-focus-border);

	--ck-powered-by-svg-width: 53;
	--ck-powered-by-svg-height: 10;
	--ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13);
	--ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13);
}
.ck.ck-balloon-panel.ck-powered-by-balloon {
	--ck-border-radius: var(--ck-powered-by-border-radius);

	box-shadow: none;
	background: var(--ck-powered-by-background);
	min-height: unset;
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by {
		line-height: var(--ck-powered-by-line-height);
	}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a {
			cursor: pointer;
			display: flex;
			align-items: center;
			opacity: .66;
			filter: grayscale(80%);
			line-height: var(--ck-powered-by-line-height);
			padding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label {
			font-size: var(--ck-powered-by-font-size);
			letter-spacing: var(--ck-powered-by-letter-spacing);
			padding-left: 2px;
			text-transform: uppercase;
			font-weight: bold;
			margin-right: 4px;
			cursor: pointer;
			line-height: normal;
			color: var(--ck-powered-by-text-color);

		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon {
			display: block;
			cursor: pointer;
			width: var(--ck-powered-by-icon-width);
			height: var(--ck-powered-by-icon-height);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a {
				filter: grayscale(0%);
				opacity: 1;
			}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_border"] {
		border: var(--ck-focus-ring);
		border-color: var(--ck-powered-by-border-color);
	}
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 7.5(px) is the line height of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where -0.2(px) is the letter spacing of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-evaluation-badge-padding-vertical: 2px;
	--ck-evaluation-badge-padding-horizontal: 4px;
	--ck-evaluation-badge-text-color: hsl(0, 0%, 31%);
	--ck-evaluation-badge-border-radius: var(--ck-border-radius);
	--ck-evaluation-badge-background: hsl(0, 0%, 100%);
	--ck-evaluation-badge-border-color: var(--ck-color-focus-border);
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon {
	--ck-border-radius: var(--ck-evaluation-badge-border-radius);

	box-shadow: none;
	background: var(--ck-evaluation-badge-background);
	min-height: unset;
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge {
		line-height: var(--ck-evaluation-badge-line-height);
		padding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal);
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label {
			display: block;
			padding: 0 2px;
			font-size: var(--ck-evaluation-badge-font-size);
			letter-spacing: var(--ck-evaluation-badge-letter-spacing);
			font-weight: bold;
			line-height: normal;
			text-transform: uppercase;
			color: var(--ck-evaluation-badge-text-color);
		}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_border"] {
		border: var(--ck-focus-ring);
		border-color: var(--ck-evaluation-badge-border-color);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-aria-live-announcer {
	position: absolute;
	left: -10000px;
	top: -10000px;
}

.ck.ck-aria-live-region-list {
	list-style-type: none;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */
/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button,
a.ck.ck-button {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	position: relative;
	display: inline-flex;
	align-items: center;
}

[dir="ltr"] .ck.ck-button, [dir="ltr"] a.ck.ck-button {
		justify-content: left;
	}

[dir="rtl"] .ck.ck-button, [dir="rtl"] a.ck.ck-button {
		justify-content: right;
	}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		display: none;
	}

.ck.ck-button.ck-button_with-text .ck-button__label, a.ck.ck-button.ck-button_with-text .ck-button__label {
			display: inline-block;
		}

/* Center the icon horizontally in a button without text. */

.ck.ck-button:not(.ck-button_with-text),  a.ck.ck-button:not(.ck-button_with-text)  {
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		display: block;
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			display: block;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-item-button {
	min-height: unset;
	width: 100%;
	border-radius: 0;
}

[dir="ltr"] .ck.ck-list-item-button {
		text-align: left;
	}

[dir="rtl"] .ck.ck-list-item-button {
		text-align: right;
	}

[dir="ltr"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-right: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-holder {
		display: inline-flex;
		width: .9em;
		height: .9em;
	}

[dir="ltr"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-right: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-left: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-icon {
		height: 100%;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-collapsible.ck-collapsible_collapsed > .ck-collapsible__children {
		display: none;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-color-grid {
	display: grid;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.color-picker-hex-input {
	width: max-content;
}

.color-picker-hex-input .ck.ck-input {
		min-width: unset;
	}

.ck.ck-color-picker__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	margin: var(--ck-spacing-large) 0 0;
	width: unset;
}

.ck.ck-color-picker__row .ck.ck-labeled-field-view {
		padding-top: unset;
	}

.ck.ck-color-picker__row .ck.ck-input-text {
		width: unset;
	}

.ck.ck-color-picker__row .ck-color-picker__hash-view {
		padding-top: var(--ck-spacing-tiny);
		padding-right: var(--ck-spacing-medium);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* View fragment with color grids. */

.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			display: flex;
			align-items: center;
		}

[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color, [dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
				justify-content: flex-start;
	}

/* View fragment with a color picker. */

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			display: flex;
			flex-direction: row;
			justify-content: space-around;
		}

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save,
			.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel {
				flex: 1
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog-overlay {
	user-select: none;
	overscroll-behavior: none;

	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	top: 0;
}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent {
		pointer-events: none;
		animation: none;
		background: none;
	}

.ck.ck-dialog {
	overscroll-behavior: none;
	width: fit-content;
	position: absolute;
}

.ck.ck-dialog .ck.ck-form__header  {
		flex-shrink: 0;
	}

/* Modals should not be draggable. */

.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label {
			cursor: grab;
		}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog {
		pointer-events: all;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog .ck.ck-dialog__actions {
		display: flex;
		justify-content: flex-end;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-dropdown-max-width: 75vw;
}

.ck.ck-dropdown {
	display: inline-block;
	position: relative;
}

.ck.ck-dropdown .ck-dropdown__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

/* Dropdown button should span horizontally, e.g. in vertical toolbars */

.ck.ck-dropdown .ck-button.ck-dropdown__button {
		width: 100%;
	}

.ck.ck-dropdown .ck-dropdown__panel {
		display: none;
		z-index: var(--ck-z-panel);
		max-width: var(--ck-dropdown-max-width);

		position: absolute;
	}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible {
			display: inline-block;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme {
			bottom: 100%;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s {
			/*
			 * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.
			 * See https://github.com/ckeditor/ckeditor5/issues/1053.
			 */
			top: 100%;
			bottom: auto;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se {
			left: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw {
			right: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n {
			/* Positioning panels relative to the center of the button */
			left: 50%;
			transform: translateX(-50%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw {
			/* Positioning panels relative to the middle-west of the button */
			left: 75%;
			transform: translateX(-75%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme {
			/* Positioning panels relative to the middle-east of the button */
			left: 25%;
			transform: translateX(-25%);
		}

/*
 * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.
 * See https://github.com/ckeditor/ckeditor5/issues/7874
 */
.ck.ck-toolbar .ck-dropdown__panel {
	z-index: calc( var(--ck-z-panel) + 1 );
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-splitbutton {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}

.ck.ck-splitbutton .ck-splitbutton__action:focus {
		z-index: calc(var(--ck-z-default) + 1);
	}


/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-dropdown-max-width: 60vw;
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel {
	/* https://github.com/ckeditor/ckeditor5/issues/5586 */
	width: max-content;
	max-width: var(--ck-toolbar-dropdown-max-width);
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus {
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu {
	display: block;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
	pointer-events: none;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	position: absolute;
	max-height: 314px; /* With the default settings, this is equal to 10 menu items. */
	overflow-y: auto;
	z-index: calc(var(--ck-z-panel) + 1);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;
}

.ck.ck-form__row.ck-form__row_large-top-padding {
		padding-top: var(--ck-spacing-large);
	}

.ck.ck-form__row.ck-form__row_large-bottom-padding {
		padding-bottom: var(--ck-spacing-large);
	}

.ck.ck-form__row.ck-form__row_with-submit {
		flex-wrap: nowrap;
	}

.ck.ck-form__row.ck-form__row_with-submit > *:not(:first-child) {
			margin-inline-start: var(--ck-spacing-standard);
		}

.ck.ck-form__row > .ck.ck-form__row {
		padding: 0;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__header {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.ck.ck-form__header h2.ck-form__header__label {
		flex-grow: 1;
		text-overflow: ellipsis;
		overflow: hidden;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-icon {
	vertical-align: middle;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-label {
	display: block;
}

.ck.ck-voice-label {
	display: none;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		display: flex;
		position: relative;
	}

.ck.ck-labeled-field-view .ck.ck-label {
		display: block;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-list {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	display: flex;
	flex-direction: column;
}

.ck.ck-list .ck-list__item,
	.ck.ck-list .ck-list__separator {
		display: block;
	}

/* Make sure that whatever child of the list item gets focus, it remains on the
	top. Thanks to that, styles like box-shadow, outline, etc. are not masked by
	adjacent list items. */

.ck.ck-list .ck-list__item > *:focus {
		position: relative;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Make sure the balloon arrow does not float over its children. */
	--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);
}

.ck.ck-balloon-panel {
	display: none;
	position: absolute;

	z-index: var(--ck-z-panel);
}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			content: "";
			position: absolute;
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel.ck-balloon-panel_visible {
		display: block;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-balloon-rotator__navigation {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Buttons inside a toolbar should be centered when rotator bar is wider.
 * See: https://github.com/ckeditor/ckeditor5-ui/issues/495
 */
.ck .ck-balloon-rotator__content .ck-toolbar {
	justify-content: center;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-fake-panel {
	position: absolute;

	/* Fake panels should be placed under main balloon content. */
	z-index: calc(var(--ck-z-panel) - 1);
}

.ck .ck-fake-panel div {
	position: absolute;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	z-index: 2;
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	z-index: 1;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		z-index: var(--ck-z-panel); /* #315 */
		position: fixed;
		top: 0;
	}

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
		top: auto;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-autocomplete {
	position: relative;
}

.ck.ck-autocomplete > .ck-search__results {
		position: absolute;
		z-index: var(--ck-z-panel);
	}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			bottom: 100%;
		}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			top: 100%;
			bottom: auto;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

[dir="ltr"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				left: var(--ck-spacing-medium);
	}

[dir="rtl"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				right: var(--ck-spacing-medium);
	}

.ck.ck-search > .ck-labeled-field-view .ck-search__reset {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				display: block;
			}

/* Hide the filtered view when nothing was found */

.ck.ck-search > .ck-search__results > .ck-search__info:not(.ck-hidden) ~ * {
				display: none;
			}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-highlighted-text mark {
	background: var(--ck-color-highlight-background);
	vertical-align: initial;
	font-weight: inherit;
	line-height: inherit;
	font-size: inherit;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-balloon-panel.ck-tooltip {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	z-index: calc( var(--ck-z-dialog) + 100 );
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-spinner-size: 18px;
}

.ck.ck-spinner-container {
	display: block;
	position: relative;
}

.ck.ck-spinner {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	z-index: 1;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-toolbar {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	display: flex;
	flex-flow: row nowrap;
	align-items: center;
}

.ck.ck-toolbar > .ck-toolbar__items {
		display: flex;
		flex-flow: row wrap;
		align-items: center;
		flex-grow: 1;

	}

.ck.ck-toolbar .ck.ck-toolbar__separator {
		display: inline-block;

		/*
		 * A leading or trailing separator makes no sense (separates from nothing on one side).
		 * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and
		 * moved to another toolbar in the dropdown.
		 */
	}

.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,
		.ck.ck-toolbar .ck.ck-toolbar__separator:last-child {
			display: none;
		}

.ck.ck-toolbar .ck-toolbar__line-break {
		flex-basis: 100%;
	}

.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items {
		flex-direction: column;
	}

.ck.ck-toolbar.ck-toolbar_floating > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck-dropdown__button .ck-dropdown__arrow {
			display: none;
		}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-block-toolbar-button {
	position: absolute;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-menu-bar-menu-max-width: 75vw;
	--ck-menu-bar-nested-menu-horizontal-offset: 5px;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	z-index: var(--ck-z-panel);
	max-width: var(--ck-menu-bar-menu-max-width);
	position: absolute;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		bottom: 100%;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		top: 100%;
		bottom: auto;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		left: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		right: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		left: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		bottom: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		right: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		bottom: 0px;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu {
	display: block;
	position: relative;
}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-resizer: var(--ck-color-focus-border);
	--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
	--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);

	--ck-resizer-border-radius: var(--ck-border-radius);
	--ck-resizer-tooltip-offset: 10px;
	--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);
}

.ck .ck-widget {
	/* This is neccessary for type around UI to be positioned properly. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		position: absolute;
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the icon in not a subject to font-size or line-height to avoid
			unnecessary spacing around it. */
			display: block;
		}

/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		visibility: visible;
	}

/* Show the selection handle when the widget is selected, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle {
		visibility: visible;
	}

.ck .ck-size-view {
	background: var(--ck-color-resizer-tooltip-background);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: var(--ck-resizer-border-radius);
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: 0 var(--ck-spacing-small);
	height: var(--ck-resizer-tooltip-height);
	line-height: var(--ck-resizer-tooltip-height);
}

.ck .ck-size-view.ck-orientation-top-left,
	.ck .ck-size-view.ck-orientation-top-right,
	.ck .ck-size-view.ck-orientation-bottom-right,
	.ck .ck-size-view.ck-orientation-bottom-left,
	.ck .ck-size-view.ck-orientation-above-center {
		position: absolute;
	}

.ck .ck-size-view.ck-orientation-top-left {
		top: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

/* Class applied if the widget is too small to contain the size label */

.ck .ck-size-view.ck-orientation-above-center {
		top: calc(var(--ck-resizer-tooltip-height) * -1);
		left: 50%;
		transform: translate(-50%);
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-widget_with-resizer {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget__resizer {
	display: none;
	position: absolute;

	/* The wrapper itself should not interfere with the pointer device, only the handles should. */
	pointer-events: none;

	left: 0;
	top: 0;
}

.ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
		display: block;
	}

.ck .ck-widget__resizer__handle {
	position: absolute;

	/* Resizers are the only UI elements that should interfere with a pointer device. */
	pointer-events: all;
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		cursor: nesw-resize;
	}

/*
 * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Styles of the type around buttons
	 */

.ck .ck-widget .ck-widget__type-around__button {
		display: block;
		position: absolute;
		overflow: hidden;
		z-index: var(--ck-z-default);
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: calc(var(--ck-z-default) + 2);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
			/* Place it in the middle of the outline */
			top: calc(-0.5 * var(--ck-widget-outline-thickness));
			left: min(10%, 30px);

			transform: translateY(-50%);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after {
			/* Place it in the middle of the outline */
			bottom: calc(-0.5 * var(--ck-widget-outline-thickness));
			right: min(10%, 30px);

			transform: translateY(50%);
		}

/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			content: "";
			display: block;
			position: absolute;
			top: 1px;
			left: 1px;
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */

.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
	}

/*
	 * When the widget is hovered the "fake caret" would normally be narrower than the
	 * extra outline displayed around the widget. Let's extend the "fake caret" to match
	 * the full width of the widget.
	 */

.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		left: calc( -1 * var(--ck-widget-outline-thickness) );
		right: calc( -1 * var(--ck-widget-outline-thickness) );
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		top: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		bottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
 * Integration with the read-only mode of the editor.
 */
.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the #isEnabled property of the WidgetTypeAround plugin.
 */
.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the restricted editing mode (feature) of the editor.
 */
.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {
		display: none;
	}
.ck.ck-editor__editable.ck-restricted-editing_mode_restricted div.restricted-editing-exception .ck-widget__type-around {
		display: initial;
	}

/*# sourceMappingURL=ckeditor5.css.map */
/*!************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/admin/styles/custom.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************/
/* assets/admin/styles/custom.scss */
:root {
  --tblr-primary: #8e6135;
}

.navbar-vertical .navbar-collapse .sidebar.navbar-nav .nav-item .dropdown-menu-column .dropdown-item.active {
  color: var(--tblr-primary);
}

.navbar-brand-image {
  height: 4.2rem;
}
/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/admin/styles/translations-accordion.css ***!
  \***************************************************************************************************************************************/
/* Translation Accordion Styling */
.translation-accordion .accordion-item {
    margin-bottom: 0.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
}

.translation-accordion .accordion-button {
    font-weight: 500;
    padding: 1rem 1.25rem;
}

.translation-accordion .accordion-button:not(.collapsed) {
    background-color: #e7f1ff;
    color: #0c63e4;
}

.translation-accordion .accordion-button .flag {
    margin-right: 0.5rem;
    width: 20px;
    height: 15px;
    display: inline-block;
    background-size: cover;
}

.translation-accordion .accordion-body {
    padding: 1.5rem;
}

/* Flag icons using CSS */
.flag-fr {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj48cmVjdCB3aWR0aD0iOTAwIiBoZWlnaHQ9IjYwMCIgZmlsbD0iI0VEMjkzOSIvPjxyZWN0IHdpZHRoPSI2MDAiIGhlaWdodD0iNjAwIiBmaWxsPSIjZmZmIi8+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSI2MDAiIGZpbGw9IiMwMDIzOTUiLz48L3N2Zz4=);
}

.flag-en,
.flag-us {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NTAwIDM5MDAiPjxyZWN0IHdpZHRoPSI3NTAwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz48cGF0aCBkPSJNMCwwaDc1MDB2MzAwSDBNMCw2MDBoNzUwMHYzMDBIME0wLDEyMDBoNzUwMHYzMDBIME0wLDE4MDBoNzUwMHYzMDBIME0wLDI0MDBoNzUwMHYzMDBIME0wLDMwMDBoNzUwMHYzMDBIME0wLDM2MDBoNzUwMHYzMDBIMCIgZmlsbD0iI2ZmZiIvPjxyZWN0IHdpZHRoPSIzMDAwIiBoZWlnaHQ9IjIxMDAiIGZpbGw9IiMzYzNiNmUiLz48L3N2Zz4=);
}

.flag-de {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1IDMiPjxyZWN0IHdpZHRoPSI1IiBoZWlnaHQ9IjMiIGZpbGw9IiNmZmNlMDAiLz48cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSIyIiBmaWxsPSIjZDAwIi8+PHJlY3Qgd2lkdGg9IjUiIGhlaWdodD0iMSIvPjwvc3ZnPg==);
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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RFFBO0VBQ0U7QUNMRjs7QUU5RUE7RUFDSTtBRmlGSjs7QUU5RUE7RUFDSTtBRmlGSjs7QUU5RUE7RUFDSTtFQUNBO0VBQ0E7QUZpRko7O0FFOUVBO0VBQ0k7QUZpRko7O0FFOUVBO0VBQ0k7QUZpRko7O0FFOUVBO0VBQ0k7QUZpRko7O0FFOUVBOztFQUVJO0FGaUZKOztBRTlFQTtFQUNJO0FGaUZKOztBRTlFQTtFQUNJLGFEOUJNO0FEK0dWOztBRTdFSTtFQUNJO0FGZ0ZSOztBRTFFUTtFQUNJO0FGNkVaO0FFM0VZO0VBQ0k7RUFDQTtBRjZFaEI7QUV6RVE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRjJFWjs7QUVyRUk7RUFDSTtBRndFUjs7QUVwRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUZ1RUo7O0FFcEVBO0VBQ0k7RUFDQTtBRnVFSjtBRXJFSTs7O0VBR0k7QUZ1RVI7QUVwRUk7RUFDSTtFQUNBO0VBQ0EseUJEaEdJO0VDaUdKO0FGc0VSO0FFcEVRO0VBQ0ksV0RqR0Y7RUNrR0U7QUZzRVo7O0FFaEVJO0VBQ0k7RUFDQTtBRm1FUjtBRWhFSTtFQUNJO0FGa0VSOztBRTlEQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUJEMUhRO0VDMkhSLFdEeEhNO0VDeUhOO0FGaUVKO0FFL0RJO0VBQ0k7QUZpRVI7O0FFN0RBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEeElNO0VDeUlOO0FGZ0VKOztBRTdEQTtFQUNJLGNEaEpVO0VDaUpWO0FGZ0VKOztBRTdEQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQkQ3Sk07RUM4Sk4sV0Q3Sk07RUM4Sk47RUFDQTtBRmdFSjtBRTlESTs7RUFDSTtBRmlFUjtBRTlESTs7RUFDSSx5QkQxS0k7RUMyS0osV0R4S0U7QUR5T1Y7O0FFN0RBO0VBQ0k7QUZnRUo7O0FFN0RBO0VBQ0k7QUZnRUo7O0FFNURJO0VBQ0k7RUFDQTtFQUNBO0VB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QUF5QjtBQUN6QjtJQUNJLHlEQUF1VTtBQUMzVTs7QUFFQTs7SUFFSSx5REFBdWQ7QUFDM2Q7O0FBRUE7SUFDSSx5REFBK1I7QUFDblMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc2hlcGhlcmQuanMvZGlzdC9jc3Mvc2hlcGhlcmQuY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvYWRtaW4vY3NzL19uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vdmVuZG9yL3N5bGl1cy9tb2xsaWUtcGx1Z2luL2Fzc2V0cy9hZG1pbi9jc3MvbWFpbi5zY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvYWRtaW4vY3NzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi92ZW5kb3Ivc3lsaXVzL21vbGxpZS1wbHVnaW4vYXNzZXRzL2FkbWluL2Nzcy9fb3ZlcnJpZGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vdmVuZG9yL3N5bGl1cy9tb2xsaWUtcGx1Z2luL2Fzc2V0cy9hZG1pbi9jc3MvX3N1YnNjcmlwdGlvbi5zY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvYWRtaW4vY3NzL19yZWN1cnJpbmdfdmFyaWFudC5zY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvYWRtaW4vY3NzL19hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdHJpeC9kaXN0L3RyaXguY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90b20tc2VsZWN0L2Rpc3QvY3NzL3RvbS1zZWxlY3QuZGVmYXVsdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vdmVuZG9yL3N5bWZvbnkvdXgtbGl2ZS1jb21wb25lbnQvYXNzZXRzL2Rpc3QvbGl2ZS5taW4uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvZGlzdC9ja2VkaXRvcjUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9pbmRleC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9nbG9iYWxzL2dsb2JhbHMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fY29sb3JzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2Rpc2FibGVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvY3VzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvbnRzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3Jlc2V0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3JvdW5kZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fc2hhZG93LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3NwYWNpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fZGlzYWJsZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvbWl4aW5zL19idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9zd2l0Y2hidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vbGlzdGl0ZW1idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbG9yZ3JpZC9jb2xvcmdyaWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ2FjdGlvbnMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL2xpc3Rkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51cGFuZWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9hY2Nlc3NpYmlsaXR5aGVscC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2VkaXRvcnVpL2VkaXRvcnVpLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZm9ybWhlYWRlci9mb3JtaGVhZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWxlZGlucHV0L2xhYmVsZWRpbnB1dC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xpc3QvbGlzdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnJvdGF0b3IuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9mYWtlcGFuZWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9zdGlja3lwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Zvcm0vZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2NsYXNzaWNlZGl0b3IuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtYm9va21hcmsvYm9va21hcmsuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtYm9va21hcmsvYm9va21hcmtmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrdG9vbGJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWNsaXBib2FyZC9jbGlwYm9hcmQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtY29kZS1ibG9jay9jb2RlYmxvY2suY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtZW5naW5lL3BsYWNlaG9sZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWZpbmQtYW5kLXJlcGxhY2UvZmluZGFuZHJlcGxhY2Vmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWhlYWRpbmcvaGVhZGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1ob3Jpem9udGFsLWxpbmUvaG9yaXpvbnRhbGxpbmUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaHRtbC1lbWJlZC9odG1sZW1iZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2VpbnNlcnQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRpY29uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkbG9hZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkcHJvZ3Jlc3MuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWN1c3RvbXJlc2l6ZWZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua3Rvb2xiYXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saW5rL2xpbmtpbWFnZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saW5rL2xpbmtwcm9wZXJ0aWVzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua3Byb3ZpZGVyaXRlbXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGlzdC9saXN0cHJvcGVydGllcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saXN0L2xpc3RzdHlsZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVudGlvbi9tZW50aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXJlc3RyaWN0ZWQtZWRpdGluZy9yZXN0cmljdGVkZWRpdGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyZ3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyaW5mby5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvc3BlY2lhbGNoYXJhY3RlcnMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JvdXAuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS9jb2xvcmlucHV0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL2Zvcm1yb3cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvaW5zZXJ0dGFibGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVjZWxscHJvcGVydGllcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWVkaXRpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlcHJvcGVydGllcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZXNlbGVjdGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWxheW91dC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZXByb3BlcnRpZXMtZXhwZXJpbWVudGFsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlZm9ybS1leHBlcmltZW50YWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy1leHBlcmltZW50YWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVjZWxscHJvcGVydGllcy1leHBlcmltZW50YWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0cmVzaXplLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXdpZGdldC93aWRnZXR0eXBlYXJvdW5kLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWJhc2ljLXN0eWxlcy90aGVtZS9jb2RlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWJsb2NrLXF1b3RlL3RoZW1lL2Jsb2NrcXVvdGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtY2tib3gvdGhlbWUvY2tib3hpbWFnZWVkaXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtY2xpcGJvYXJkL3RoZW1lL2NsaXBib2FyZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1jb2RlLWJsb2NrL3RoZW1lL2NvZGVibG9jay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1jb3JlL3RoZW1lL2NvcmUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvdGhlbWUvY2xhc3NpY2VkaXRvci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1lZGl0b3ItaW5saW5lL3RoZW1lL2lubGluZWVkaXRvci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaXBpY2tlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaWNhdGVnb3JpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtZW1vamkvdGhlbWUvZW1vamlncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppcGlja2VyZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaXRvbmUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtZW5naW5lL3RoZW1lL3BsYWNlaG9sZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWVuZ2luZS90aGVtZS9yZW5kZXJlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1maW5kLWFuZC1yZXBsYWNlL3RoZW1lL2ZpbmRhbmRyZXBsYWNlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWZpbmQtYW5kLXJlcGxhY2UvdGhlbWUvZmluZGFuZHJlcGxhY2Vmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWZvbnQvdGhlbWUvZm9udHNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtZnVsbHNjcmVlbi90aGVtZS9mdWxsc2NyZWVuLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWhlYWRpbmcvdGhlbWUvaGVhZGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1oaWdobGlnaHQvdGhlbWUvaGlnaGxpZ2h0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS90aGVtZS9ob3Jpem9udGFsbGluZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1odG1sLWVtYmVkL3RoZW1lL2h0bWxlbWJlZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1odG1sLXN1cHBvcnQvdGhlbWUvZGF0YWZpbHRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZWNhcHRpb24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtaW1hZ2Uvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXJlc2l6ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXN0eWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkcHJvZ3Jlc3MuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2V1cGxvYWRpY29uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkbG9hZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlcGxhY2Vob2xkZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VpbnNlcnQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtbGluay90aGVtZS9saW5rdG9vbGJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1saW5rL3RoZW1lL2xpbmtpbWFnZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1saW5rL3RoZW1lL2xpbmtmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LWxpbmsvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtbGluay90aGVtZS9saW5rcHJvdmlkZXJpdGVtcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2RvY3VtZW50bGlzdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2xpc3RzdHlsZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS9saXN0Zm9ybWF0dGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2xpc3QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS90b2RvbGlzdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWVtYmVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL3RoZW1lL21lZGlhZW1iZWRlZGl0aW5nLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1mb3JtL3Jlc3BvbnNpdmVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvdGhlbWUvbWVkaWFmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LW1lbnRpb24vdGhlbWUvbWVudGlvbnVpLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LW1pbmltYXAvdGhlbWUvbWluaW1hcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1wYWdlLWJyZWFrL3RoZW1lL3BhZ2VicmVhay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS1zaG93LWJsb2Nrcy90aGVtZS9zaG93YmxvY2tzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXNob3ctYmxvY2tzL25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXNvdXJjZS1lZGl0aW5nL3RoZW1lL3NvdXJjZWVkaXRpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtc291cmNlLWVkaXRpbmcvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtc291cmNlLWVkaXRpbmcvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX2ZvY3VzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXNvdXJjZS1lZGl0aW5nL25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL3RoZW1lL3NwZWNpYWxjaGFyYWN0ZXJzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy90aGVtZS9jaGFyYWN0ZXJncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy90aGVtZS9jaGFyYWN0ZXJpbmZvLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXN0eWxlL3RoZW1lL3N0eWxlZ3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlbGF5b3V0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2Zvcm1yb3cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlcHJvcGVydGllcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZWNhcHRpb24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGFibGUvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZWNvbHVtbnJlc2l6ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZXByb3BlcnRpZXMtZXhwZXJpbWVudGFsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvZm9ybXJvdy1leHBlcmltZW50YWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVmb3JtLWV4cGVyaW1lbnRhbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS10YWJsZS90aGVtZS9jb2xvcmlucHV0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2luc2VydHRhYmxlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvZ2xvYmFscy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9nbG9iYWxzL19oaWRkZW4uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9femluZGV4LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX3RyYW5zaXRpb24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9fcG93ZXJlZGJ5LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX2V2YWx1YXRpb25iYWRnZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2FyaWFsaXZlYW5ub3VuY2VyL2FyaWFsaXZlYW5ub3VuY2VyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2J1dHRvbi9zd2l0Y2hidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9idXR0b24vbGlzdGl0ZW1idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2NvbG9yZ3JpZC9jb2xvcmdyaWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2NvbG9yc2VsZWN0b3IvY29sb3JzZWxlY3Rvci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nYWN0aW9ucy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vc3BsaXRidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi90b29sYmFyZHJvcGRvd24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm1yb3cvZm9ybXJvdy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm1oZWFkZXIvZm9ybWhlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2ljb24vaWNvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbGFiZWxlZGZpZWxkL2xhYmVsZWRmaWVsZHZpZXcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9saXN0L2xpc3QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucGFuZWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucm90YXRvci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL2Zha2VwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL3N0aWNreXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9oaWdobGlnaHRlZHRleHQvaGlnaGxpZ2h0ZWR0ZXh0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci9ibG9ja3Rvb2xiYXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS13aWRnZXQvdGhlbWUvd2lkZ2V0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXRyZXNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUtd2lkZ2V0L3RoZW1lL3dpZGdldHR5cGVhcm91bmQuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9hZG1pbi9zdHlsZXMvY3VzdG9tLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2FkbWluL3N0eWxlcy90cmFuc2xhdGlvbnMtYWNjb3JkaW9uLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIuc2hlcGhlcmQtYnV0dG9ue2JhY2tncm91bmQ6IzMyODhlNjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjNweDtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNzUpO2N1cnNvcjpwb2ludGVyO21hcmdpbi1yaWdodDouNXJlbTtwYWRkaW5nOi41cmVtIDEuNXJlbTt0cmFuc2l0aW9uOmFsbCAuNXMgZWFzZX0uc2hlcGhlcmQtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVye2JhY2tncm91bmQ6IzE5NmZjYztjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNzUpfS5zaGVwaGVyZC1idXR0b24uc2hlcGhlcmQtYnV0dG9uLXNlY29uZGFyeXtiYWNrZ3JvdW5kOiNmMWYyZjM7Y29sb3I6cmdiYSgwLDAsMCwuNzUpfS5zaGVwaGVyZC1idXR0b24uc2hlcGhlcmQtYnV0dG9uLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpob3ZlcntiYWNrZ3JvdW5kOiNkNmQ5ZGI7Y29sb3I6cmdiYSgwLDAsMCwuNzUpfS5zaGVwaGVyZC1idXR0b246ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfVxuLnNoZXBoZXJkLWZvb3Rlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjVweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo1cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjAgLjc1cmVtIC43NXJlbX0uc2hlcGhlcmQtZm9vdGVyIC5zaGVwaGVyZC1idXR0b246bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH1cbi5zaGVwaGVyZC1jYW5jZWwtaWNvbntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOmhzbGEoMCwwJSw1MCUsLjc1KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MmVtO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MDtwYWRkaW5nOjA7dHJhbnNpdGlvbjpjb2xvciAuNXMgZWFzZX0uc2hlcGhlcmQtY2FuY2VsLWljb246aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNzUpfS5zaGVwaGVyZC1oYXMtdGl0bGUgLnNoZXBoZXJkLWNvbnRlbnQgLnNoZXBoZXJkLWNhbmNlbC1pY29ue2NvbG9yOmhzbGEoMCwwJSw1MCUsLjc1KX0uc2hlcGhlcmQtaGFzLXRpdGxlIC5zaGVwaGVyZC1jb250ZW50IC5zaGVwaGVyZC1jYW5jZWwtaWNvbjpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC43NSl9XG4uc2hlcGhlcmQtdGl0bGV7Y29sb3I6cmdiYSgwLDAsMCwuNzUpO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MDtwYWRkaW5nOjB9XG4uc2hlcGhlcmQtaGVhZGVye2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjVweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo1cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtsaW5lLWhlaWdodDoyZW07cGFkZGluZzouNzVyZW0gLjc1cmVtIDB9LnNoZXBoZXJkLWhhcy10aXRsZSAuc2hlcGhlcmQtY29udGVudCAuc2hlcGhlcmQtaGVhZGVye2JhY2tncm91bmQ6I2U2ZTZlNjtwYWRkaW5nOjFlbX1cbi5zaGVwaGVyZC10ZXh0e2NvbG9yOnJnYmEoMCwwLDAsLjc1KTtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxLjNlbTtwYWRkaW5nOi43NWVtfS5zaGVwaGVyZC10ZXh0IHB7bWFyZ2luLXRvcDowfS5zaGVwaGVyZC10ZXh0IHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9XG4uc2hlcGhlcmQtY29udGVudHtib3JkZXItcmFkaXVzOjVweDtvdXRsaW5lOm5vbmU7cGFkZGluZzowfVxuLnNoZXBoZXJkLWVsZW1lbnR7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NXB4O2JveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwwLDAsLjIpO21heC13aWR0aDo0MDBweDtvcGFjaXR5OjA7b3V0bGluZTpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuM3MsdmlzaWJpbGl0eSAuM3M7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MTAwJTt6LWluZGV4Ojk5OTl9LnNoZXBoZXJkLWVuYWJsZWQuc2hlcGhlcmQtZWxlbWVudHtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5zaGVwaGVyZC1lbGVtZW50W2RhdGEtcG9wcGVyLXJlZmVyZW5jZS1oaWRkZW5dOm5vdCguc2hlcGhlcmQtY2VudGVyZWQpe29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Zpc2liaWxpdHk6aGlkZGVufS5zaGVwaGVyZC1lbGVtZW50LC5zaGVwaGVyZC1lbGVtZW50ICosLnNoZXBoZXJkLWVsZW1lbnQgOmFmdGVyLC5zaGVwaGVyZC1lbGVtZW50IDpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fS5zaGVwaGVyZC1hcnJvdywuc2hlcGhlcmQtYXJyb3c6YmVmb3Jle2hlaWdodDoxNnB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE2cHg7ei1pbmRleDotMX0uc2hlcGhlcmQtYXJyb3c6YmVmb3Jle2JhY2tncm91bmQ6I2ZmZjtjb250ZW50OlwiXCI7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LnNoZXBoZXJkLWVsZW1lbnRbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdPi5zaGVwaGVyZC1hcnJvd3tib3R0b206LThweH0uc2hlcGhlcmQtZWxlbWVudFtkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0+LnNoZXBoZXJkLWFycm93e3RvcDotOHB4fS5zaGVwaGVyZC1lbGVtZW50W2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF0+LnNoZXBoZXJkLWFycm93e3JpZ2h0Oi04cHh9LnNoZXBoZXJkLWVsZW1lbnRbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0+LnNoZXBoZXJkLWFycm93e2xlZnQ6LThweH0uc2hlcGhlcmQtZWxlbWVudC5zaGVwaGVyZC1jZW50ZXJlZD4uc2hlcGhlcmQtYXJyb3d7b3BhY2l0eTowfS5zaGVwaGVyZC1lbGVtZW50LnNoZXBoZXJkLWhhcy10aXRsZVtkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0+LnNoZXBoZXJkLWFycm93OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTZ9LnNoZXBoZXJkLXRhcmdldC1jbGljay1kaXNhYmxlZC5zaGVwaGVyZC1lbmFibGVkLnNoZXBoZXJkLXRhcmdldCwuc2hlcGhlcmQtdGFyZ2V0LWNsaWNrLWRpc2FibGVkLnNoZXBoZXJkLWVuYWJsZWQuc2hlcGhlcmQtdGFyZ2V0ICp7cG9pbnRlci1ldmVudHM6bm9uZX1cbi5zaGVwaGVyZC1tb2RhbC1vdmVybGF5LWNvbnRhaW5lcntoZWlnaHQ6MDtsZWZ0OjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlLW91dCxoZWlnaHQgMG1zIC4zcyxvcGFjaXR5IC4zcyAwbXM7d2lkdGg6MTAwdnc7ei1pbmRleDo5OTk3fS5zaGVwaGVyZC1tb2RhbC1vdmVybGF5LWNvbnRhaW5lci5zaGVwaGVyZC1tb2RhbC1pcy12aXNpYmxle2hlaWdodDoxMDB2aDtvcGFjaXR5Oi41O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlLW91dCxoZWlnaHQgMHMgMHMsb3BhY2l0eSAuM3MgMHN9LnNoZXBoZXJkLW1vZGFsLW92ZXJsYXktY29udGFpbmVyLnNoZXBoZXJkLW1vZGFsLWlzLXZpc2libGUgcGF0aHtwb2ludGVyLWV2ZW50czphbGx9IiwiLm9uYm9hcmRpbmctd2l6YXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiA1MHB4O1xuICBib3R0b206IDEwcHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGNvdW50ZXItcmVzZXQ6IG5hdi1lbGVtZW50IDA7ICBcbn1cblxuLm9uYm9hcmRpbmctd2l6YXJkX19sb2dvIHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5vbmJvYXJkaW5nLXdpemFyZF9fc3RlcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm9uYm9hcmRpbmctd2l6YXJkX19zdGVwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb3VudGVyLWluY3JlbWVudDogbmF2LWVsZW1lbnQgMTtcblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFweDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogLTFweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG5cbi5vbmJvYXJkaW5nLXdpemFyZF9fc3RlcC0tY3VycmVudCB7XG4gICY6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1zdWNjZXNzO1xuICB9XG5cbiAgJi5vbmJvYXJkaW5nLXdpemFyZF9fc3RlcCxcbiAgfiAub25ib2FyZGluZy13aXphcmRfX3N0ZXAge1xuICAgIC5vbmJvYXJkaW5nLXdpemFyZF9fbmFtZSB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBjb3VudGVyKG5hdi1lbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuLm9uYm9hcmRpbmctd2l6YXJkX19uYW1lIHtcbiAgY29sb3I6ICRjLXNlY29uZGFyeTtcbn1cblxuLm9uYm9hcmRpbmctd2l6YXJkX19jaGVjayB7XG4gIGNvbG9yOiAkYy1zZWNvbmRhcnk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgXG4gICYuaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cbn1cblxuLm9uYm9hcmRpbmctd2l6YXJkX19hcnJvdy5pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbiIsIkBpbXBvcnQgJ35zaGVwaGVyZC5qcy9kaXN0L2Nzcy9zaGVwaGVyZC5jc3MnO1xuQGltcG9ydCAnLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi9uYXZpZ2F0aW9uJztcbkBpbXBvcnQgJy4vb3ZlcnJpZGVzJztcbkBpbXBvcnQgJy4vc3Vic2NyaXB0aW9uJztcbkBpbXBvcnQgJy4vcmVjdXJyaW5nX3ZhcmlhbnQnO1xuQGltcG9ydCAnLi9hY2NvcmRpb24nO1xuIiwiJGMtcHJpbWFyeTogIzAwNDBGRiAhZGVmYXVsdDtcbiRjLXNlY29uZGFyeTogIzk3OTc5NyAhZGVmYXVsdDtcbiRjLXN1Y2Nlc3M6ICMzMkFEMzAgIWRlZmF1bHQ7XG4kYy13aGl0ZTogI0ZGRiAhZGVmYXVsdDtcbiRjLWJsYWNrOiAjMDAwICFkZWZhdWx0O1xuXG4kc3BhY2luZzogNDBweCAhZGVmYXVsdDtcbiIsIi5wdXNoYWJsZSB7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbn1cblxuLmRyYWdnYWJsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJhZ2dhYmxlLWJ1dHRvbi1lbmFibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG59XG5cbi5kLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1yLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubWwtYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zaGVwaGVyZC1oZWFkZXIsXG4uc2hlcGhlcmQtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uc2hlcGhlcmQtaGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2hlcGhlcmQtdGV4dCB7XG4gICAgcGFkZGluZzogJHNwYWNpbmc7XG59XG5cbi5zaGVwaGVyZC1lbGVtZW50Om5vdCguc2hlcGhlcmQtaGFzLXRpdGxlKSB7XG4gICAgLnNoZXBoZXJkLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4uc2hlcGhlcmQtZWxlbWVudC0tZmlyc3Qge1xuICAgIC5zaGVwaGVyZC1oZWFkZXIge1xuICAgICAgICAmLnNoZXBoZXJkLWhlYWRlciB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAuc2hlcGhlcmQtdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3lsaXVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOC8wNi9tb2xsaWUucG5nJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNzdGVwLWZpbmlzaC13aXphcmQtZXJyb3ItbGFiZWwge1xuICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnNoZXBoZXJkLWVsZW1lbnQtLWFsaWduLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOiAxMDBweCAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zaGVwaGVyZC1lbGVtZW50LS1jb2xsYXBzZWQge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICAuc2hlcGhlcmQtaGVhZGVyLFxuICAgIC5zaGVwaGVyZC1idXR0b24sXG4gICAgLnNoZXBoZXJkLXRleHQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5zaGVwaGVyZC1idXR0b24tLWNvbGxhcHNlIHtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1wcmltYXJ5O1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy13aGl0ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaGVwaGVyZC1jZW50ZXJlZDpub3QoLnNoZXBoZXJkLWVsZW1lbnQtLWFsaWduLXJpZ2h0KSB7XG4gICAgLnNoZXBoZXJkLWZvb3RlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgcGFkZGluZzogMCAkc3BhY2luZyAkc3BhY2luZztcbiAgICB9XG5cbiAgICAuc2hlcGhlcmQtYnV0dG9uOm5vdCguc2hlcGhlcmQtYnV0dG9uX19vcGVuKTpub3QoLnNoZXBoZXJkLWJ1dHRvbi0tY2xvc2UpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnNoZXBoZXJkLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nOiAxNXB4IDI1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXByaW1hcnk7XG4gICAgY29sb3I6ICRjLXdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICAuaWNvbi5yaWdodCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIH1cbn1cblxuLnNoZXBoZXJkLWJ1dHRvbl9fb3BlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICAgIGNvbG9yOiAkYy1ibGFjaztcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2hlcGhlcmQtYnV0dG9uLXNlY29uZGFyeSB7XG4gICAgY29sb3I6ICRjLXNlY29uZGFyeTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNoZXBoZXJkLWJ1dHRvbi0tY2xvc2UsXG4uc2hlcGhlcmQtYnV0dG9uLS1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00MHB4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAxcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJGMtd2hpdGU7XG4gICAgY29sb3I6ICRjLWJsYWNrO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDJweCByZ2JhKCRjLWJsYWNrLCAwLjMpKTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuXG4gICAgLmljb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXByaW1hcnk7XG4gICAgICAgIGNvbG9yOiAkYy13aGl0ZTtcbiAgICB9XG59XG5cbi5zaGVwaGVyZC1idXR0b24tLWNsb3NlIHtcbiAgICByaWdodDogMDtcbn1cblxuLnNoZXBoZXJkLWJ1dHRvbi0tY29sbGFwc2Uge1xuICAgIHJpZ2h0OiA0MHB4O1xufVxuXG4uc2hlcGhlcmQtYnV0dG9uLS1hcnJvdy1kb3duIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGMtcHJpbWFyeSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cyBlYXNlO1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjMTk2ZmNjO1xuICAgIH1cbn1cblxuLnNoZXBoZXJkLWhhcy10aXRsZSB7XG4gICAgLnNoZXBoZXJkLXRpdGxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG5cbiAgICAuc2hlcGhlcmQtdGl0bGUge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGMtc3VjY2VzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaGVwaGVyZC10ZXh0IHtcbiAgICAgICAgcGFkZGluZzogMCAkc3BhY2luZyAkc3BhY2luZztcbiAgICB9XG5cbiAgICAuc2hlcGhlcmQtY29udGVudCAuc2hlcGhlcmQtaGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJHNwYWNpbmcgJHNwYWNpbmcgMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkYy1ibGFjaztcbiAgICB9XG59XG5cbiNtb2xsaWUtcGF5bWVudC1mb3JtIHtcbiAgICAudWkuZHJvcGRvd24uc2VsZWN0aW9uIHtcbiAgICAgICAgLm1lbnUge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwIC0xMnB4IC0xNXB4O1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQ1cHgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNoZXBoZXJkLWNvbnRlbnQge1xuICAgIGEge1xuICAgICAgICBjb2xvcjogJGMtcHJpbWFyeTtcbiAgICB9XG59XG5cbi5qcy1vbmJvYXJkaW5nV2l6YXJkLXNpbmdsZUNsaWNrLFxuLmpzLW9uYm9hcmRpbmdXaXphcmQtbW9sbGllQ29tcG9uZW50cyB7XG4gICAgcGFkZGluZzogNHB4IDA7XG59XG5cbi5zdGVwLW5leHQtZGlzYWJsZWQge1xuICAgIC5zaGVwaGVyZC1idXR0b24tLWFycm93LWRvd24sXG4gICAgLnNoZXBoZXJkLWJ1dHRvbi1uZXh0IHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXNlY29uZGFyeTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGMtc2Vjb25kYXJ5LCAxMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiI21vbGxpZS1zdWJzY3JpcHRpb24tdHJhbnNpdGlvbnMge1xuICAgIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuIiwiI3JlY3VycmluZy12YXJpYW50LXNldHRpbmdzIHtcbiAgICAuZmllbGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLmhlbHAtdGV4dCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gbGFiZWwge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuYWNjb3JkaW9uLWJ1dHRvbi5tb2xsaWUtYWNjb3JkaW9uIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiB2YXIoLS10YmxyLWFjY29yZGlvbi1idG4taWNvbi13aWR0aCwgMS4yNXJlbSk7XG4gICAgaGVpZ2h0OiB2YXIoLS10YmxyLWFjY29yZGlvbi1idG4taWNvbi13aWR0aCwgMS4yNXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS10YmxyLWFjY29yZGlvbi1idG4taWNvbiwgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJTIzMjEyNTI5JyUzZSUzY3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNMS42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCAxMC4yOTNsNS42NDYtNS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOCAwbC02LTZhLjUuNSAwIDAgMSAwLS43MDh6Jy8lM2UlM2Mvc3ZnJTNlXCIpKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tdGJsci1hY2NvcmRpb24tYnRuLWljb24td2lkdGgsIDEuMjVyZW0pO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRibHItYWNjb3JkaW9uLWJ0bi1pY29uLXRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4tb3V0KTtcbiAgfVxuXG4gICY6bm90KC5jb2xsYXBzZWQpIHtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tdGJsci1hY2NvcmRpb24tYnRuLWFjdGl2ZS1pY29uLCB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMyMTI1MjknJTNlJTNjcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J00xLjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEwLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHonLyUzZSUzYy9zdmclM2VcIikpO1xuICAgICAgdHJhbnNmb3JtOiB2YXIoLS10YmxyLWFjY29yZGlvbi1idG4taWNvbi10cmFuc2Zvcm0sIHJvdGF0ZSgtMTgwZGVnKSk7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKlxuVHJpeCAxLjMuNVxuQ29weXJpZ2h0IMKpIDIwMjQgMzdzaWduYWxzLCBMTENcbmh0dHA6Ly90cml4LWVkaXRvci5vcmcvKi9cbnRyaXgtZWRpdG9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xuICBtaW4taGVpZ2h0OiA1ZW07XG4gIG91dGxpbmU6IG5vbmU7IH1cbnRyaXgtdG9vbGJhciAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2NjYztcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzg4ODtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjV2dzsgfVxuICAgIEBtZWRpYSAobWF4LWRldmljZS13aWR0aDogNzY4cHgpIHtcbiAgICAgIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLWdyb3VwLXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTsgfVxuICBAbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IDc2OHB4KSB7XG4gICAgdHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi1ncm91cC1zcGFjZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IDAgMC41ZW07XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgdHJpeC10b29sYmFyIC50cml4LWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOyB9XG4gIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24udHJpeC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNjYmVlZmE7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICB0cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uOmRpc2FibGVkIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyNSk7IH1cbiAgQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA3NjhweCkge1xuICAgIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24ge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICBwYWRkaW5nOiAwIDAuM2VtOyB9IH1cbnRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tLWljb24ge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHdpZHRoOiAyLjZlbTtcbiAgaGVpZ2h0OiAxLjZlbTtcbiAgbWF4LXdpZHRoOiBjYWxjKDAuOGVtICsgNHZ3KTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH1cbiAgQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA3NjhweCkge1xuICAgIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tLWljb24ge1xuICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMC44ZW0gKyAzLjV2dyk7IH0gfVxuICB0cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgfVxuICAgIEBtZWRpYSAobWF4LWRldmljZS13aWR0aDogNzY4cHgpIHtcbiAgICAgIHRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tLWljb246OmJlZm9yZSB7XG4gICAgICAgIHJpZ2h0OiA2JTtcbiAgICAgICAgbGVmdDogNiU7IH0gfVxuICB0cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLnRyaXgtYWN0aXZlOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgdHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbjpkaXNhYmxlZDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjEyNTsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbi1hdHRhY2g6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xNi41JTIwNnYxMS41YTQlMjA0JTIwMCUyMDElMjAxLTglMjAwVjVhMi41JTIwMi41JTIwMCUyMDAlMjAxJTIwNSUyMDB2MTAuNWExJTIwMSUyMDAlMjAxJTIwMS0yJTIwMFY2SDEwdjkuNWEyLjUlMjAyLjUlMjAwJTIwMCUyMDAlMjA1JTIwMFY1YTQlMjA0JTIwMCUyMDElMjAwLTglMjAwdjEyLjVhNS41JTIwNS41JTIwMCUyMDAlMjAwJTIwMTElMjAwVjZoLTEuNXolMjIlMkYlM0UlM0MlMkZzdmclM0UpO1xuICB0b3A6IDglO1xuICBib3R0b206IDQlOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLWJvbGQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xNS42JTIwMTEuOGMxLS43JTIwMS42LTEuOCUyMDEuNi0yLjhhNCUyMDQlMjAwJTIwMCUyMDAtNC00SDd2MTRoN2MyLjElMjAwJTIwMy43LTEuNyUyMDMuNy0zLjglMjAwLTEuNS0uOC0yLjgtMi4xLTMuNHpNMTAlMjA3LjVoM2ExLjUlMjAxLjUlMjAwJTIwMSUyMDElMjAwJTIwM2gtM3YtM3ptMy41JTIwOUgxMHYtM2gzLjVhMS41JTIwMS41JTIwMCUyMDElMjAxJTIwMCUyMDN6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbi1pdGFsaWM6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMCUyMDV2M2gyLjJsLTMuNCUyMDhINnYzaDh2LTNoLTIuMmwzLjQtOEgxOFY1aC04eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7IH1cbnRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tLWljb24tbGluazo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIyNCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTkuODglMjAxMy43YTQuMyUyMDQuMyUyMDAlMjAwJTIwMSUyMDAtNi4wN2wzLjM3LTMuMzdhNC4yNiUyMDQuMjYlMjAwJTIwMCUyMDElMjA2LjA3JTIwMCUyMDQuMyUyMDQuMyUyMDAlMjAwJTIwMSUyMDAlMjA2LjA2bC0xLjk2JTIwMS43MmEuOTEuOTElMjAwJTIwMSUyMDEtMS4zLTEuM2wxLjk3LTEuNzFhMi40NiUyMDIuNDYlMjAwJTIwMCUyMDAtMy40OC0zLjQ4bC0zLjM4JTIwMy4zN2EyLjQ2JTIwMi40NiUyMDAlMjAwJTIwMCUyMDAlMjAzLjQ4LjkxLjkxJTIwMCUyMDElMjAxLTEuMyUyMDEuM3olMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk00LjI1JTIwMTkuNDZhNC4zJTIwNC4zJTIwMCUyMDAlMjAxJTIwMC02LjA3bDEuOTMtMS45YS45MS45MSUyMDAlMjAxJTIwMSUyMDEuMyUyMDEuM2wtMS45MyUyMDEuOWEyLjQ2JTIwMi40NiUyMDAlMjAwJTIwMCUyMDMuNDglMjAzLjQ4bDMuMzctMy4zOGMuOTYtLjk2Ljk2LTIuNTIlMjAwLTMuNDhhLjkxLjkxJTIwMCUyMDElMjAxJTIwMS4zLTEuMyUyMDQuMyUyMDQuMyUyMDAlMjAwJTIwMSUyMDAlMjA2LjA3bC0zLjM4JTIwMy4zOGE0LjI2JTIwNC4yNiUyMDAlMjAwJTIwMS02LjA3JTIwMHolMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLXN0cmlrZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIyNCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEyLjczJTIwMTRsLjI4LjE0Yy4yNi4xNS40NS4zLjU3LjQ0LjEyLjE0LjE4LjMuMTguNSUyMDAlMjAuMy0uMTUuNTYtLjQ0Ljc1LS4zLjItLjc2LjMtMS4zOS4zQTEzLjUyJTIwMTMuNTIlMjAwJTIwMCUyMDElMjA3JTIwMTQuOTV2My4zN2ExMC42NCUyMDEwLjY0JTIwMCUyMDAlMjAwJTIwNC44NC44OGMxLjI2JTIwMCUyMDIuMzUtLjE5JTIwMy4yOC0uNTYuOTMtLjM3JTIwMS42NC0uOSUyMDIuMTQtMS41N3MuNzQtMS40NS43NC0yLjMyYzAtLjI2LS4wMi0uNTEtLjA2LS43NWgtNS4yMXptLTUuNS00Yy0uMDgtLjM0LS4xMi0uNy0uMTItMS4xJTIwMC0xLjI5LjUyLTIuMyUyMDEuNTgtMy4wMiUyMDEuMDUtLjcyJTIwMi41LTEuMDglMjA0LjM0LTEuMDglMjAxLjYyJTIwMCUyMDMuMjguMzQlMjA0Ljk3JTIwMWwtMS4zJTIwMi45M2MtMS40Ny0uNi0yLjczLS45LTMuOC0uOS0uNTUlMjAwLS45Ni4wOC0xLjIuMjYtLjI2LjE3LS4zOC4zOC0uMzguNjQlMjAwJTIwLjI3LjE2LjUyLjQ4Ljc0LjE3LjEyLjUzLjMlMjAxLjA1LjUzSDcuMjN6TTMlMjAxM2gxOHYtMkgzdjJ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbi1xdW90ZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjI0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNiUyMDE3aDNsMi00VjdINXY2aDN6bTglMjAwaDNsMi00VjdoLTZ2NmgzeiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7IH1cbnRyaXgtdG9vbGJhciAudHJpeC1idXR0b24tLWljb24taGVhZGluZy0xOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMiUyMDl2M0g5djdINnYtN0gzVjloOXpNOCUyMDRoMTR2M2gtNnYxMmgtM1Y3SDhWNHolMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLWNvZGU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xOC4yJTIwMTJMMTUlMjAxNS4ybDEuNCUyMDEuNEwyMSUyMDEybC00LjYtNC42TDE1JTIwOC44bDMuMiUyMDMuMnpNNS44JTIwMTJMOSUyMDguOCUyMDcuNiUyMDcuNCUyMDMlMjAxMmw0LjYlMjA0LjZMOSUyMDE1LjIlMjA1LjglMjAxMnolMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLWJ1bGxldC1saXN0OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk00JTIwNGEyJTIwMiUyMDAlMjAxJTIwMCUyMDAlMjA0JTIwMiUyMDIlMjAwJTIwMCUyMDAlMjAwLTR6bTAlMjA2YTIlMjAyJTIwMCUyMDElMjAwJTIwMCUyMDQlMjAyJTIwMiUyMDAlMjAwJTIwMCUyMDAtNHptMCUyMDZhMiUyMDIlMjAwJTIwMSUyMDAlMjAwJTIwNCUyMDIlMjAyJTIwMCUyMDAlMjAwJTIwMC00em00JTIwM2gxNHYtMkg4djJ6bTAtNmgxNHYtMkg4djJ6bTAtOHYyaDE0VjVIOHolMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLW51bWJlci1saXN0OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjI0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMiUyMDE3aDJ2LjVIM3YxaDF2LjVIMnYxaDN2LTRIMnYxem0xLTloMVY0SDJ2MWgxdjN6bS0xJTIwM2gxLjhMMiUyMDEzLjF2LjloM3YtMUgzLjJMNSUyMDEwLjlWMTBIMnYxem01LTZ2MmgxNFY1SDd6bTAlMjAxNGgxNHYtMkg3djJ6bTAtNmgxNHYtMkg3djJ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbi11bmRvOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjI0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTIuNSUyMDhjLTIuNiUyMDAtNSUyMDEtNi45JTIwMi42TDIlMjA3djloOWwtMy42LTMuNkE4JTIwOCUyMDAlMjAwJTIwMSUyMDIwJTIwMTZsMi40LS44YTEwLjUlMjAxMC41JTIwMCUyMDAlMjAwLTEwLTcuMnolMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLXJlZG86OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xOC40JTIwMTAuNmExMC41JTIwMTAuNSUyMDAlMjAwJTIwMC0xNi45JTIwNC42TDQlMjAxNmE4JTIwOCUyMDAlMjAwJTIwMSUyMDEyLjctMy42TDEzJTIwMTZoOVY3bC0zLjYlMjAzLjZ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0taWNvbi1kZWNyZWFzZS1uZXN0aW5nLWxldmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjI0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMyUyMDE5aDE5di0ySDN2MnptNy02aDEydi0ySDEwdjJ6bS04LjMtLjNsMi44JTIwMi45TDYlMjAxNC4yJTIwNCUyMDEybDItMi0xLjQtMS41TDElMjAxMmwuNy43ek0zJTIwNXYyaDE5VjVIM3olMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtYnV0dG9uLS1pY29uLWluY3JlYXNlLW5lc3RpbmctbGV2ZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0zJTIwMTloMTl2LTJIM3Yyem03LTZoMTJ2LTJIMTB2MnptLTYuOS0xTDElMjAxNC4ybDEuNCUyMDEuNEw2JTIwMTJsLS43LS43LTIuOC0yLjhMMSUyMDkuOSUyMDMuMSUyMDEyek0zJTIwNXYyaDE5VjVIM3olMjIlMkYlM0UlM0MlMkZzdmclM0UpOyB9XG50cml4LXRvb2xiYXIgLnRyaXgtZGlhbG9ncyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxudHJpeC10b29sYmFyIC50cml4LWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwLjNlbSAxZW0gI2NjYztcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM4ODg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgei1pbmRleDogNTsgfVxudHJpeC10b29sYmFyIC50cml4LWlucHV0LS1kaWFsb2cge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAuNWVtIDAuOGVtO1xuICBtYXJnaW46IDAgMTBweCAwIDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgdHJpeC10b29sYmFyIC50cml4LWlucHV0LS1kaWFsb2cudmFsaWRhdGU6aW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogI0YwMCAwcHggMHB4IDEuNXB4IDFweDsgfVxudHJpeC10b29sYmFyIC50cml4LWJ1dHRvbi0tZGlhbG9nIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxudHJpeC10b29sYmFyIC50cml4LWRpYWxvZy0tbGluayB7XG4gIG1heC13aWR0aDogNjAwcHg7IH1cbnRyaXgtdG9vbGJhciAudHJpeC1kaWFsb2dfX2xpbmstZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIHRyaXgtdG9vbGJhciAudHJpeC1kaWFsb2dfX2xpbmstZmllbGRzIC50cml4LWlucHV0IHtcbiAgICBmbGV4OiAxOyB9XG4gIHRyaXgtdG9vbGJhciAudHJpeC1kaWFsb2dfX2xpbmstZmllbGRzIC50cml4LWJ1dHRvbi1ncm91cCB7XG4gICAgZmxleDogMCAwIGNvbnRlbnQ7XG4gICAgbWFyZ2luOiAwOyB9XG50cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdOm5vdCguYXR0YWNobWVudF9fY2FwdGlvbi1lZGl0b3IpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG50cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdOjotbW96LXNlbGVjdGlvbixcbnRyaXgtZWRpdG9yIFtkYXRhLXRyaXgtY3Vyc29yLXRhcmdldF06Oi1tb3otc2VsZWN0aW9uLCB0cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdIDo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG50cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdOjpzZWxlY3Rpb24sXG50cml4LWVkaXRvciBbZGF0YS10cml4LWN1cnNvci10YXJnZXRdOjpzZWxlY3Rpb24sIHRyaXgtZWRpdG9yIFtkYXRhLXRyaXgtbXV0YWJsZV0gOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbnRyaXgtZWRpdG9yIFtkYXRhLXRyaXgtbXV0YWJsZV0uYXR0YWNobWVudF9fY2FwdGlvbi1lZGl0b3I6Zm9jdXM6Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogaGlnaGxpZ2h0OyB9XG50cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdLmF0dGFjaG1lbnRfX2NhcHRpb24tZWRpdG9yOmZvY3VzOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBoaWdobGlnaHQ7IH1cblxudHJpeC1lZGl0b3IgW2RhdGEtdHJpeC1tdXRhYmxlXS5hdHRhY2htZW50LmF0dGFjaG1lbnQtLWZpbGUge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggaGlnaGxpZ2h0O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG50cml4LWVkaXRvciBbZGF0YS10cml4LW11dGFibGVdLmF0dGFjaG1lbnQgaW1nIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IGhpZ2hsaWdodDsgfVxudHJpeC1lZGl0b3IgLmF0dGFjaG1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgdHJpeC1lZGl0b3IgLmF0dGFjaG1lbnQ6aG92ZXIge1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxudHJpeC1lZGl0b3IgLmF0dGFjaG1lbnQtLXByZXZpZXcgLmF0dGFjaG1lbnRfX2NhcHRpb246aG92ZXIge1xuICBjdXJzb3I6IHRleHQ7IH1cbnRyaXgtZWRpdG9yIC5hdHRhY2htZW50X19wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAyMHB4O1xuICB0b3A6IGNhbGMoNTAlIC0gMTBweCk7XG4gIGxlZnQ6IDUlO1xuICB3aWR0aDogOTAlO1xuICBvcGFjaXR5OiAwLjk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjsgfVxuICB0cml4LWVkaXRvciAuYXR0YWNobWVudF9fcHJvZ3Jlc3NbdmFsdWU9XCIxMDBcIl0ge1xuICAgIG9wYWNpdHk6IDA7IH1cbnRyaXgtZWRpdG9yIC5hdHRhY2htZW50X19jYXB0aW9uLWVkaXRvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IH1cbnRyaXgtZWRpdG9yIC5hdHRhY2htZW50X190b29sYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IC0wLjllbTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxudHJpeC1lZGl0b3IgLnRyaXgtYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbnRyaXgtZWRpdG9yIC50cml4LWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNvbG9yOiAjNjY2O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDgwJTtcbiAgcGFkZGluZzogMCAwLjhlbTtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRyaXgtZWRpdG9yIC50cml4LWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOyB9XG4gIHRyaXgtZWRpdG9yIC50cml4LWJ1dHRvbi50cml4LWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2NiZWVmYTsgfVxuICB0cml4LWVkaXRvciAudHJpeC1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxudHJpeC1lZGl0b3IgLnRyaXgtYnV0dG9uLS1yZW1vdmUge1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogMS44ZW07XG4gIGhlaWdodDogMS44ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjhlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCBoaWdobGlnaHQ7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgdHJpeC1lZGl0b3IgLnRyaXgtYnV0dG9uLS1yZW1vdmU6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjBoZWlnaHQlM0QlMjIyNCUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTE5JTIwNi40TDE3LjYlMjA1JTIwMTIlMjAxMC42JTIwNi40JTIwNSUyMDUlMjA2LjRsNS42JTIwNS42TDUlMjAxNy42JTIwNi40JTIwMTlsNS42LTUuNiUyMDUuNiUyMDUuNiUyMDEuNC0xLjQtNS42LTUuNnolMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgyNHYyNEgweiUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDkwJTsgfVxuICB0cml4LWVkaXRvciAudHJpeC1idXR0b24tLXJlbW92ZTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzMzOyB9XG4gICAgdHJpeC1lZGl0b3IgLnRyaXgtYnV0dG9uLS1yZW1vdmU6aG92ZXI6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG50cml4LWVkaXRvciAuYXR0YWNobWVudF9fbWV0YWRhdGEtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG50cml4LWVkaXRvciAuYXR0YWNobWVudF9fbWV0YWRhdGEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgcGFkZGluZzogMC4xZW0gMC42ZW07XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICB0cml4LWVkaXRvciAuYXR0YWNobWVudF9fbWV0YWRhdGEgLmF0dGFjaG1lbnRfX25hbWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgdHJpeC1lZGl0b3IgLmF0dGFjaG1lbnRfX21ldGFkYXRhIC5hdHRhY2htZW50X19zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLnRyaXgtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgLnRyaXgtY29udGVudCAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC50cml4LWNvbnRlbnQgaDEge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAudHJpeC1jb250ZW50IGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwLjNlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4zZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjZlbTsgfVxuICAudHJpeC1jb250ZW50IFtkaXI9cnRsXSBibG9ja3F1b3RlLFxuICAudHJpeC1jb250ZW50IGJsb2NrcXVvdGVbZGlyPXJ0bF0ge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDAuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogMC4zZW07XG4gICAgcGFkZGluZy1yaWdodDogMC42ZW07IH1cbiAgLnRyaXgtY29udGVudCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAudHJpeC1jb250ZW50IFtkaXI9cnRsXSBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cbiAgLnRyaXgtY29udGVudCBwcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudHJpeC1jb250ZW50IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAudHJpeC1jb250ZW50IC5hdHRhY2htZW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnQgYSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLnRyaXgtY29udGVudCAuYXR0YWNobWVudCBhOmhvdmVyLCAudHJpeC1jb250ZW50IC5hdHRhY2htZW50IGE6dmlzaXRlZDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIC50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnRfX2NhcHRpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnRfX2NhcHRpb24gLmF0dGFjaG1lbnRfX25hbWUgKyAuYXR0YWNobWVudF9fc2l6ZTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcgwrcgJzsgfVxuICAudHJpeC1jb250ZW50IC5hdHRhY2htZW50LS1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAudHJpeC1jb250ZW50IC5hdHRhY2htZW50LS1wcmV2aWV3IC5hdHRhY2htZW50X19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgLnRyaXgtY29udGVudCAuYXR0YWNobWVudC0tZmlsZSB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiAwIDJweCAycHggMnB4O1xuICAgIHBhZGRpbmc6IDAuNGVtIDFlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAudHJpeC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCB7XG4gICAgICBmbGV4OiAxIDAgMzMlO1xuICAgICAgcGFkZGluZzogMCAwLjVlbTtcbiAgICAgIG1heC13aWR0aDogMzMlOyB9XG4gICAgLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tMiAuYXR0YWNobWVudCwgLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuIiwiLyoqXG4gKiB0b20tc2VsZWN0LmNzcyAodi8vQEB2ZXJzaW9uKVxuICogQ29weXJpZ2h0IChjKSBjb250cmlidXRvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpc1xuICogZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6XG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GXG4gKiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG4udHMtY29udHJvbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIHBhZGRpbmc6IDhweCA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sIHtcbiAgcGFkZGluZzogY2FsYyg4cHggLSAycHggLSAxcHgpIDhweCBjYWxjKDhweCAtIDJweCAtIDNweCAtIDFweCk7XG59XG4uZnVsbCAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uZGlzYWJsZWQgLnRzLWNvbnRyb2wsIC5kaXNhYmxlZCAudHMtY29udHJvbCAqIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG59XG4uZm9jdXMgLnRzLWNvbnRyb2wge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi50cy1jb250cm9sID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgPiBkaXYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMCAzcHggM3B4IDA7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGJhY2tncm91bmQ6ICMxZGE3ZWU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA3M2JiO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgPiBkaXYuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzkyYzgzNjtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCA+IGRpdiwgLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgPiBkaXYuYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZDJkMmQyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhYWFhO1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDdyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6IGF1dG8gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1jb250cm9sID4gaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG4uaGFzLWl0ZW1zIC50cy1jb250cm9sID4gaW5wdXQge1xuICBtYXJnaW46IDAgNHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtY29udHJvbC5ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50cy1jb250cm9sLnJ0bC5zaW5nbGUgLnRzLWNvbnRyb2w6YWZ0ZXIge1xuICBsZWZ0OiAxNXB4O1xuICByaWdodDogYXV0bztcbn1cbi50cy1jb250cm9sLnJ0bCAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwIDRweCAwIC0ycHggIWltcG9ydGFudDtcbn1cbi5kaXNhYmxlZCAudHMtY29udHJvbCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5pbnB1dC1oaWRkZW4gLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG5cbi50cy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1hcmdpbjogMC4yNXJlbSAwIDA7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7XG59XG4udHMtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udHMtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0gLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxNjgsIDIwOCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLnRzLWRyb3Bkb3duIC5vcHRpb24sXG4udHMtZHJvcGRvd24gLm9wdGdyb3VwLWhlYWRlcixcbi50cy1kcm9wZG93biAubm8tcmVzdWx0cyxcbi50cy1kcm9wZG93biAuY3JlYXRlIHtcbiAgcGFkZGluZzogNXB4IDhweDtcbn1cbi50cy1kcm9wZG93biAub3B0aW9uLCAudHMtZHJvcGRvd24gW2RhdGEtZGlzYWJsZWRdLCAudHMtZHJvcGRvd24gW2RhdGEtZGlzYWJsZWRdIFtkYXRhLXNlbGVjdGFibGVdLm9wdGlvbiB7XG4gIGN1cnNvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC41O1xufVxuLnRzLWRyb3Bkb3duIFtkYXRhLXNlbGVjdGFibGVdLm9wdGlvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi50cy1kcm9wZG93biAub3B0Z3JvdXA6Zmlyc3QtY2hpbGQgLm9wdGdyb3VwLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbn1cbi50cy1kcm9wZG93biAub3B0Z3JvdXAtaGVhZGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi50cy1kcm9wZG93biAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZmFmZDtcbiAgY29sb3I6ICM0OTVjNjg7XG59XG4udHMtZHJvcGRvd24gLmFjdGl2ZS5jcmVhdGUge1xuICBjb2xvcjogIzQ5NWM2ODtcbn1cbi50cy1kcm9wZG93biAuY3JlYXRlIHtcbiAgY29sb3I6IHJnYmEoNDgsIDQ4LCA0OCwgMC41KTtcbn1cbi50cy1kcm9wZG93biAuc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiA1cHggOHB4O1xufVxuLnRzLWRyb3Bkb3duIC5zcGlubmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiA1cHggc29saWQgI2QwZDBkMDtcbiAgYm9yZGVyLWNvbG9yOiAjZDBkMGQwIHRyYW5zcGFyZW50ICNkMGQwZDAgdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbjogbGRzLWR1YWwtcmluZyAxLjJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgbGRzLWR1YWwtcmluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi50cy1kcm9wZG93bi1jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi50cy13cmFwcGVyLnBsdWdpbi1kcmFnX2Ryb3AgLnRzLWRyYWdnaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tZHJhZ19kcm9wIC50cy1kcmFnZ2luZyA+ICoge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnBsdWdpbi1jaGVja2JveF9vcHRpb25zOm5vdCgucnRsKSAub3B0aW9uIGlucHV0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5wbHVnaW4tY2hlY2tib3hfb3B0aW9ucy5ydGwgLm9wdGlvbiBpbnB1dCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLW5hbWUtY2FzZSAqL1xuLnBsdWdpbi1jbGVhcl9idXR0b24ge1xuICAtLXRzLXByLWNsZWFyLWJ1dHRvbjogMWVtO1xufVxuLnBsdWdpbi1jbGVhcl9idXR0b24gLmNsZWFyLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcmlnaHQ6IGNhbGMoOHB4IC0gNnB4KTtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBsdWdpbi1jbGVhcl9idXR0b24uZm9ybS1zZWxlY3QgLmNsZWFyLWJ1dHRvbiwgLnBsdWdpbi1jbGVhcl9idXR0b24uc2luZ2xlIC5jbGVhci1idXR0b24ge1xuICByaWdodDogbWF4KHZhcigtLXRzLXByLWNhcmV0KSwgOHB4KTtcbn1cbi5wbHVnaW4tY2xlYXJfYnV0dG9uLmZvY3VzLmhhcy1pdGVtcyAuY2xlYXItYnV0dG9uLCAucGx1Z2luLWNsZWFyX2J1dHRvbjpub3QoLmRpc2FibGVkKTpob3Zlci5oYXMtaXRlbXMgLmNsZWFyLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50cy13cmFwcGVyIC5kcm9wZG93bi1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDBkMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KCNmZmYsICNkMGQwZDAsIDg1JSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xufVxuLnRzLXdyYXBwZXIgLmRyb3Bkb3duLWhlYWRlci1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdG9wOiA1MCU7XG4gIGNvbG9yOiAjMzAzMDMwO1xuICBvcGFjaXR5OiAwLjQ7XG4gIG1hcmdpbi10b3A6IC0xMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlciAuZHJvcGRvd24taGVhZGVyLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0LmZvY3VzLmRyb3Bkb3duLWFjdGl2ZSAudHMtY29udHJvbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0IC5kcm9wZG93bi1pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCA4cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5wbHVnaW4tZHJvcGRvd25faW5wdXQgLml0ZW1zLXBsYWNlaG9sZGVyIHtcbiAgYm9yZGVyOiAwIG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHVnaW4tZHJvcGRvd25faW5wdXQuaGFzLWl0ZW1zIC5pdGVtcy1wbGFjZWhvbGRlciwgLnBsdWdpbi1kcm9wZG93bl9pbnB1dC5kcm9wZG93bi1hY3RpdmUgLml0ZW1zLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zIC50cy1jb250cm9sID4gaW5wdXQge1xuICBtaW4td2lkdGg6IDA7XG59XG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zLmZvY3VzIC50cy1jb250cm9sID4gaW5wdXQge1xuICBmbGV4OiBub25lO1xuICBtaW4td2lkdGg6IDRweDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1pbnB1dF9hdXRvZ3Jvdy5oYXMtaXRlbXMuZm9jdXMgLnRzLWNvbnRyb2wgPiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAudHMtZHJvcGRvd24tY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2YyZjJmMjtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMCBub25lO1xufVxuLnRzLWRyb3Bkb3duLnBsdWdpbi1vcHRncm91cF9jb2x1bW5zIC5vcHRncm91cDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXAtaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbiAuaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0gLnJlbW92ZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0gLnJlbW92ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5kaXNhYmxlZCAuaXRlbSAucmVtb3ZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5yZW1vdmUtc2luZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBmb250LXNpemU6IDIzcHg7XG59XG5cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbSAucmVtb3ZlIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDA3M2JiO1xuICBtYXJnaW4tbGVmdDogNnB4O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b246bm90KC5ydGwpIC5pdGVtLmFjdGl2ZSAucmVtb3ZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkuZGlzYWJsZWQgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjYWFhYWFhO1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwgLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uLnJ0bCAuaXRlbSAucmVtb3ZlIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwNzNiYjtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwgLml0ZW0uYWN0aXZlIC5yZW1vdmUge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwuZGlzYWJsZWQgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2FhYWFhYTtcbn1cblxuOnJvb3Qge1xuICAtLXRzLXByLWNsZWFyLWJ1dHRvbjogMHB4O1xuICAtLXRzLXByLWNhcmV0OiAwcHg7XG4gIC0tdHMtcHItbWluOiAuNzVyZW07XG59XG5cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sIGlucHV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udHMtY29udHJvbDpub3QoLnJ0bCkge1xuICBwYWRkaW5nLXJpZ2h0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLWNvbnRyb2wucnRsIHtcbiAgcGFkZGluZy1sZWZ0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50cy1kcm9wZG93bixcbi50cy1jb250cm9sLFxuLnRzLWNvbnRyb2wgaW5wdXQge1xuICBjb2xvcjogIzMwMzAzMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbi50cy1jb250cm9sLFxuLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLnRzLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIC0tdHMtcHItY2FyZXQ6IDJyZW07XG59XG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2w6OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMCA1cHg7XG4gIGJvcmRlci1jb2xvcjogIzgwODA4MCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbDpub3QoLnJ0bCk6OmFmdGVyIHtcbiAgcmlnaHQ6IDE1cHg7XG59XG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wucnRsOjphZnRlciB7XG4gIGxlZnQ6IDE1cHg7XG59XG4udHMtd3JhcHBlci5zaW5nbGUuZHJvcGRvd24tYWN0aXZlIC50cy1jb250cm9sOjphZnRlciB7XG4gIG1hcmdpbi10b3A6IC00cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4IDVweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODA4MDgwIHRyYW5zcGFyZW50O1xufVxuLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCBpbnB1dCB7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAzNnB4O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIC0tdHMtcHItbWluOiAkcGFkZGluZy14O1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCA1MSwgODMsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KCMxZGE3ZWUsICMxNzhlZTksIDYwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMxZGE3ZWUsICMxNzhlZTkpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCBpbnNldCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjMDA4ZmQ4LCAjMDA3NWNmLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDA4ZmQ4LCAjMDA3NWNmKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLCAudHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCBbZGF0YS12YWx1ZV0gLnJlbW92ZSB7XG4gIGJvcmRlci1jb2xvcjogI2U2ZTZlNjtcbn1cbi50cy13cmFwcGVyLm11bHRpLmRpc2FibGVkIC50cy1jb250cm9sIFtkYXRhLXZhbHVlXSAucmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjZmVmZWZlLCAjZjJmMmYyLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmVmZWZlLCAjZjJmMmYyKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wsIC50cy1kcm9wZG93bi5zaW5nbGUge1xuICBib3JkZXItY29sb3I6ICNiOGI4Yjg7XG59XG5cbi5kcm9wZG93bi1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cblxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMGYwZjA7XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufSIsIltkYXRhLWxvYWRpbmc9XCJcIl0sW2RhdGEtbG9hZGluZz1zaG93XSxbZGF0YS1sb2FkaW5nKj1cXHxzaG93XXtkaXNwbGF5Om5vbmV9IiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUmVzZXQgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgOTglKTtcblx0LS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjIwLCA2JSwgODElKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGlvbjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEwNCwgNTAuMiUsIDQyLjUlKTtcblx0LS1jay1jb2xvci1iYXNlLWZvY3VzOiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblx0LS1jay1jb2xvci1iYXNlLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjEsIDEwMCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXM6XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMiwgMTAwJSwgNTIuNSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZXJyb3I6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LyogLS0gR2VuZXJpYyBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXM6IFx0XHRcdFx0XHRcdDIxOCwgODEuOCUsIDU2LjklO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcykpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdzpcdFx0XHRcdFx0XHRcdFx0aHNsKDIxMi40LCA4OS4zJSwgODklKTtcblx0LS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3c6XHRcdFx0XHRcdFx0XHRoc2xhKDIwOSwgOTAlLCA3MiUsLjMpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWVycm9yLXNoYWRvdzpcdFx0XHRcdFx0XHRcdFx0aHNsYSg5LDEwMCUsNTYlLC4zKTtcblx0LS1jay1jb2xvci10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcDogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZTpcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMik7XG5cdC0tY2stY29sb3Itc2hhZG93LWlubmVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblxuXHQvKiAtLSBCdXR0b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHRyYW5zcGFyZW50O1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHR0cmFuc3BhcmVudDtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdGhzbCgyMTIsIDEwMCUsIDk3LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDIxMS43LCAxMDAlLCA5Mi45JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDIxMS43LCAxMDAlLCA5Mi45JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMjExLCAxNSUsIDk1JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yOlx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMSwgMTAwJSwgNTglKTtcblxuXG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWFjdGlvbik7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgxMDQsIDQ0JSwgNTglKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLXNhdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWNhbmNlbDogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDE1LCAxMDAlLCA0MyUpO1xuXG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZDpcdFx0XHRcdFx0aHNsKDAsIDAlLCA1Ny42JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgwLCAwJSwgNDklKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZDpcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLXNoYWRvdzpcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblxuXHQvKiAtLSBEcm9wZG93biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBEaWFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY3VzdG9tLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXI6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWN1c3RvbS1ib3JkZXIpO1xuXG5cdC8qIC0tIElucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItaW5wdXQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItaW5wdXQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyOlx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0LS1jay1jb2xvci1pbnB1dC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dDogXHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDQ2JSk7XG5cblx0LyogLS0gTGlzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saXN0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQtZm9jdXM6IFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi10ZXh0Olx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIFBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItcGFuZWwtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbGJhciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBFbmdpbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0OiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDQ0JSk7XG5cblx0LyogLS0gVXBsb2FkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci11cGxvYWQtYmFyLWJhY2tncm91bmQ6XHRcdCBcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXG5cdC8qIC0tIExpbmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpbmstZGVmYXVsdDpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjQwLCAxMDAlLCA0NyUpO1xuXHQtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjEpO1xuXHQtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb246XHRcdFx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMyk7XG5cblx0LyogLS0gU2VhcmNoIHJlc3VsdCBoaWdobGlnaHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0XHRoc2woNjAsIDEwMCUsIDUwJSk7XG5cblx0LyogLS0gR2VuZXJpYyBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGlnaHQtcmVkOlx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDEwMCUsIDkwJSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxM3B4O1xuXHQtLWNrLWxpbmUtaGVpZ2h0LWJhc2U6IDEuODQ2MTU7XG5cdC0tY2stZm9udC1mYWNlOiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cblx0LS1jay1mb250LXNpemUtdGlueTogMC43ZW07XG5cdC0tY2stZm9udC1zaXplLXNtYWxsOiAwLjc1ZW07XG5cdC0tY2stZm9udC1zaXplLW5vcm1hbDogMWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1iaWc6IDEuNGVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1sYXJnZTogMS44ZW07XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50LCBpZ25vcmluZyBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldCxcbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogc3RhdGljO1xuXG5cdC8qIERvIG5vdCBpbmNsdWRlIGluaGVyaXRhYmxlIHJ1bGVzIGhlcmUuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR0cmFuc2l0aW9uOiBub25lO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTA1ICovXG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQgQU5EIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay1yZXNldF9hbGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdC8qIFRoZXNlIGFyZSBydWxlIGluaGVyaXRlZCBieSBhbGwgY2hpbGRyZW4gZWxlbWVudHMuICovXG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKS92YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogYXV0bztcblx0ZmxvYXQ6IG5vbmU7XG59XG4uY2stcmVzZXRfYWxsIC5jay1ydGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay1yZXNldF9hbGwgaWZyYW1lOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHQvKiBGb3IgSUUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcblx0fVxuLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG4uY2stcmVzZXRfYWxsIHRleHRhcmVhOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG4uY2stcmVzZXRfYWxsIHRleHRhcmVhW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0LmNrLXJlc2V0X2FsbCBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdC5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG4uY2stcmVzZXRfYWxsIGZpZWxkc2V0Om5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuLmNrLXJlc2V0X2FsbCBidXR0b246bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKik6Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRcdC8qIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU1MTc3NDQvcmVtb3ZlLWV4dHJhLWJ1dHRvbi1zcGFjaW5nLXBhZGRpbmctaW4tZmlyZWZveCAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwXG5cdH1cbi8qKlxuICogRGVmYXVsdCBVSSBydWxlcyBmb3IgUlRMIGxhbmd1YWdlcy5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cbjpyb290e1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgaW5uZXIgc2hhZG93IChpLmUuIGlucHV0KS5cblx0ICovXG5cdC0tY2staW5uZXItc2hhZG93OiAycHggMnB4IDNweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctaW5uZXIpIGluc2V0O1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgZHJvcCBzaGFkb3cgKGkuZS4gcGFuZWwpLlxuXHQgKi9cblx0LS1jay1kcm9wLXNoYWRvdzogMCAxcHggMnB4IDFweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcCk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBhY3RpdmUgc2hhZG93IChpLmUuIGNvbW1lbnQgb3Igc3VnZ2VzdGlvbikuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93LWFjdGl2ZTogMCAzcHggNnB4IDFweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmUpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zcGFjaW5nLXVuaXQ6IFx0XHRcdFx0XHRcdDAuNmVtO1xuXHQtLWNrLXNwYWNpbmctZXh0cmEtbGFyZ2U6XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAyKTtcblx0LS1jay1zcGFjaW5nLWxhcmdlOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMS41KTtcblx0LS1jay1zcGFjaW5nLXN0YW5kYXJkOiBcdFx0XHRcdFx0dmFyKC0tY2stc3BhY2luZy11bml0KTtcblx0LS1jay1zcGFjaW5nLW1lZGl1bTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuOCk7XG5cdC0tY2stc3BhY2luZy1tZWRpdW0tc21hbGw6XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjY2Nyk7XG5cdC0tY2stc3BhY2luZy1zbWFsbDogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuNSk7XG5cdC0tY2stc3BhY2luZy10aW55OiBcdFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjMpO1xuXHQtLWNrLXNwYWNpbmctZXh0cmEtdGlueTogXHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjE2KTtcbn1cblxuLyogQ29tcG9uZW50cyAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLFxuXHQuY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cdH1cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRcdH1cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQpO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdC8qIEEgdmVyeSBpbXBvcnRhbnQgcGllY2Ugb2Ygc3R5bGluZy4gR28gdG8gdmFyaWFibGUgZGVjbGFyYXRpb24gdG8gbGVhcm4gbW9yZS4gKi9cblx0bWluLXdpZHRoOiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBOb3JtYWxpemUgdGhlIGhlaWdodCBvZiB0aGUgbGluZS4gUmVtb3ZpbmcgdGhpcyB3aWxsIGJyZWFrIGNvbnNpc3RlbnQgaGVpZ2h0XG5cdGFtb25nIHRleHQgYW5kIHRleHQtbGVzcyBidXR0b25zICh3aXRoIGljb25zKS4gKi9cblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQvKiBBdm9pZCBmbGlja2VyaW5nIHdoZW4gdGhlIGZvdWNzIGJvcmRlciBzaG93cyB1cC4gKi9cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgYm9yZGVyIC4ycyBlYXNlLWluLW91dDtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzE4OSAqL1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4uY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbixcblx0LmNrLXJvdW5kZWQtY29ybmVycyBhLmNrLmNrLWJ1dHRvbixcblx0LmNrLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMsXG5cdGEuY2suY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jay5jay1idXR0b246YWN0aXZlLFxuXHRhLmNrLmNrLWJ1dHRvbjphY3RpdmUsXG5cdC5jay5jay1idXR0b246Zm9jdXMsXG5cdGEuY2suY2stYnV0dG9uOmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdH1cbi8qIEFsbG93IGljb24gY29sb3JpbmcgdXNpbmcgdGhlIHRleHQgXCJjb2xvclwiIHByb3BlcnR5LiAqL1xuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSxcblx0XHRhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSxcblx0XHQuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlICosXG5cdFx0YS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIC5jay1pY29uJ3MgdmVydGljYWwgYWxpZ24uIE90aGVyd2lzZSwgYnV0dG9ucyB3aXRoIGFuZFxuXHRcdHdpdGhvdXQgbGFiZWxzIChidXQgd2l0aCBpY29ucykgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgaW4gQ2hyb21lICovXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRvcGFjaXR5OiAuNTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkOmFjdGl2ZSxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0LmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgZGlzYWJsZWQgYnV0dG9uIHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0b3BhY2l0eTogLjM7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC1rZXlzdHJva2UgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0fVxuLyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGlzIGN1cnJlbnRseSBvbiwgZS5nLiBpdHMgZmVhdHVyZSBpcyBhY3RpdmUuICovXG4uY2suY2stYnV0dG9uLmNrLW9uLCBhLmNrLmNrLWJ1dHRvbi5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdH1cbi5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIsIGEuY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1vbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24uY2stb24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b24tc2F2ZSwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLXNhdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHR9XG4vKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaGFuZGxlcyB0aGUgcHJpbWFyeSBhY3Rpb24uICovXG4uY2suY2stYnV0dG9uLWFjdGlvbixcbmEuY2suY2stYnV0dG9uLWFjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG5cblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dCk7XG59XG4uY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciwgYS5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24tYWN0aW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1idXR0b24tYm9sZCxcbmEuY2suY2stYnV0dG9uLWJvbGQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogTm90ZTogVG8gYXZvaWQgcmVuZGVyaW5nIGlzc3VlcyAoYWxpYXNpbmcpIGJ1dCB0byBwcmVzZXJ2ZSB0aGUgcmVzcG9uc2l2ZSBuYXR1cmVcbm9mIHRoZSBjb21wb25lbnQsIGZsb2F0aW5n4oCTcG9pbnQgbnVtYmVycyBoYXZlIGJlZW4gdXNlZCB3aGljaCwgZm9yIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZVxuKHNlZTogLS1jay1mb250LXNpemUtYmFzZSksIHdpbGwgZ2VuZXJhdGUgc2ltcGxlIGludGVnZXJzLiAqL1xuOnJvb3Qge1xuXHQvKiAzNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGg6IDIuNjE1Mzg0NjE1NGVtO1xuXHQvKiAxNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZTogY2FsYygxLjA3NjkyMzA3NjllbSArIDFweCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbjogY2FsYyhcblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCkgLVxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpIC1cblx0XHQycHggLyogQm9yZGVyICovXG5cdCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3c6IDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLXNoYWRvdyk7XG59XG4vKiBVbmxpa2UgYSByZWd1bGFyIGJ1dHRvbiwgdGhlIHN3aXRjaCBidXR0b24gdGV4dCBjb2xvciBhbmQgYmFja2dyb3VuZCBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuXHQgKiBDaGFuZ2luZyB0b2dnbGUgc3dpdGNoIChiYWNrZ3JvdW5kLCBvdXRsaW5lKSBpcyBlbm91Z2ggdG8gY2FycnkgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZVxuXHQgKiBzdGF0ZSBvZiB0aGUgZW50aXJlIGNvbXBvbmVudCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI1MTkpXG5cdCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24sIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmhvdmVyLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpmb2N1cywgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246YWN0aXZlLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbjpob3ZlciwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb246Zm9jdXMsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCA0MDBtcyBlYXNlLCBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgb3V0bGluZSAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUsXG5cdC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIHJpZ2h0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIGxlZnQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHR3aWR0aDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0LyogR2VudGx5IGFuaW1hdGUgdGhlIGlubmVyIHBhcnQgb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggKi9cblx0XHRcdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIsXG5cdC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IGNhbGMoLjUgKiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3cpO1xuXHRcdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuLyogT3ZlcnJpZGluZyBkZWZhdWx0IC5jay1idXR0b246Zm9jdXMgc3R5bGVzICsgYW4gb3V0bGluZSBhcm91bmQgdGhlIHRvb2dsZSAqL1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpmb2N1cyAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IDFweDtcblx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGU6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLypcblx0XHRcdFx0KiBNb3ZlIHRoZSB0b2dnbGUgc3dpdGNoIHRvIHRoZSByaWdodC4gSXQgd2lsbCBiZSBhbmltYXRlZC5cblx0XHRcdFx0Ki9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIGNhbGMoIC0xICogdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApICk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG59XG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24sXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uOmhhcyguY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpoYXMoLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlcikge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qXG5cdCAqIGAuY2stb25gIGNsYXNzIGFuZCBiYWNrZ3JvdW5kIHN0eWxpbmcgaXMgb3ZlcnJpZGRlbiBmb3IgYGNrLWJ1dHRvbmAgaW4gbWFueSBwbGFjZXMuXG5cdCAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrZ3JvdW5kIGlzIG5vdCBvdmVycmlkZGVuIGFuZCB1c2VzIHNpbWlsYXJcblx0ICogc2VsZWN0b3Igc3BlY2lmaWNpdHkgYXMgdGhlIG90aGVyIG92ZXJyaWRlcy5cblx0ICovXG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCksXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1idXR0b24uY2stb246aG92ZXIsXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSksXG5cdC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWJ1dHRvbi5jay1vbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlKTpub3QoLmNrLWRpc2FibGVkKSwgLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b246YWN0aXZlLCAuY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOm5vdCg6Zm9jdXMpLCAuY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOmhvdmVyOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbiA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemUpO1xuXHRcdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCA+IC5jay5jay1idXR0b24gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplOiAyNHB4O1xuXG5cdC8qIE5vdCB1c2luZyBnbG9iYWwgY29sb3JzIGhlcmUgYmVjYXVzZSB0aGVzZSBtYXkgY2hhbmdlIGJ1dCBzb21lIGNvbG9ycyBpbiBhIHBhbGxldHRlXG5cdCAqIHJlcXVpcmUgc3BlY2lhbCB0cmVhdG1lbnQuIEZvciBpbnN0YW5jZSwgdGhpcyBlbnN1cmVzIG5vIG1hdHRlciB3aGF0IHRoZSBVSSB0ZXh0IGNvbG9yIGlzLFxuXHQgKiB0aGUgY2hlY2sgaWNvbiB3aWxsIGxvb2sgZ29vZCBvbiB0aGUgYmxhY2sgY29sb3IgdGlsZS4gKi9cblx0LS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb246IGhzbCgyMTIsIDgxJSwgNDYlKTtcbn1cbi5jay5jay1jb2xvci1ncmlkIHtcblx0Z3JpZC1nYXA6IDVweDtcblx0cGFkZGluZzogOHB4O1xufVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xufVxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uLFxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItdGlsZV9ib3JkZXJlZCB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZTpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblx0fVxuLypcblx0ICogSW4gaGlnaCBjb250cmFzdCBtb2RlLCB0aGUgY29sb3JzIGFyZSByZXBsYWNlZCB3aXRoIHRleHQgbGFiZWxzLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdCAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdFx0d2lkdGg6IHVuc2V0O1xuXHRcdGhlaWdodDogdW5zZXQ7XG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogdW5zZXQ7XG5cdFx0dHJhbnNpdGlvbjogdW5zZXQ7XG5cdH1cbi5jay5jay1jb2xvci1ncmlkX190aWxlIC5jay5jay1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb24pO1xuXHR9XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbiAuY2suY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG4uY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBWaWV3IGZyYWdtZW50IHdpdGggY29sb3IgZ3JpZHMuICovXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvcixcblx0XHQuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIC8gMikgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXI6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciAuY2suY2staWNvbiB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciAuY2suY2staWNvbiB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IGxhYmVsLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiB1bnNldDtcblx0XHR9XG4vKiBWaWV3IGZyYWdtZW50IHdpdGggYSBjb2xvciBwaWNrZXIuICovXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDBweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxODBweDtcblx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoc2F0dXJhdGlvbikge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblx0XHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChodWUpIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoc2F0dXJhdGlvbi1wb2ludGVyKSxcblx0XHRcdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChodWUtcG9pbnRlcikge1xuXHRcdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0cGFkZGluZzogMCA4cHggOHB4O1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3I6IGhzbGEoIDAsIDAlLCAwJSwgLjUgKTtcblx0LS1jay1kaWFsb2ctZHJvcC1zaGFkb3c6IDBweCAwcHggNnB4IDJweCBoc2woMGRlZyAwJSAwJSAvIDE1JSk7XG5cdC0tY2stZGlhbG9nLW1heC13aWR0aDogMTAwdnc7XG5cdC0tY2stZGlhbG9nLW1heC1oZWlnaHQ6IDkwdmg7XG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuLmNrLmNrLWRpYWxvZy1vdmVybGF5IHtcblx0YW5pbWF0aW9uOiBjay1kaWFsb2ctZmFkZS1pbiAuM3M7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRpYWxvZyk7XG59XG4uY2suY2stZGlhbG9nIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQtLWNrLWRyb3Atc2hhZG93OiB2YXIoLS1jay1kaWFsb2ctZHJvcC1zaGFkb3cpO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kKTtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kaWFsb2csXG5cdC5jay5jay1kaWFsb2cuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWRpYWxvZyB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xufVxuLmNrLmNrLWRpYWxvZyAuY2suY2stZm9ybV9faGVhZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcik7XG5cdH1cbi5jay1kaWFsb2ctc2Nyb2xsLWxvY2tlZCB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5Aa2V5ZnJhbWVzIGNrLWRpYWxvZy1mYWRlLWluIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIDAsIDAlLCAwJSwgMCApO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stZGlhbG9nIC5jay5jay1kaWFsb2dfX2FjdGlvbnMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stZGlhbG9nIC5jay5jay1kaWFsb2dfX2FjdGlvbnMgPiAqICsgKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG4uY2suY2stZHJvcGRvd24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4uY2suY2stZHJvcGRvd24uY2stZGlzYWJsZWQgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbi8qICMyMyAqL1xuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogN2VtO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b25fbGFiZWwtd2lkdGhfYXV0byAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84Njk5ICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9mZjphY3RpdmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9mZjphY3RpdmU6Zm9jdXMsIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb246YWN0aXZlOmZvY3VzIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdFx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlIHBhbmVsIGlzIGF0IGxlYXN0IGFzIHdpZGUgYXMgdGhlIGRyb3AtZG93bidzIGJ1dHRvbi4gKi9cblx0bWluLXdpZHRoOiAxMDAlO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd25fX3BhbmVsLFxuXHQuY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHQvKiBEaXNhYmxlZCBjb3JuZXIgYm9yZGVyIHJhZGl1cyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xufVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbDpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IHtcblx0LyogRGlzYWJsZWQgcmFkaXVzIG9mIHRvcC1sZWZ0IGJvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGggLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCxcblx0LmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLyogTWFrZSBzdXJlIHRoZSBidXR0b24gYmVsb25naW5nIHRvIHRoZSBmaXJzdC9sYXN0IGNoaWxkIG9mIHRoZSBsaXN0IGdvZXMgd2VsbCB3aXRoIHRoZVxuXHRib3JkZXIgcmFkaXVzIG9mIHRoZSBlbnRpcmUgcGFuZWwuICovXG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uLFxuXHQuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCA+IC5jay1idXR0b24ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbixcblx0LmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmxhc3QtY2hpbGQgPiAuY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIlKTtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiBoc2woMCwgMCUsIDcwJSk7XG59XG4vKlxuXHQgKiBOb3RlOiBjay1yb3VuZGVkIGFuZCBjay1kaXIgbWl4aW5zIGRvbid0IGdvIHRvZ2V0aGVyIChiZWNhdXNlIHRoZXkgYm90aCB1c2UgQG5lc3QpLlxuXHQgKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIFtkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbi5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdC8qIEl0J3MgYSB0ZXh0LWxlc3MgYnV0dG9uIGFuZCBzaW5jZSB0aGUgaWNvbiBpcyBwb3NpdGlvbmVkIGFic29sdXRlbHkgaW4gc3VjaCBzaXR1YXRpb24sXG5cdFx0aXQgbXVzdCBnZXQgc29tZSBhcmJpdHJhcnkgbWluLXdpZHRoLiAqL1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG4uY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHN2ZyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIHN0cmV0Y2hlcyAxMDAlIGhlaWdodCBvZiB0aGUgYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwOTM2ICovXG4uY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCg6Zm9jdXMpIHtcblx0XHRib3JkZXItdG9wLXdpZHRoOiAwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuXHR9XG4vKiBEb24ndCByb3VuZCB0aGUgYm90dG9tIGxlZnQgYW5kIHJpZ2h0IGNvcm5lcnMgb2YgdGhlIGJ1dHRvbnMgd2hlbiBcIm9wZW5cIlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLFxuXHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLmNrLXJvdW5kZWQtY29ybmVycyA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93LCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMgPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG4vKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaXMgXCJvcGVuXCIgKHRoZSBhcnJvdyBpcyBvbikgb3IgYmVpbmcgaG92ZXJlZCwgaXQgc2hvdWxkIGdldCBzb21lIHN0eWxpbmdcblx0YXMgYSB3aG9sZS4gVGhlIGJhY2tncm91bmQgb2YgYm90aCBidXR0b25zIHNob3VsZCBzdGFuZCBvdXQgYW5kIHRoZXJlIHNob3VsZCBiZSBhIHZpc3VhbFxuXHRzZXBhcmF0aW9uIGJldHdlZW4gYm90aCBidXR0b25zLiAqL1xuLyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGhvdmVyZWQgYXMgYSB3aG9sZSwgbm90IGFzIGluZGl2aWR1YWwgYnV0dG9ucy4gKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogU3BsaXRidXR0b24gc2VwYXJhdG9yIG5lZWRzIHRvIGJlIHNldCB3aXRoIHRoZSA6OmFmdGVyIHBzZXVkb3NlbGVjdG9yXG5cdFx0dG8gZGlzcGxheSBwcm9wZXJseSB0aGUgYm9yZGVycyBvbiBmb2N1cyAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMXB4O1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIGJldHdlZW4gdGhlIGJ1dHRvbnMgbG9va3MgZmluZSB3aGVuIHRoZSBidXR0b24gaXMgZm9jdXNlZCAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93OmZvY3VzOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6IC0xcHg7XG5cdFx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIFtkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdG9vbGJhci1kcm9wZG93biAuY2stdG9vbGJhciB7XG5cdGJvcmRlcjogMDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQWxsIG1lbnUgYnV0dG9ucy5cbiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24ge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpmb2N1czpub3QoLmNrLW9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbi8qIFNwYWNpbmcgaW4gYnV0dG9ucyB0aGF0IG1pc3MgdGhlIGljb24uICovXG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbi5jay1pY29uLXNwYWNpbmc6bm90KDpoYXMoLmNrLWJ1dHRvbl9faWNvbikpID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtIHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBMaXN0IGl0ZW0gYnV0dG9ucy5cbiAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdC5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIC5jay1zcGlubmVyIHtcblx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0fVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdC8qIFRoZXNlIG1hcmdpbnMgYXJlIHRoZSBzYW1lIGFzIGZvciAuY2staWNvbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKlxuXHQgKiBIb3ZlcmVkIGl0ZW1zIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzZWQuIERlZmF1bHQgZm9jdXMgc3R5bGVzIGxvb2sgb2RkXG5cdCAqIHdoaWxlIG1vdmluZyBhY3Jvc3MgYSBodWdlIGxpc3Qgb2YgaXRlbXMgc28gbGV0J3MgZ2V0IHJpZCBvZiB0aGVtXG5cdCAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b246Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b246Zm9jdXM6bm90KC5jay1vbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtcGFuZWwtbWF4LXdpZHRoKTtcblxuXHQvKiBSZXNldCBiYWxsb29uIHN0eWxpbmcgKi9cbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbDo6YWZ0ZXIsXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbDo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG4vKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX2VzLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfd3MsXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfZW4sXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93bixcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWw6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGg6IDYwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LWhlaWdodDogNDAwcHg7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3I6IGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMGRlZyAwJSA5Mi45NCUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cta2JkLXNoYWRvdy1jb2xvcjogaHNsKDBkZWcgMCUgNjElKTtcbn1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRvdmVyZmxvdzogYXV0bztcblx0dXNlci1zZWxlY3Q6IHRleHQ7XG5cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudDpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCAqIHtcblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHR9XG4vKiBIaWRlIHRoZSBtYWluIGxhYmVsIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci4gKi9cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDMge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGg0IHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDFlbTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgcCxcblx0LmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDMsXG5cdC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGg0LFxuXHQuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCB0YWJsZSB7XG5cdFx0bWFyZ2luOiAxZW0gMDtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZHQsIC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIGRkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0XHRwYWRkaW5nOiAuNGVtIDA7XG5cdFx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZHQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cdFx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZGQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQsIC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGNvZGUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcik7XG5cdFx0cGFkZGluZzogLjRlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBjb2RlIHtcblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQge1xuXHRcdG1pbi13aWR0aDogMS44ZW07XG5cdFx0Ym94LXNoYWRvdzogMHB4IDFweCAxcHggdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1rYmQtc2hhZG93LWNvbG9yKTtcblx0XHRtYXJnaW46IDAgMXB4O1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBrYmQgKyBrYmQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDJweDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbjogaHNsKDAsIDAlLCA4NSUpO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcm91bmRlZC1jb3JuZXJzOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZm9jdXNlZDpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmVbZGlyPVwibHRyXCJdIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmVbZGlyPVwicnRsXCJdIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTYgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84NDcgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6bGFzdC1jaGlsZCB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSBvciAuaW1hZ2UpXG5cdFx0ICogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0ICovXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY1MTcgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1ibHVycmVkIDo6c2VsZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbik7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTExICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1mb3JtLWhlYWRlci1oZWlnaHQ6IDMuMzg0ZW07XG59XG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGhlaWdodDogdmFyKC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdC8qIFRvIHByZXZlbnQgc2hyaW5raW5nIHdoZW4gcGxhY2VkIGluIGZsZXhib3guICovXG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuLmNrLmNrLWZvcm1fX2hlYWRlciA+IC5jay1pY29uIHtcblx0XHRtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG4uY2suY2stZm9ybV9faGVhZGVyIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHQvKiBEZWZhdWx0cyB0byAxNXB4LiAqL1xuXHRcdC0tY2stZm9udC1zaXplLWJhc2U6IDEuMTUzZW07XG5cblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuLyogUGFkZGluZyB3aGVuIGJhY2sgYnV0dG9uIGlzIGhpZGRlbiAqL1xuLmNrLmNrLWZvcm1fX2hlYWRlcjpoYXMoLmNrLWJ1dHRvbi1iYWNrLmNrLWhpZGRlbikge1xuXHRcdHBhZGRpbmctaW5saW5lOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLyogUGFkZGluZyB3aGVuIGJhY2sgYnV0dG9uIGlzIHZpc2libGUgKi9cbi5jay5jay1mb3JtX19oZWFkZXI6aGFzKC5jay1idXR0b24tYmFjazpub3QoLmNrLWhpZGRlbikpIHtcblx0XHRwYWRkaW5nLWlubGluZTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi5jay5jay1mb3JtX19oZWFkZXIgPiAuY2stYnV0dG9uLWJhY2sge1xuXHRcdG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWZvcm1fX2hlYWRlciA+IC5jay5jay1idXR0b24ge1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWljb24tc2l6ZTogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpKTtcblx0LS1jay1pY29uLWZvbnQtc2l6ZTogLjgzMzMzNTA2OTRlbTtcbn1cbi5jay5jay1pY29uIHtcblx0d2lkdGg6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblxuXHQvKiBNdWx0aXBsaWVkIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUgaW4gXCJweFwiIHNob3VsZCBnaXZlIFNWRyBcInZpZXdwb3J0XCIgZGltZW5zaW9ucyAqL1xuXHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRjdXJzb3I6IGluaGVyaXQ7XG59XG4uY2suY2staWNvbiAqIHtcblx0XHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblx0fVxuLyogQWxsb3dzIGR5bmFtaWMgY29sb3Jpbmcgb2YgYW4gaWNvbiBieSBpbmhlcml0aW5nIGl0cyBjb2xvciBmcm9tIHRoZSBwYXJlbnQuICovXG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3Ige1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3IgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3IgKjpub3QoW2ZpbGxdKSB7XG5cdFx0XHRcdC8qIE5lZWRlZCBieSBGRi4gKi9cblx0XHRcdFx0ZmlsbDogY3VycmVudENvbG9yO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxOGVtO1xuXG5cdC8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovXG5cdC0tY2staW5wdXQtdGV4dC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xufVxuLmNrLmNrLWlucHV0IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1leHRyYS10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXG5cdC8qIFRoaXMgaXMgaW1wb3J0YW50IHRvIHN0YXkgb2YgdGhlIHNhbWUgaGVpZ2h0IGFzIHN1cnJvdW5kaW5nIGJ1dHRvbnMgKi9cblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMXMgZWFzZS1pbi1vdXQ7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1pbnB1dCxcblx0LmNrLmNrLWlucHV0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2staW5wdXQge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jay5jay1pbnB1dDpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2staW5wdXRbcmVhZG9ubHldIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblx0fVxuLmNrLmNrLWlucHV0W3JlYWRvbmx5XTpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgcmVhZC1vbmx5IGlucHV0IHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLmNrLmNrLWlucHV0LmNrLWVycm9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcik7XG5cdFx0YW5pbWF0aW9uOiBjay1pbnB1dC1zaGFrZSAuM3MgZWFzZSBib3RoO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWlucHV0LmNrLWVycm9yIHtcblx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay5jay1pbnB1dC5jay1lcnJvcjpmb2N1cyB7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1lcnJvci1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuQGtleWZyYW1lcyBjay1pbnB1dC1zaGFrZSB7XG5cdDIwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuXHR9XG5cblx0NDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcblx0fVxuXG5cdDYwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuXHR9XG5cblx0ODAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbjogLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjI0LCAwLjk1KTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXk6IGNhbGMoMC42ICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0LS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRvcDogMHB4O1xuXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDAgY2FsYyguNSAqIHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSk7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdC8qIFByZXZlbnQgb3ZlcmZsb3cgd2hlbiB0aGUgbGFiZWwgaXMgbG9uZ2VyIHRoYW4gdGhlIGlucHV0ICovXG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0dHJhbnNpdGlvbjpcblx0XHRcdFx0dHJhbnNmb3JtIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0cGFkZGluZyB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdGJhY2tncm91bmQgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHRsZWZ0OiAwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0XHRcdFx0LyogQnkgZGVmYXVsdCwgZGlzcGxheSB0aGUgbGFiZWwgc2NhbGVkIGRvd24gYWJvdmUgdGhlIGZpZWxkLiAqL1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIC02cHgpIHNjYWxlKC43NSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpLCAtNnB4KSBzY2FsZSguNzUpO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZXJyb3IgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWVycm9yIC5jay1pbnB1dDpub3QoW3JlYWRvbmx5XSkgKyAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHQvKiBMZXQgdGhlIGluZm8gd3JhcCB0byB0aGUgbmV4dCBsaW5lIHRvIGF2b2lkIHN0cmV0Y2hpbmcgdGhlIGxheW91dCBob3Jpem9udGFsbHkuXG5cdFx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXNfZXJyb3Ige1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cbi8qIERpc2FibGVkIGZpZWxkcyBhbmQgZmllbGRzIHRoYXQgaGF2ZSBubyBmb2N1cyBzaG91bGQgZmFkZSBvdXQuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dCk7XG5cdH1cbi8qIEZpZWxkcyB0aGF0IGFyZSBkaXNhYmxlZCBvciBub3QgZm9jdXNlZCBhbmQgd2l0aG91dCBhIHBsYWNlaG9sZGVyIHNob3VsZCBoYXZlIGZ1bGwtc2l6ZWQgbGFiZWxzLiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXG5cdFx0LyogQ29tcGVuc2F0ZSBmb3IgdGhlIGRlZmF1bHQgdHJhbnNsYXRlIHBvc2l0aW9uLiAqL1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpKTtcblxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCwgW2Rpcj1cImx0clwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLCBbZGlyPVwicnRsXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdH1cbi8qLS0tLS0tIERyb3Bkb3duVmlldyBpbnRlZ3JhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTWFrZSBzdXJlIGRyb3Bkb3duJyBiYWNrZ3JvdW5kIGNvbG9yIGluIGFueSBvZiBkcm9wZG93bidzIHN0YXRlIGRvZXMgbm90IGNvbGxpZGUgd2l0aCBsYWJlbGVkIGZpZWxkLiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuLyogV2hlbiB0aGUgZHJvcGRvd24gaXMgXCJlbXB0eVwiLCB0aGUgbGFiZWxlZCBmaWVsZCBsYWJlbCByZXBsYWNlcyBpdHMgbGFiZWwuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbi8qIE1ha2Ugc3VyZSB0aGUgbGFiZWwgb2YgdGhlIGVtcHR5LCB1bmZvY3VzZWQgaW5wdXQgZG9lcyBub3QgY292ZXIgdGhlIGRyb3Bkb3duIGFycm93LiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biArIC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkgLSB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZnVsbC13aWR0aCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXNfZXJyb3Ige1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGlzdCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXG5cdC8qIEEgc3BhY2luZyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGxpc3QgKi9cblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWxpc3QsXG5cdC5jay5jay1saXN0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1saXN0X19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIEFsbW9zdCBhcyB3aWRlIGFzIG1lbnUgYmFyIGl0ZW1zLiAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1cyk7XG5cdFx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKTpmb2N1czpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBMaXN0cyBjb21lIHdpdGggYW4gaW5uZXIgdmVydGljYWwgcGFkZGluZy4gRG9uJ3QgZHVwbGljYXRlIGl0LiAqL1xufVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuLyogVGhlIGdyb3VwIHNob3VsZCBoYXZlIGEgYm9yZGVyIHdoZW4gaXQncyBub3QgdGhlIGZpcnN0IGl0ZW0uICovXG4qOm5vdCguY2staGlkZGVuKSB+IC5jay1saXN0IC5jay1saXN0X19ncm91cCB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwID4gLmNrLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiBHaXZlIHRoZSBzZXBhcmF0b3Igc29tZSBhaXIgKi9cblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1tZW51LWJhciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Z2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXHR3aWR0aDogMTAwJTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51LmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcblx0ICogQWxsIG1lbnUgYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuLypcblx0ICogVG9wLWxldmVsIG1lbnUgYnV0dG9ucyBvbmx5LlxuXHQgKi9cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogVG9wLWxldmVsIGJ1dHRvbnMgZG9uJ3QgdXNlIGVsbGlwc2lzIGFuZCBvdmVyZmxvdzogaGlkZGVuIGNsaXBzIGRlc2NlbmRlcnMuXG5cdFx0XHQgKiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE3NDIyLlxuXHRcdFx0ICovXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cbi8qXG5cdCAqIFN1Yi1tZW51IGJ1dHRvbnMuXG5cdCAqL1xuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXG5cdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2suY2stbWVudS1iYXJfX21lbnVfX2l0ZW0ge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLW1lbnUtYmFyLW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuXHQgKiBMaXN0IGl0ZW0gYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyLFxuXHRcdC5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdFx0LyogVGhlc2Ugc3R5bGVzIGNvcnJlc3BvbmQgdG8gLmNrLWljb24gc28gdGhhdCB0aGUgc3Bpbm5lciBzZWFtbGVzc2x5IHJlcGxhY2VzIHRoZSBpY29uLiAqL1xuXHRcdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdC8qIFRoaXMgZW5zdXJlcyBtYXJnaW5zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIC5jay1pY29uLiAqL1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aDogNzV2dztcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHQvKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3MsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4sXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93bixcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4uY2suY2stbWVudS1iYXIgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXIuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyLmNrLW1lbnUtYmFyX2ZvY3VzLWJvcmRlci1lbmFibGVkIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHQvKiBGaXggdHJ1bmNhdGVkIHNoYWRvd3MgZHVlIHRvIHJlbmRlcmluZyBvcmRlci4gKi9cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1iYWxsb29uLWJvcmRlci13aWR0aDogMXB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0OiAycHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQ6IDEwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoOiA4cHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1kcm9wLXNoYWRvdzogMCAycHggMnB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYmFsbG9vbi1wYW5lbCxcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3dcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMDtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfd1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X253OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbmU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdzo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2U6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3Ntdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc213OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm1lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xufVxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24gPiAqIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBHaXZlcyBjb3VudGVyIG1vcmUgYnJlYXRoIHRoYW4gYnV0dG9ucy4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsOiA2cHg7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogNnB4O1xufVxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAyKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDIpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDMgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAzKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDMpO1xufVxuLyogSWYgYmFsbG9vbiBpcyBwb3NpdGlvbmVkIGFib3ZlIGVsZW1lbnQsIHdlIG5lZWQgdG8gbW92ZSBmYWtlIHBhbmVsIHRvIHRoZSB0b3AuICovXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLXZlcnRpY2FsLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOjphZnRlciB7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1yZXNwb25zaXZlLWZvcm06Zm9jdXMge1xuXHRcdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNDc3MyAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiBjYWxjKC44ICogdmFyKC0tY2staW5wdXQtd2lkdGgpKTtcbn1cblxuXHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LXRleHQsXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LW51bWJlciB7XG5cdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExldCB0aGUgbG9uZyBlcnJvciBtZXNzYWdlcyB3cmFwIGluIHRoZSBuYXJyb3cgZm9ybS4gKi9cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stbGFiZWxlZC1maWVsZC12aWV3X19lcnJvciB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0XHR9XG5cblx0XHQvKiBTdHlsZXMgZm9yIHR3byBsYXN0IGJ1dHRvbnMgaW4gdGhlIGZvcm0gKHNhdmUmY2FuY2VsLCBlZGl0JnVubGluaywgZXRjLikuICovXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSxcblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpOm5vdCg6Zm9jdXMpLCAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSksIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLCBbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpOmxhc3Qtb2YtdHlwZSwgW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmc6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSk7XG59XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24ge1xuXHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiAuY2staW5wdXQge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiAuY2staW5wdXQ6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IHtcblx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSB7XG5cdFx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKSAtIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogYXV0bztcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLXNlYXJjaF9fcmVzZXQ6aG92ZXIge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1pbnB1dDpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLWlucHV0IHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvICoge1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRhbmltYXRpb246IDEuNXMgaW5maW5pdGUgY2stc3Bpbm5lci1yb3RhdGUgbGluZWFyO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbn1cblx0fVxuLmNrLmNrLXNwaW5uZXIge1xuXHR3aWR0aDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5Aa2V5ZnJhbWVzIGNrLXNwaW5uZXItcm90YXRlIHtcblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBUaGlzIGZpeGVzIGEgcHJvYmxlbSBpbiBGaXJlZm94IHdoZW4gdGhlIGluaXRpYWwgaGVpZ2h0IG9mIHRoZSBjb21wbGVtZW50IGRvZXMgbm90IG1hdGNoIHRoZSBudW1iZXIgb2Ygcm93cy5cbiAqIFRoaXMgYnVnIGlzIGVzcGVjaWFsbHkgdmlzaWJsZSB3aGVuIHJvd3M9MS5cbiAqL1xuLmNrLXRleHRhcmVhIHtcblx0b3ZlcmZsb3cteDogaGlkZGVuXG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWJsb2NrLXRvb2xiYXItYnV0dG9uOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0LS1jay1ibG9jay10b29sYmFyLWJ1dHRvbi1zaXplOiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKTtcbn1cbi5jay5jay1ibG9jay10b29sYmFyLWJ1dHRvbiB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1ibG9jay10b29sYmFyLWJ1dHRvbik7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stYmxvY2stdG9vbGJhci1zaXplKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdG9vbGJhciB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdG9vbGJhcixcblx0LmNrLmNrLXRvb2xiYXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRcdHdpZHRoOiAxcHg7XG5cdFx0bWluLXdpZHRoOiAxcHg7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXG5cdFx0Lypcblx0XHQgKiBUaGVzZSBtYXJnaW5zIG1ha2UgdGhlIHNlcGFyYXRvcnMgbG9vayBiZXR0ZXIgaW4gYmFsbG9vbiB0b29sYmFycyAod2hlbiBhbGlnbmVkIHdpdGggdGhlIFwidGlwXCIpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83NDkzLlxuXHRcdCAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSB7XG5cdFx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4vKiBEb24ndCBkaXNwbGF5IGEgc2VwYXJhdG9yIGFmdGVyIGFuIGVtcHR5IGl0ZW1zIGNvbnRhaW5lciwgZm9yIGluc3RhbmNlLFxuXHRcdHdoZW4gYWxsIGl0ZW1zIHdlcmUgZ3JvdXBlZCAqL1xuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXM6ZW1wdHkgKyAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqOm5vdCguY2stdG9vbGJhcl9fbGluZS1icmVhayksXG5cdC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdC8qIE1ha2Ugc3VyZSBpdGVtcyB3cmFwcGVkIHRvIHRoZSBuZXh0IGxpbmUgaGF2ZSB2LXNwYWNpbmcgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCB7XG5cdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aC4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBzcGFuIHRoZSBob3Jpem9udGFsIHNwYWNlLiAqL1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzaG91bGQgaGF2ZSBubyBtYXJnaW4uICovXG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGggc28gcm91bmRlZCBjb3JuZXJzIGFyZSBwb2ludGxlc3MuICovXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCB7XG5cdFx0LyogTm8gc3BhY2luZyBhcm91bmQgaXRlbXMuICovXG5cdFx0cGFkZGluZzogMDtcblx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKiB7XG5cdFx0XHQvKiBDb21wYWN0IHRvb2xiYXIgaXRlbXMgaGF2ZSBubyBzcGFjaW5nIGJldHdlZW4gdGhlbS4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogXCJNaWRkbGVcIiBjaGlsZHJlbiBzaG91bGQgaGF2ZSBubyByb3VuZGVkIGNvcm5lcnMuICovXG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdH1cbi8qXG5cdFx0ICogRHJvcGRvd24gYnV0dG9uIGhhcyBhc3ltbWV0cmljIHBhZGRpbmcgdG8gZml0IHRoZSBhcnJvdy5cblx0XHQgKiBUaGlzIGJ1dHRvbiBoYXMgbm8gYXJyb3cgc28gbGV0J3MgcmV2ZXJ0IHRoYXQgcGFkZGluZyBiYWNrIHRvIG5vcm1hbC5cblx0XHQgKi9cbi5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdH1cbi8qIEEgZHJvcC1kb3duIGNvbnRhaW5pbmcgdGhlIG5lc3RlZCB0b29sYmFyIHdpdGggY29uZmlndXJlZCBpdGVtcy4gKi9cbi8qIFByZXZlbnQgZW1wdHkgc3BhY2UgaW4gdGhlIHBhbmVsIHdoZW4gdGhlIGRyb3Bkb3duIGxhYmVsIGlzIHZpc2libGUgYW5kIGxvbmcgYnV0IHRoZSB0b29sYmFyIGhhcyBmZXcgaXRlbXMuICovXG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bWF4LXdpZHRoOiA3ZW07XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG4uY2suY2stdG9vbGJhcjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLmNrLXRvb2xiYXItY29udGFpbmVyIC5jay5jay10b29sYmFyIHtcblx0XHRib3JkZXI6IDA7XG5cdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKlxuICogU3R5bGVzIGZvciBSVEwgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2ssIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jaywgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG4vKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZpcnN0IGNoaWxkLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQsIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdFtkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuLyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3RbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4vKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCksIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmdbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLypcbiAqIFN0eWxlcyBmb3IgTFRSIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIFNlcGFyYXRlIHRoZSB0aGUgc2VwYXJhdG9yIGZvcm0gdGhlIGdyb3VwaW5nIGRyb3Bkb3duIHdoZW4gc29tZSBpdGVtcyBhcmUgZ3JvdXBlZC4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yLCAuY2suY2stdG9vbGJhcltkaXI9XCJsdHJcIl0gPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCksIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmdbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDRweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogNHB4O1xuXHQtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nOiA0cHg7XG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblxuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBSZXNldCBiYWxsb29uIHBhbmVsIHN0eWxlcyAqL1xuXHRib3gtc2hhZG93OiBub25lO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9tdWx0aS1saW5lIC5jay10b29sdGlwX190ZXh0IHtcblx0XHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiB2YXIoLS1jay10b29sdGlwLXRleHQtcGFkZGluZykgMDtcblx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHR9XG4vKiBIaWRlIHRoZSBkZWZhdWx0IHNoYWRvdyBvZiB0aGUgLmNrLWJhbGxvb24tcGFuZWwgdGlwICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLyogRWRpdG9yICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LFxuXHQuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cdFx0XHR9XG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IC5jay1tZW51LWJhciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQgLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR9XG4vKiBOb3RlOiBVc2UgY2stZWRpdG9yX19tYWluIHRvIG1ha2Ugc3VyZSB0aGVzZSBzdHlsZXMgZG9uJ3QgYXBwbHkgdG8gb3RoZXIgZWRpdG9yIHR5cGVzICovXG4uY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMyAqL1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZSxcblx0LmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZm9jdXNlZCkge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cbi8qIFBsdWdpbnMgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmU6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG4uY2sgLmNrLWJvb2ttYXJrLmNrLXdpZGdldCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0IC5jay1ib29rbWFya19faWNvbiAuY2staWNvbl9fZmlsbCB7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQ6aG92ZXIgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yKTtcblx0XHRcdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdC5jayAuY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0IC5jay1ib29rbWFya19faWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdC8qIFRvIG1ha2UgaXQgYWxpZ24gd2l0aCB0ZXh0IGJhc2VsaW5lLiAqL1xuXHRcdFx0dG9wOiAtMC4xZW07XG5cdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uIHtcblx0XHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgYm9va21hcmsgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1ib29rbWFyay1mb3JtLXdpZHRoOiAzNDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG4uY2suY2stYm9va21hcmstYmFsbG9vbiAuY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHR9XG4uY2suY2stYm9va21hcmstdG9vbGJhcl9fcHJldmlldyB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblx0bWluLXdpZHRoOiAzZW07XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblxuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aDogMTJweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodDogOHB4O1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHNwYW4ge1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHRcdC8qIFRoZSB0cmlhbmdsZSBhYm92ZSB0aGUgbWFya2VyICovXG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgdGhhdCBpdCBhIGRyb3AgdGFyZ2V0LlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQuY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXJhbmdlIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnIHtcblx0XHR6b29tOiAwLjY7XG5cdFx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRoZWlnaHQ6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG59XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmU6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSk7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0bGVmdDogLTFweDtcblxuXHRcdFx0Ym9yZGVyLXdpZHRoOiBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0cmlnaHQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDpjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDA7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDQ2JSk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kKTtcblxuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRsaW5lLWhlaWdodDogMTZweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNrLmNrLWNvZGUtYmxvY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBsYW5ndWFnZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2suY2stcGxhY2Vob2xkZXIsIC5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBuZWVkZWQgZm9yIEVkZ2Ugb24gV2luZG93cyB0byB1c2UgdGhlIHJpZ2h0IGNvbG9yIGZvciB0aGUgcGxhY2Vob2xkZXIgY29udGVudCAoOjpiZWZvcmUpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHQgKi9cblx0XHRmb3JjZWQtY29sb3ItYWRqdXN0OiBwcmVzZXJ2ZS1wYXJlbnQtY29sb3I7XG5cdFx0fVxuXHR9XG4uY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2sgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0XHR9XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0XHQvKlxuXHRcdFx0ICogSW4gdGhlIGhpZ2ggY29udHJhc3QgbW9kZSB0aGVyZSBpcyBubyB0ZWxsaW5nIGJldHdlZW4gcmVndWxhciBhbmQgcGxhY2Vob2xkZXIgdGV4dC4gVXNpbmdcblx0XHRcdCAqIGl0YWxpYyB0ZXh0IHRvIGFkZHJlc3MgdGhhdCBpc3N1ZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBXaXRob3V0IHRoaXMgbWFyZ2luLCB0aGUgY2FyZXQgd2lsbCBub3Qgc2hvdyB1cCBhbmQgYmxpbmsgd2hlbiB0aGUgdXNlciBwdXRzIHRoZSBzZWxlY3Rpb25cblx0XHRcdCAqIGluIHRoZSBwbGFjZWhvbGRlciAoRWRnZSBvbiBXaW5kb3dzKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdHdpZHRoOiA0MDBweDtcblxuXHQvKlxuXHQgKiBUaGUgPGZvcm0+IG5lZWRzIHRhYmluZGV4PVwiLTFcIiBmb3IgcHJvcGVyIEVzYyBoYW5kbGluZyBhZnRlciBiZWluZyBjbGlja2VkXG5cdCAqIGJ1dCB0aGUgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGNyZWF0ZXMgYSBuYXN0eSBmb2N1cyBvdXRsaW5lIGluIHNvbWUgYnJvd3NlcnMuXG5cdCAqL1xufVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybTpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLyogR2VuZXJpYyBzdHlsZXMgZm9yIHRoZSBmb3JtIGlucHV0cyBhbmQgYWN0aW9ucy4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLFxuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0YWxpZ24tY29udGVudDogc3RyZXRjaDtcblxuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbjogMDtcblxuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+IC5jay1idXR0b24sIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IC5jay1idXR0b24ge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwibHRyXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcsIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWluLXdpZHRoOiA1MHB4O1xuXHRcdFx0fVxuLyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIHtcblx0XHQvKiBUbyBkaXNwbGF5IGFsbCBjb250cm9scyBpbiBsaW5lIHdoZW4gdGhlcmUncyBhbiBlcnJvciB1bmRlciB0aGUgaW5wdXQgKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLXByZXYgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLW5leHQgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdGZsZXg6IDAgMCAxMDAlO1xuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG4vKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApO1xuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdC8qIEJlZWYgdGhlIGZpbmQgYnV0dG9uIHVwIGEgbGl0dGxlLiBJdCdzIHRoZSBtYWluIGFjdGlvbiBidXR0b24gaW4gdGhlIGZvcm0gKi9cblx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cblx0XHQvKiBEb24ndCBsZXQgdGhlIGZvcm0gb3ZlcmZsb3cgZnJvbSB0aGUgZGlhbG9nIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWNvbW1lcmNpYWwvaXNzdWVzLzU5MTMpICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cblx0fVxuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblxuXHRcdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgYWN0aW9ucyBhcmVhLiAqL1xuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogUmVzaXplIGRyb3Bkb3duJ3MgYnV0dG9uIGxhYmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQ6IDEwZW07XG5cdC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aDogMXB4O1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yOiBoc2woMGRlZyAwJSA0NSUpO1xufVxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xufVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KDpob3Zlcikge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG4vKiBIVE1MIGVtYmVkIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlc3BlY3QgVUkgbGFuZ3VhZ2UgZGlyZWN0aW9uICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4vKiAtLS0tLSBFbWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtZW1iZWQtbGFiZWwpO1xuXHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKTtcblx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSA2MCUpO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy10aW55KSArIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl06OmJlZm9yZSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsIGJ1dCBpdCBvbmx5IGNvbGxpZGVzIGluIExUUiBsYW5ndWFnZXMgKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwibHRyXCJdIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZC5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1ibHVycmVkKSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkLmNrLXdpZGdldF9zZWxlY3RlZDo6YmVmb3JlIHtcblx0XHR0b3A6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpob3Zlcjo6YmVmb3JlIHtcblx0XHR0b3A6IDBweDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2NvbnRlbnQtd3JhcHBlciB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX3NhdmUtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19jYW5jZWwtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0gLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG4vKiBUaGUgZWRpdCBzb3VyY2UgZWxlbWVudC4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19zb3VyY2Uge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXHRcdHJlc2l6ZTogbm9uZTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRcdHRhYi1zaXplOiA0O1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTsgLyogU2FmYXJpIG5lZWRzIHRoaXMuICovXG5cblx0XHQvKiBIVE1MIGNvZGUgaXMgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRkaXJlY3Rpb246IGx0cjtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3NvdXJjZVtkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXG5cdFx0XHQvKiBTYWZhcmkgbmVlZHMgdGhpcyBmb3IgdGhlIHByb3BlciB0ZXh0IGNvbG9yIGluIGRpc2FibGVkIGlucHV0IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzIwKS4gKi9cblx0XHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcik7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cbi8qIFRoZSBwcmV2aWV3IGRhdGEgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblxuXHRcdC8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuICovXG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQgPiAqIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpXG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoOiAyNTBweDtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0LS1jay1pbnB1dC13aWR0aDogMTAwJTtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRncmlkLWNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLXNhdmUsXG5cdFx0LmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1jb2xsYXBzaWJsZSB7XG5cblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4vKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlcmUgYXJlIG5vIG90aGVyIGludGVncmF0aW9ucyBjb25maWd1cmVkIHRoYW4gaW5zZXJ0IGJ5IFVSTCAqL1xuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2staW1hZ2UtaW5zZXJ0LWluc2VydC1ieS11cmwtd2lkdGgpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm06Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS4gKi9cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb24ge1xuXHRvcGFjaXR5OiAwO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbi1iYWNrZ3JvdW5kKTtcblx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLXNob3csIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGU7XG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBmb3J3YXJkcztcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcywgNTAwbXM7XG5cblx0LyogVG8gbWFrZSBhbmltYXRpb24gc2NhbGFibGUuICovXG5cdGZvbnQtc2l6ZTogY2FsYygxcHggKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cblx0LyogSGlkZSBjb21wbGV0ZWQgdXBsb2FkIGljb24gYWZ0ZXIgMyBzZWNvbmRzLiAqL1xuXHRhbmltYXRpb24tZGVsYXk6IDBtcywgMzAwMG1zO1xuXG5cdC8qXG5cdCAqIFVzZSBDU1MgbWF0aCB0byBzaW11bGF0ZSBjb250YWluZXIgcXVlcmllcy5cblx0ICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS90aGUtcmF2ZW4tdGVjaG5pcXVlLW9uZS1zdGVwLWNsb3Nlci10by1jb250YWluZXItcXVlcmllcy8jd2hhdC1hYm91dC1zaG93aW5nLWFuZC1oaWRpbmctdGhpbmdzXG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIFRoaXMgaXMgY2hlY2sgaWNvbiBlbGVtZW50IG1hZGUgZnJvbSBib3JkZXItd2lkdGggbWl4ZWQgd2l0aCBhbmltYXRpb25zLiAqL1xufVxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0LyogQmVjYXVzZSBvZiBib3JkZXIgdHJhbnNmb3JtYXRpb24gd2UgbmVlZCB0byBcImhhcmQgY29kZVwiIGxlZnQgcG9zaXRpb24uICovXG5cdFx0bGVmdDogMjUlO1xuXG5cdFx0dG9wOiA1MCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG5cdFx0Ym9yZGVyLXRvcDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblx0XHRib3JkZXItcmlnaHQ6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cblx0XHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2s7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0XHRhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG5cdFx0LyogIzEwOTUuIFdoaWxlIHJlc2V0IGlzIG5vdCBwcm92aWRpbmcgcHJvcGVyIGJveC1zaXppbmcgZm9yIHBzZXVkb2VsZW1lbnRzLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4gKi9cblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDBtcztcbn1cblxuXHRcdC5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAwLjNlbTtcblx0XHRcdGhlaWdodDogMC40NWVtO1xuXHRcdH1cblx0fVxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93IHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2sge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MzMlIHtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMC40NWVtO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6IGhzbCgwLCAwJSwgNzAlKTtcblx0LS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemU6IDMycHg7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWltYWdlLWFzcGVjdC1yYXRpbzogMi44O1xufVxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG59XG4uY2sgLmNrLWltYWdlLXVwbG9hZC1wbGFjZWhvbGRlci5pbWFnZS1pbmxpbmUge1xuXHRcdHdpZHRoOiBjYWxjKCAyICogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKSAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pICk7XG5cdH1cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIGltZyB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIGlzIGFuIGFyYml0cmFyeSBhc3BlY3QgZm9yIGEgMXgxIHB4IEdJRiB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLiBOb3QgdG9vIHRhbGwsIG5vdCB0b28gc2hvcnQuXG5cdFx0ICogVGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgdGhpcyBudW1iZXIgZXhjZXB0IHRoYXQgaXQgc2hvdWxkIG1ha2UgdGhlIGltYWdlIHBsYWNlaG9sZGVyIGxvb2sgbGlrZVxuXHRcdCAqIGEgcmVhbCBpbWFnZSBkdXJpbmcgdGhpcyBzaG9ydCBwZXJpb2QgYWZ0ZXIgdGhlIHVwbG9hZCBzdGFydGVkIGFuZCBiZWZvcmUgdGhlIGltYWdlIHdhcyByZWFkIGZyb20gdGhlXG5cdFx0ICogZmlsZSBzeXN0ZW0gKGFuZCBhIHJpY2ggcHJldmlldyB3YXMgbG9hZGVkKS5cblx0XHQgKi9cblx0XHRhc3BlY3QtcmF0aW86IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXHR9XG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIpO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGFuaW1hdGlvbjogY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdH1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBTaG93aW5nIGFuaW1hdGlvbi4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5jay1hcHBlYXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUuY2stYXBwZWFyIHtcblx0XHRcdGFuaW1hdGlvbjogZmFkZUluIDcwMG1zO1xuXHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLWFwcGVhciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0d2lkdGg6IDA7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAxMDBtcztcblx0fVxuQGtleWZyYW1lcyBmYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtLXdpZHRoOiAzNDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS13aWR0aDogMzAwcHg7XG5cdH1cblx0fVxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0td2lkdGgpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0td2lkdGg6IDM0MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0OnJvb3Qge1xuXHRcdC0tY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLXdpZHRoOiAzMDBweDtcblx0fVxuXHR9XG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWltYWdlLWN1c3RvbS1yZXNpemUtZm9ybS13aWR0aCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBDbGFzcyBhZGRlZCB0byBzcGFuIGVsZW1lbnQgc3Vycm91bmRpbmcgY3VycmVudGx5IHNlbGVjdGVkIGxpbmsuICovXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG5cdC8qIEdpdmUgbGlua2VkIGlubGluZSBpbWFnZXMgc29tZSBvdXRsaW5lIHRvIGxldCB0aGUgdXNlciBrbm93IHRoZXkgYXJlIGFsc28gcGFydCBvZiB0aGUgbGluay4gKi9cbn1cbi5jayAuY2stbGlua19zZWxlY3RlZCBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXHR9XG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgbGluayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1saW5rLWJvb2ttYXJrLWljb24tc2l6ZTogY2FsYyggdmFyKC0tY2staWNvbi1zaXplKSAqIDAuNyk7IC8qIDAuNyA9IDE0LzIwIGNhdXNlIGRlZmF1bHQgdGhlIGljb24gc2l6ZSBpcyAyMHB4ICovXG59XG4uY2suY2stdG9vbGJhci5jay1saW5rLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5hLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXcge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpbmstZGVmYXVsdCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5hLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXcgLmNrLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG5cdFx0LyogTWF0Y2ggdGhlIGJveCBtb2RlbCBvZiB0aGUgbGluayBlZGl0b3IgZm9ybSdzIGlucHV0IHNvIHRoZSBiYWxsb29uXG5cdFx0ZG9lcyBub3QgY2hhbmdlIHdpZHRoIHdoZW4gbW92aW5nIGJldHdlZW4gYWN0aW9ucyBhbmQgdGhlIGZvcm0uICovXG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyxcblx0YS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmhvdmVyLFxuXHRhLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXc6Zm9jdXMsXG5cdGEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzphY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzphY3RpdmUge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzpob3Zlcixcblx0YS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmZvY3VzIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3LmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLmNrLWljb24uY2stYnV0dG9uX19pY29uIHtcblx0XHR3aWR0aDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXHR9XG5bZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldy5jay1idXR0b25fd2l0aC10ZXh0IC5jay5jay1pY29uLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbltkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3LmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLmNrLWljb24uY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmhhcyggLmNrLWljb24gKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkgKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDM0MHB4O1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSB0ZXh0IGluc2lkZSB0aGUgbGluayBwcm92aWRlcnMgbGlzdCBidXR0b24uICovXG5cdC0tY2stbGluay1wcm92aWRlci1saXN0LWl0ZW0tdGV4dC1oZWlnaHQ6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpO1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSBsaW5rIHByb3ZpZGVycyBsaXN0IGl0ZW0gY29udGFpbmVkIHBhZGRpbmdzLiAqL1xuXHQtLWNrLWxpbmstcHJvdmlkZXItbGlzdC1pdGVtLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS10ZXh0LWhlaWdodCkgKyB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSArIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi8qIEdlbmVyaWMgY2xhc3MgdGhhdCB3cmFwcyBlYWNoIGxpbmsgYmFsbG9vbiB2aWV3LiAqL1xuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWxpbmstcGFuZWwtd2lkdGgpO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3Qge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0XHQvKiBUaGUgbGlzdCBzaG91bGQgYmUgc2Nyb2xsYWJsZSB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gNCBpdGVtcy4gKi9cblx0fVxuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0OmhhcyguY2stbGlzdF9faXRlbTpudGgtY2hpbGQobiArIDUpKSB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdC8qIFNjcm9sbCBzaG91bGQgYXBwZWFyIHdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiA1IGl0ZW0gb24gdGhlIGxpc3QuXG5cdFx0XHQqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIC0gaXMgYSBmb3JtIHBhZGRpbmcuXG5cdFx0XHQqIDFweCAtIGlzIGEgYm9yZGVyIHdpZHRoLiAqL1xuXHRcdFx0bWF4LWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS1oZWlnaHQpICogNCArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpICsgMXB4KTtcblx0XHR9XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3QgLmNrLWxpbmtfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0IC5jay1saW5rX19idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLiAqL1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZTogMjA7XG5cdC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlOiBjbGFtcCgwcHgsIDEwMCUgLSA1MHB4LCAxcHgpO1xufVxuLyogTGlua2VkIGltYWdlIGluZGljYXRvciAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgZmlndXJlLmltYWdlID4gYTo6YWZ0ZXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGEgc3Bhbi5pbWFnZS1pbmxpbmU6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0XHRcdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIHVwbG9hZCBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgaW1hZ2UgdXBsb2FkIGZlYXR1cmUuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXHRcdFx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMCUsIC40KTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJhV1YzUW05NFBTSXdJREFnTWpBZ01qQWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeExqQTNOeUF4TlNBdU9Ua3hMVEV1TkRFMllTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9TNDRObXd0TVM0eE5EZ2dNUzQyTkdFdU56UTRMamMwT0NBd0lEQWdNUzB1TWpFM0xqSXdOaUExTGpJMU1TQTFMakkxTVNBd0lEQWdNUzA0TGpVd015MDFMamsxTlM0M05ERXVOelF4SURBZ01DQXhJQzR4TWkwdU1qYzBiREV1TVRRM0xURXVOak01WVM0M05TNDNOU0F3SURFZ01TQXhMakl5T0M0NE5rdzBMamt6TXlBeE1DNDNiQzR3TURZdU1EQXpZVE11TnpVZ015NDNOU0F3SURBZ01DQTJMakV6TWlBMExqSTVOR3d1TURBMkxqQXdOSHB0TlM0ME9UUXROUzR6TXpWaExqYzBPQzQzTkRnZ01DQXdJREV0TGpFeUxqSTNOR3d0TVM0eE5EY2dNUzQyTXpsaExqYzFMamMxSURBZ01TQXhMVEV1TWpJNExTNDRObXd1T0RZdE1TNHlNMkV6TGpjMUlETXVOelVnTUNBd0lEQXROaTR4TkRRdE5DNHpNREZzTFM0NE5pQXhMakl5T1dFdU56VXVOelVnTUNBd0lERXRNUzR5TWprdExqZzJiREV1TVRRNExURXVOalJoTGpjME9DNDNORGdnTUNBd0lERWdMakl4TnkwdU1qQTJJRFV1TWpVeElEVXVNalV4SURBZ01DQXhJRGd1TlRBeklEVXVPVFUxZW0wdE5DNDFOak10TWk0MU16SmhMamMxTGpjMUlEQWdNQ0F4SUM0eE9EUWdNUzR3TkRWc0xUTXVNVFUxSURRdU5UQTFZUzQzTlM0M05TQXdJREVnTVMweExqSXlPUzB1T0Rac015NHhOVFV0TkM0MU1EWmhMamMxTGpjMUlEQWdNQ0F4SURFdU1EUTFMUzR4T0RSNklpOCtQQzl6ZG1jK1wiKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTRweDtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXG5cdFx0XHQvKlxuXHRcdFx0KiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdFx0XHQqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHRcdFx0Ki9cblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR3aWR0aDogY2FsYyh2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplKSk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcHJvcGVydGllcy13aWR0aDogMzQwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHQ6cm9vdCB7XG5cdFx0LS1jay1saW5rLXByb3BlcnRpZXMtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1saW5rLXByb3BlcnRpZXMge1xuXHR3aWR0aDogdmFyKC0tY2stbGluay1wcm9wZXJ0aWVzLXdpZHRoKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcHJvdmlkZXJzLXdpZHRoOiAzNDBweDtcblx0LS1jay1saW5rLWxpc3Qtdmlldy1tYXgtaGVpZ2h0OiAyNDBweDtcblx0LS1jay1saW5rLWxpc3Qtdmlldy1pY29uLXNpemU6IGNhbGMoIHZhcigtLWNrLWljb24tc2l6ZSkgKiAwLjgpOyAvKiAwLjggPSAxNi8yMCBjYXVzZSBkZWZhdWx0IHRoZSBpY29uIHNpemUgaXMgMjBweCAqL1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0OnJvb3Qge1xuXHRcdC0tY2stbGluay1wcm92aWRlcnMtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyB7XG5cdHdpZHRoOiB2YXIoLS1jay1saW5rLXByb3ZpZGVycy13aWR0aCk7XG59XG4uY2suY2stbGluay1wcm92aWRlcnMgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyA+IC5jay1saW5rLXByb3ZpZGVyc19fbGlzdCB7XG5cdFx0bWF4LWhlaWdodDogbWluKCB2YXIoLS1jay1saW5rLWxpc3Qtdmlldy1tYXgtaGVpZ2h0KSwgNDB2aCApO1xuXHR9XG4uY2suY2stbGluay1wcm92aWRlcnMgPiAuY2stbGluay1wcm92aWRlcnNfX2xpc3QgLmNrLWJ1dHRvbiA+IC5jay1pY29uIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLWxpbmstbGlzdC12aWV3LWljb24tc2l6ZSk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stbGluay1saXN0LXZpZXctaWNvbi1zaXplKTtcblx0XHRcdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyA+IC5jay1saW5rLXByb3ZpZGVyc19fbGlzdCAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyAuY2stbGlua19fZW1wdHktbGlzdC1pbmZvIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFdoZW4gdGhlcmUgYXJlIG5vIGxpc3Qgc3R5bGVzIGFuZCB0aGVyZSBpcyBubyBjb2xsYXBzaWJsZS4gKi9cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGhvdXQtc3R5bGVzIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWxpc3QtcHJvcGVydGllcy5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMgPiAqIHtcblx0XHRcdG1pbi13aWR0aDogMTRlbTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRob3V0LXN0eWxlcyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4vKlxuXHQgKiBXaGVuIHRoZSBudW1iZXJlZCBsaXN0IHByb3BlcnR5IGZpZWxkcyAoc3RhcnQgYXQsIHJldmVyc2VkKSBzaG91bGQgYmUgZGlzcGxheWVkLFxuXHQgKiBtb3JlIGhvcml6b250YWwgc3BhY2UgaXMgbmVlZGVkLiBSZWNvbmZpZ3VyZSB0aGUgc3R5bGUgZ3JpZCB0byBjcmVhdGUgdGhhdCBzcGFjZS5cblx0ICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCggNCwgYXV0byApO1xuXHRcdH1cbi8qIFdoZW4gbGlzdCBzdHlsZXMgYXJlIHJlbmRlcmVkIGFuZCBwcm9wZXJ0eSBmaWVsZHMgYXJlIGluIGEgY29sbGFwc2libGUuICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4gPiAqICsgKiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3N0YXJ0LWluZGV4IC5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy10aW55KSk7XG5cdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXI6YWN0aXZlLCAuY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemU6IDQ0cHg7XG59XG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCAzLCBhdXRvICk7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IC5jay1idXR0b24ge1xuXHRcdC8qIE1ha2UgdGhlIGJ1dHRvbiBsb29rIGxpa2UgYSB0aHVtYm5haWwgKHRoZSBpY29uIFwidGFrZXMgaXQgYWxsXCIpLiAqL1xuXHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKlxuXHRcdCAqIEJ1dHRvbnMgYXJlIGFsaWduZWQgYnkgdGhlIGdyaWQgc28gZGlzYWJsZSBkZWZhdWx0IGJ1dHRvbiBtYXJnaW5zIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlXG5cdFx0ICogZ2FwcyBpbiB0aGUgZ3JpZC5cblx0XHQgKi9cblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJvcmRlciAod2hpY2ggaXMgZGlzcGxheWVkIG9uIGZvY3VzLCBCVFcpIGRvZXMgbm90IHN0ZWFsIHBpeGVsc1xuXHRcdCAqIGZyb20gdGhlIGJ1dHRvbiBkaW1lbnNpb25zIGFuZCwgYXMgYSByZXN1bHQsIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBpY29uXG5cdFx0ICogKHdoaWNoIGJlY29tZXMgYmx1cnJ5IGFzIGl0IHNjYWxlcyBkb3duKS5cblx0XHQgKi9cblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0fVxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3QgLmNrLWJ1dHRvbiAuY2staWNvbiB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplOiAzZW07XG5cblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dDogaHNsKDAsIDAlLCA0NiUpO1xuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xufVxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG59XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0cGFkZGluZzogY2FsYyggMyAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpICk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0KTtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXIpO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJvcGVuLnNwb3RpZnkuY29tXCJdIHtcblx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDM4MHB4O1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOVEF1TXpjNElpQm9aV2xuYUhROUlqSTFOQzR4TmpjaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTmk0eU5EWWdOamN1TWpRNElqNDhaeUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNndE1UY3lMalV6TVNBdE1qRTRMalExTlNrZ2MyTmhiR1VvTGprNE1ERXlLU0krUEhKbFkzUWdjbms5SWpVdU1qTTRJaUJ5ZUQwaU5TNHlNemdpSUhrOUlqSXpNUzR6T1RraUlIZzlJakUzTmk0d016RWlJR2hsYVdkb2REMGlOakF1TURrNUlpQjNhV1IwYUQwaU5qQXVNRGs1SWlCbWFXeHNQU0lqTXpSaE5qWTRJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanh3WVhSb0lHUTlJazB5TURZdU5EYzNJREkyTUM0NWJDMHlPQzQ1T0RjZ01qZ3VPVGczWVRVdU1qRTRJRFV1TWpFNElEQWdNQ0F3SURNdU56Z2dNUzQyTVdnME9TNDJNakZqTVM0Mk9UUWdNQ0F6TGpFNUxTNDNPVGdnTkM0eE5EWXRNaTR3TXpkNklpQm1hV3hzUFNJak5XTTRPR00xSWk4K1BIQmhkR2dnWkQwaVRUSXlOaTQzTkRJZ01qSXlMams0T0dNdE9TNHlOallnTUMweE5pNDNOemNnTnk0eE55MHhOaTQzTnpjZ01UWXVNREUwTGpBd055QXlMamMyTWk0Mk5qTWdOUzQwTnpRZ01pNHdPVE1nTnk0NE56VXVORE11TnpBekxqZ3pJREV1TkRBNElERXVNVGtnTWk0eE1EY3VNek16TGpVd01pNDJOU0F4TGpBd05TNDVOU0F4TGpVd09DNHpORE11TkRjM0xqWTNNeTQ1TlRjdU9UZzRJREV1TkRRZ01TNHpNU0F4TGpjMk9TQXlMalVnTXk0MU1ESWdNeTQyTXpjZ05TNHhOamd1TnpreklERXVNamMxSURFdU5qZ3pJREl1TmpRZ01pNDBOallnTXk0NU9TQXlMak0yTXlBMExqQTVOQ0EwTGpBd055QTRMakE1TWlBMExqWWdNVE11T1RFMGRpNHdNVEpqTGpFNE1pNDBNVEl1TlRFMkxqWTJOaTQ0TnprdU5qWTNMalF3TXkwdU1EQXhMamMyT0MwdU16RTBMamt6TFM0M09Ua3VOakF6TFRVdU56VTJJREl1TWpNNExUa3VOekk1SURRdU5UZzFMVEV6TGpjNU5DNDNPREl0TVM0ek5TQXhMalkzTXkweUxqY3hOU0F5TGpRMk5TMHpMams1SURFdU1UTTNMVEV1TmpZMklESXVNekk0TFRNdU5DQXpMall6T0MwMUxqRTJPUzR6TVRVdExqUTRNaTQyTkRVdExqazJNaTQ1T0RndE1TNDBNemt1TXkwdU5UQXpMall4TnkweExqQXdOaTQ1TlMweExqVXdPQzR6TlRrdExqY3VOell0TVM0ME1EUWdNUzR4T1MweUxqRXdOeUF4TGpReU5pMHlMalF3TWlBeUxUVXVNVEUwSURJdU1EQTBMVGN1T0RjMUlEQXRPQzQ0TkRRdE55NDFNVEV0TVRZdU1ERTBMVEUyTGpjM05pMHhOaTR3TVRSNklpQm1hV3hzUFNJalpHUTBZak5sSWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4bGJHeHBjSE5sSUhKNVBTSTFMalUyTkNJZ2NuZzlJalV1T0RJNElpQmplVDBpTWpNNUxqQXdNaUlnWTNnOUlqSXlOaTQzTkRJaUlHWnBiR3c5SWlNNE1ESmtNamNpSUhCaGFXNTBMVzl5WkdWeVBTSnRZWEpyWlhKeklITjBjbTlyWlNCbWFXeHNJaTgrUEhCaGRHZ2daRDBpVFRFNU1DNHpNREVnTWpNM0xqSTRNMk10TkM0Mk55QXdMVGd1TkRVM0lETXVPRFV6TFRndU5EVTNJRGd1TmpBMmN6TXVOemcySURndU5qQTNJRGd1TkRVM0lEZ3VOakEzWXpNdU1EUXpJREFnTkM0NE1EWXRMamsxT0NBMkxqTXpOeTB5TGpVeE5pQXhMalV6TFRFdU5UVTNJREl1TURnM0xUTXVPVEV6SURJdU1EZzNMVFl1TWprZ01DMHVNell5TFM0d01qTXRMamN5TWkwdU1EWTBMVEV1TURjNWFDMDRMakkxTjNZekxqQTBNMmcwTGpnMVl5MHVNVGszTGpjMU9TMHVOVE14SURFdU5EVXRNUzR3TlRnZ01TNDVPRFl0TGprME1pNDVOVGd0TWk0d01qZ2dNUzQxTkRndE15NDVNREVnTVM0MU5EZ3RNaTQ0TnpZZ01DMDFMakl3T0MweUxqTTNNaTAxTGpJd09DMDFMakk1T1NBd0xUSXVPVEkySURJdU16TXlMVFV1TWprNUlEVXVNakE0TFRVdU1qazVJREV1TXprNUlEQWdNaTQyTVRndU5EQTNJRE11TlRnMElERXVNamt6YkRJdU16Z3hMVEl1TXpoak1DMHVNREF5TFM0d01ETXRMakF3TkMwdU1EQTBMUzR3TURVdE1TNDFPRGd0TVM0MU1qUXRNeTQyTWkweUxqSXhOUzAxTGprMU5TMHlMakl4TlhwdE5DNDBNeUExTGpZMmJDNHdNRE11TURBMmRpMHVNREF6ZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakUxTGpFNE5DQXlOVEV1T1RJNWJDMDNMams0SURjdU9UYzVJREk0TGpRM055QXlPQzQwTnpWakxqSTROeTB1TmpRNUxqUTBPUzB4TGpNMk5pNDBORGt0TWk0eE1qTjJMVE14TGpFMk5XTXRMalEyT1M0Mk56VXRMamt6TkNBeExqTTBPUzB4TGpNNE1pQXlMakF3TlMwdU56a3lJREV1TWpjMUxURXVOamd5SURJdU5qUXRNaTQwTmpVZ015NDVPUzB5TGpNME55QTBMakEyTlMwekxqazRNaUE0TGpBek9DMDBMalU0TlNBeE15NDNPVFF0TGpFMk1pNDBPRFV0TGpVeU55NDNPVGd0TGprekxqYzVPUzB1TXpZekxTNHdNREV0TGpZNU55MHVNalUxTFM0NE56a3RMalkyTjNZdExqQXhNbU10TGpVNU15MDFMamd5TWkweUxqSXpOeTA1TGpneUxUUXVOaTB4TXk0NU1UUXRMamM0TXkweExqTTFMVEV1TmpjekxUSXVOekUxTFRJdU5EWTJMVE11T1RrdE1TNHhNemN0TVM0Mk5qWXRNaTR6TWpjdE15NDBMVE11TmpNM0xUVXVNVFk1YkMwdU1EQXlMUzR3TURONklpQm1hV3hzUFNJall6TmpNMk16SWk4K1BIQmhkR2dnWkQwaVRUSXhNaTQ1T0RNZ01qUTRMalE1Tld3dE16WXVPVFV5SURNMkxqazFNM1l1T0RFeVlUVXVNakkzSURVdU1qSTNJREFnTUNBd0lEVXVNak00SURVdU1qTTRhREV1TURFMWJETTFMalkyTmkwek5TNDJOalpoTVRNMkxqSTNOU0F4TXpZdU1qYzFJREFnTUNBd0xUSXVOelkwTFRNdU9TQXpOeTQxTnpVZ016Y3VOVGMxSURBZ01DQXdMUzQ1T0RrdE1TNDBOR010TGpJNU9TMHVOVEF6TFM0Mk1UWXRNUzR3TURZdExqazFMVEV1TlRBNExTNHdPRE10TGpFMk1pMHVNVGMyTFM0ek1qWXRMakkyTkMwdU5EZzVlaUlnWm1sc2JEMGlJMlprWkdNMFppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakV4TGprNU9DQXlOakV1TURnemJDMDJMakUxTWlBMkxqRTFNU0F5TkM0eU5qUWdNalF1TWpZMGFDNDNPREZoTlM0eU1qY2dOUzR5TWpjZ01DQXdJREFnTlM0eU16a3ROUzR5TXpoMkxURXVNRFExZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhMMmMrUEM5emRtYyspO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMjIwLCA0NiUsIDQ4JSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLGhzbCgyNDYsIDEwMCUsIDM5JSksaHNsKDMwMiwgMTAwJSwgMzYlKSxoc2woMCwgMTAwJSwgNDglKSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSTFNRFJ3ZUNJZ2FHVnBaMmgwUFNJMU1EUndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEVXdOQ0ExTURRaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStJQ0FnSUNBZ0lDQThkR2wwYkdVK1oyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMlBDOTBhWFJzWlQ0Z0lDQWdQR1JsYzJNK1EzSmxZWFJsWkNCM2FYUm9JRk5yWlhSamFDNDhMMlJsYzJNK0lDQWdJRHhrWldaelBpQWdJQ0FnSUNBZ1BIQnZiSGxuYjI0Z2FXUTlJbkJoZEdndE1TSWdjRzlwYm5SelBTSXdJREF1TVRVNUlEVXdNeTQ0TkRFZ01DNHhOVGtnTlRBekxqZzBNU0ExTURNdU9UUWdNQ0ExTURNdU9UUWlQand2Y0c5c2VXZHZiajRnSUNBZ1BDOWtaV1p6UGlBZ0lDQThaeUJwWkQwaVoyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNGdJQ0FnSUNBZ0lEeG5JR2xrUFNKSGNtOTFjQzB6SWo0Z0lDQWdJQ0FnSUNBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXkweUlpQm1hV3hzUFNKM2FHbDBaU0krSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHgxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM0JoZEdndE1TSStQQzkxYzJVK0lDQWdJQ0FnSUNBZ0lDQWdQQzl0WVhOclBpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSkRiR2x3TFRJaVBqd3ZaejRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1qVXhMamt5TVN3d0xqRTFPU0JETVRnekxqVXdNeXd3TGpFMU9TQXhOelF1T1RJMExEQXVORFE1SURFME9DNHdOVFFzTVM0Mk56VWdRekV5TVM0eU5Dd3lMamc1T0NBeE1ESXVPVEkzTERjdU1UVTNJRGcyTGprd015d3hNeTR6T0RVZ1F6Y3dMak16Tnl3eE9TNDRNaklnTlRZdU1qZzRMREk0TGpRek5pQTBNaTR5T0RJc05ESXVORFF4SUVNeU9DNHlOemNzTlRZdU5EUTNJREU1TGpZMk15dzNNQzQwT1RZZ01UTXVNakkyTERnM0xqQTJNaUJETmk0NU9UZ3NNVEF6TGpBNE5pQXlMamN6T1N3eE1qRXVNems1SURFdU5URTJMREUwT0M0eU1UTWdRekF1TWprc01UYzFMakE0TXlBd0xERTRNeTQyTmpJZ01Dd3lOVEl1TURnZ1F6QXNNekl3TGpRNU55QXdMakk1TERNeU9TNHdOellnTVM0MU1UWXNNelUxTGprME5pQkRNaTQzTXprc016Z3lMamMySURZdU9UazRMRFF3TVM0d056TWdNVE11TWpJMkxEUXhOeTR3T1RjZ1F6RTVMalkyTXl3ME16TXVOall6SURJNExqSTNOeXcwTkRjdU56RXlJRFF5TGpJNE1pdzBOakV1TnpFNElFTTFOaTR5T0Rnc05EYzFMamN5TXlBM01DNHpNemNzTkRnMExqTXpOeUE0Tmk0NU1ETXNORGt3TGpjM05TQkRNVEF5TGpreU55dzBPVGN1TURBeUlERXlNUzR5TkN3MU1ERXVNall4SURFME9DNHdOVFFzTlRBeUxqUTROQ0JETVRjMExqa3lOQ3cxTURNdU56RWdNVGd6TGpVd015dzFNRFFnTWpVeExqa3lNU3cxTURRZ1F6TXlNQzR6TXpnc05UQTBJRE15T0M0NU1UY3NOVEF6TGpjeElETTFOUzQzT0Rjc05UQXlMalE0TkNCRE16Z3lMall3TVN3MU1ERXVNall4SURRd01DNDVNVFFzTkRrM0xqQXdNaUEwTVRZdU9UTTRMRFE1TUM0M056VWdRelF6TXk0MU1EUXNORGcwTGpNek55QTBORGN1TlRVekxEUTNOUzQzTWpNZ05EWXhMalUxT1N3ME5qRXVOekU0SUVNME56VXVOVFkwTERRME55NDNNVElnTkRnMExqRTNPQ3cwTXpNdU5qWXpJRFE1TUM0Mk1UWXNOREUzTGpBNU55QkRORGsyTGpnME15dzBNREV1TURjeklEVXdNUzR4TURJc016Z3lMamMySURVd01pNHpNalVzTXpVMUxqazBOaUJETlRBekxqVTFNU3d6TWprdU1EYzJJRFV3TXk0NE5ERXNNekl3TGpRNU55QTFNRE11T0RReExESTFNaTR3T0NCRE5UQXpMamcwTVN3eE9ETXVOall5SURVd015NDFOVEVzTVRjMUxqQTRNeUExTURJdU16STFMREUwT0M0eU1UTWdRelV3TVM0eE1ESXNNVEl4TGpNNU9TQTBPVFl1T0RRekxERXdNeTR3T0RZZ05Ea3dMall4Tml3NE55NHdOaklnUXpRNE5DNHhOemdzTnpBdU5EazJJRFEzTlM0MU5qUXNOVFl1TkRRM0lEUTJNUzQxTlRrc05ESXVORFF4SUVNME5EY3VOVFV6TERJNExqUXpOaUEwTXpNdU5UQTBMREU1TGpneU1pQTBNVFl1T1RNNExERXpMak00TlNCRE5EQXdMamt4TkN3M0xqRTFOeUF6T0RJdU5qQXhMREl1T0RrNElETTFOUzQzT0Rjc01TNDJOelVnUXpNeU9DNDVNVGNzTUM0ME5Ea2dNekl3TGpNek9Dd3dMakUxT1NBeU5URXVPVEl4TERBdU1UVTVJRm9nVFRJMU1TNDVNakVzTkRVdU5UVWdRek14T1M0eE9EWXNORFV1TlRVZ016STNMakUxTkN3ME5TNDRNRGNnTXpVekxqY3hPQ3cwTnk0d01Ua2dRek0zT0M0eU9DdzBPQzR4TXprZ016a3hMall4T1N3MU1pNHlORE1nTkRBd0xqUTVOaXcxTlM0Mk9UTWdRelF4TWk0eU5UVXNOakF1TWpZeklEUXlNQzQyTkRjc05qVXVOekl5SURReU9TNDBOaklzTnpRdU5UTTRJRU0wTXpndU1qYzRMRGd6TGpNMU15QTBORE11TnpNM0xEa3hMamMwTlNBME5EZ3VNekEzTERFd015NDFNRFFnUXpRMU1TNDNOVGNzTVRFeUxqTTRNU0EwTlRVdU9EWXhMREV5TlM0M01pQTBOVFl1T1RneExERTFNQzR5T0RJZ1F6UTFPQzR4T1RNc01UYzJMamcwTmlBME5UZ3VORFVzTVRnMExqZ3hOQ0EwTlRndU5EVXNNalV5TGpBNElFTTBOVGd1TkRVc016RTVMak0wTlNBME5UZ3VNVGt6TERNeU55NHpNVE1nTkRVMkxqazRNU3d6TlRNdU9EYzNJRU0wTlRVdU9EWXhMRE0zT0M0ME16a2dORFV4TGpjMU55d3pPVEV1TnpjNElEUTBPQzR6TURjc05EQXdMalkxTlNCRE5EUXpMamN6Tnl3ME1USXVOREUwSURRek9DNHlOemdzTkRJd0xqZ3dOaUEwTWprdU5EWXlMRFF5T1M0Mk1qRWdRelF5TUM0Mk5EY3NORE00TGpRek55QTBNVEl1TWpVMUxEUTBNeTQ0T1RZZ05EQXdMalE1Tml3ME5EZ3VORFkySUVNek9URXVOakU1TERRMU1TNDVNVFlnTXpjNExqSTRMRFExTmk0d01pQXpOVE11TnpFNExEUTFOeTR4TkNCRE16STNMakUxT0N3ME5UZ3VNelV5SURNeE9TNHhPVEVzTkRVNExqWXdPU0F5TlRFdU9USXhMRFExT0M0Mk1Ea2dRekU0TkM0Mk5TdzBOVGd1TmpBNUlERTNOaTQyT0RRc05EVTRMak0xTWlBeE5UQXVNVEl6TERRMU55NHhOQ0JETVRJMUxqVTJNU3cwTlRZdU1ESWdNVEV5TGpJeU1pdzBOVEV1T1RFMklERXdNeTR6TkRVc05EUTRMalEyTmlCRE9URXVOVGcyTERRME15NDRPVFlnT0RNdU1UazBMRFF6T0M0ME16Y2dOelF1TXpjNUxEUXlPUzQyTWpFZ1F6WTFMalUyTkN3ME1qQXVPREEySURZd0xqRXdOQ3cwTVRJdU5ERTBJRFUxTGpVek5DdzBNREF1TmpVMUlFTTFNaTR3T0RRc016a3hMamMzT0NBME55NDVPQ3d6TnpndU5ETTVJRFEyTGpnMkxETTFNeTQ0TnpjZ1F6UTFMalkwT0N3ek1qY3VNekV6SURRMUxqTTVNU3d6TVRrdU16UTFJRFExTGpNNU1Td3lOVEl1TURnZ1F6UTFMak01TVN3eE9EUXVPREUwSURRMUxqWTBPQ3d4TnpZdU9EUTJJRFEyTGpnMkxERTFNQzR5T0RJZ1F6UTNMams0TERFeU5TNDNNaUExTWk0d09EUXNNVEV5TGpNNE1TQTFOUzQxTXpRc01UQXpMalV3TkNCRE5qQXVNVEEwTERreExqYzBOU0EyTlM0MU5qTXNPRE11TXpVeklEYzBMak0zT1N3M05DNDFNemdnUXpnekxqRTVOQ3cyTlM0M01qSWdPVEV1TlRnMkxEWXdMakkyTXlBeE1ETXVNelExTERVMUxqWTVNeUJETVRFeUxqSXlNaXcxTWk0eU5ETWdNVEkxTGpVMk1TdzBPQzR4TXprZ01UVXdMakV5TXl3ME55NHdNVGtnUXpFM05pNDJPRGNzTkRVdU9EQTNJREU0TkM0Mk5UVXNORFV1TlRVZ01qVXhMamt5TVN3ME5TNDFOU0JhSWlCcFpEMGlSbWxzYkMweElpQm1hV3hzUFNJalJrWkdSa1pHSWlCdFlYTnJQU0oxY213b0kyMWhjMnN0TWlraVBqd3ZjR0YwYUQ0Z0lDQWdJQ0FnSUR3dlp6NGdJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHlOVEV1T1RJeExETXpOaTR3TlRNZ1F6SXdOUzQxTkRNc016TTJMakExTXlBeE5qY3VPVFEzTERJNU9DNDBOVGNnTVRZM0xqazBOeXd5TlRJdU1EZ2dRekUyTnk0NU5EY3NNakExTGpjd01pQXlNRFV1TlRRekxERTJPQzR4TURZZ01qVXhMamt5TVN3eE5qZ3VNVEEySUVNeU9UZ3VNams0TERFMk9DNHhNRFlnTXpNMUxqZzVOQ3d5TURVdU56QXlJRE16TlM0NE9UUXNNalV5TGpBNElFTXpNelV1T0RrMExESTVPQzQwTlRjZ01qazRMakk1T0N3ek16WXVNRFV6SURJMU1TNDVNakVzTXpNMkxqQTFNeUJhSUUweU5URXVPVEl4TERFeU1pNDNNVFVnUXpFNE1DNDBOelFzTVRJeUxqY3hOU0F4TWpJdU5UVTJMREU0TUM0Mk16TWdNVEl5TGpVMU5pd3lOVEl1TURnZ1F6RXlNaTQxTlRZc016SXpMalV5TmlBeE9EQXVORGMwTERNNE1TNDBORFFnTWpVeExqa3lNU3d6T0RFdU5EUTBJRU16TWpNdU16WTNMRE00TVM0ME5EUWdNemd4TGpJNE5Td3pNak11TlRJMklETTRNUzR5T0RVc01qVXlMakE0SUVNek9ERXVNamcxTERFNE1DNDJNek1nTXpJekxqTTJOeXd4TWpJdU56RTFJREkxTVM0NU1qRXNNVEl5TGpjeE5TQmFJaUJwWkQwaVJtbHNiQzAwSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREUyTGpZeU55d3hNVGN1TmpBMElFTTBNVFl1TmpJM0xERXpOQzR6SURRd015NHdPVElzTVRRM0xqZ3pOQ0F6T0RZdU16azJMREUwTnk0NE16UWdRek0yT1M0M01ERXNNVFEzTGpnek5DQXpOVFl1TVRZMkxERXpOQzR6SURNMU5pNHhOallzTVRFM0xqWXdOQ0JETXpVMkxqRTJOaXd4TURBdU9UQTRJRE0yT1M0M01ERXNPRGN1TXpjeklETTROaTR6T1RZc09EY3VNemN6SUVNME1ETXVNRGt5TERnM0xqTTNNeUEwTVRZdU5qSTNMREV3TUM0NU1EZ2dOREUyTGpZeU55d3hNVGN1TmpBMElpQnBaRDBpUm1sc2JDMDFJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJRHd2Wno0OEwzTjJaejQ9KTtcblx0XHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMzAyLCAxMDAlLCA5NCUpO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCBoc2woMjAxLCA4NSUsIDcwJSksIGhzbCgyMDEsIDg1JSwgMzUlKSApO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejQ4YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlsZG9hWFJsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRd01DQTBNREFpSUhOMGVXeGxQU0psYm1GaWJHVXRZbUZqYTJkeWIzVnVaRHB1WlhjZ01DQXdJRFF3TUNBME1EQTdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGMzUjViR1VnZEhsd1pUMGlkR1Y0ZEM5amMzTWlQaTV6ZERCN1ptbHNiRG9qUmtaR1JrWkdPMzA4TDNOMGVXeGxQanh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWswME1EQXNNakF3WXpBc01URXdMalV0T0RrdU5Td3lNREF0TWpBd0xESXdNRk13TERNeE1DNDFMREFzTWpBd1V6ZzVMalVzTUN3eU1EQXNNRk0wTURBc09Ea3VOU3cwTURBc01qQXdlaUJOTVRZekxqUXNNekExTGpWak9EZ3VOeXd3TERFek55NHlMVGN6TGpVc01UTTNMakl0TVRNM0xqSmpNQzB5TGpFc01DMDBMakl0TUM0eExUWXVNbU01TGpRdE5pNDRMREUzTGpZdE1UVXVNeXd5TkM0eExUSTFZeTA0TGpZc015NDRMVEUzTGprc05pNDBMVEkzTGpjc055NDJZekV3TFRZc01UY3VOaTB4TlM0MExESXhMakl0TWpZdU4yTXRPUzR6TERVdU5TMHhPUzQyTERrdU5TMHpNQzQyTERFeExqZGpMVGd1T0MwNUxqUXRNakV1TXkweE5TNHlMVE0xTGpJdE1UVXVNbU10TWpZdU5pd3dMVFE0TGpJc01qRXVOaTAwT0M0eUxEUTRMakpqTUN3ekxqZ3NNQzQwTERjdU5Td3hMak1zTVRGakxUUXdMakV0TWkwM05TNDJMVEl4TGpJdE9Ua3VOQzAxTUM0MFl5MDBMakVzTnk0eExUWXVOU3d4TlM0MExUWXVOU3d5TkM0eVl6QXNNVFl1Tnl3NExqVXNNekV1TlN3eU1TNDFMRFF3TGpGakxUY3VPUzB3TGpJdE1UVXVNeTB5TGpRdE1qRXVPQzAyWXpBc01DNHlMREFzTUM0MExEQXNNQzQyWXpBc01qTXVOQ3d4Tmk0MkxEUXlMamdzTXpndU55dzBOeTR6WXkwMExERXVNUzA0TGpNc01TNDNMVEV5TGpjc01TNDNZeTB6TGpFc01DMDJMakV0TUM0ekxUa3VNUzB3TGpsak5pNHhMREU1TGpJc01qTXVPU3d6TXk0eExEUTFMRE16TGpWakxURTJMalVzTVRJdU9TMHpOeTR6TERJd0xqWXROVGt1T1N3eU1DNDJZeTB6TGprc01DMDNMamN0TUM0eUxURXhMalV0TUM0M1F6RXhNQzQ0TERJNU55NDFMREV6Tmk0eUxETXdOUzQxTERFMk15NDBMRE13TlM0MUlpOCtQQzl6ZG1jKyk7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIwMSwgMTAwJSwgODYlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtY29sb3ItbWVudGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDM0MSwgMTAwJSwgMzAlLCAwLjEpO1xuXHQtLWNrLWNvbnRlbnQtY29sb3ItbWVudGlvbi10ZXh0OiBoc2woMzQxLCAxMDAlLCAzMCUpO1xufVxuLmNrLWNvbnRlbnQgLm1lbnRpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLW1lbnRpb24tdGV4dCk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMik7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4zNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNCk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC41KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC42KTtcbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0dHJhbnNpdGlvbjogLjJzIGVhc2UtaW4tb3V0IGJhY2tncm91bmQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHR0byByaWdodCxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSA1cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIDZweCxcblx0XHRoc2xhKDAsIDAlLCAwJSwgMCkgY2FsYygxMDAlIC0gNnB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSBjYWxjKDEwMCUgLSA1cHgpLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDEwMCVcblx0KSAxO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX3NlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0dG8gcmlnaHQsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdFx0KSAxO1xuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX2NvbGxhcHNlZCB7XG5cdFx0LyogRW1wdHkgZXhjZXB0aW9uIHNob3VsZCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFzIGV4Y2VwdGlvbiB3aXRoIGF0IGxlYXN0IDEgY2hhciAqL1xuXHRcdHBhZGRpbmctbGVmdDogMWNoO1xuXHR9XG4uY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcblxuXHQvKiBXZSBhbHNvIGhhdmUgdG8gb3ZlcnJpZGUgYWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmVzdHJpY3RlZCBlZGl0YWJsZSB0byBwcmV2ZW50IGN1cnNvciBzd2l0Y2hpbmcgYmV0d2VlbiBkZWZhdWx0IGFuZCB0ZXh0XG5cdGR1cmluZyB0aGUgcG9pbnRlciBtb3ZlbWVudC4gKi9cbn1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkICoge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24gKiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb246aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZTogMjRweDtcbn1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0cGFkZGluZzogMDtcblx0XHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXHRcdGJvcmRlcjogMDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGU6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQuY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBnbHlwaCBpcyByZW5kZXJlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvID4gKiB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyAuY2stY2hhcmFjdGVyLWluZm9fX25hbWUge1xuXHRcdG1heC13aWR0aDogMjgwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvIC5jay1jaGFyYWN0ZXItaW5mb19fY29kZSB7XG5cdFx0b3BhY2l0eTogLjY7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMtbmF2aWdhdGlvbiA+IC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiAxNjBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGNhdGVnb3JpZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdFx0bWF4LWhlaWdodDogMjUwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24ge1xuXHRcdG1heC13aWR0aDogMTkwcHg7XG59XG5cblx0XHQuY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duX211bHRpcGxlLWFjdGl2ZSA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoOiAxMjBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taGVpZ2h0OiA4MHB4O1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5Mi4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA3MCUpO1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQpO1xuXG5cdFx0LyogTGV0IGRlZmF1bHQgLmNrLWJ1dHRvbiA6Zm9jdXMgc3R5bGVzIGFwcGx5ICovXG5cdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdG9wYWNpdHk6IC45O1xuXG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLWRpc2FibGVkOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRcdFx0XHRmaWx0ZXI6IHNhdHVyYXRlKC4zKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAtMXB4IDAgdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdFx0XHR6LWluZGV4OiAxOyAvKiBTdGF5IG9uIHRvcCBvZiB0aGUgcHJldmlldyB3aXRoIHRoZSBzaGFkb3cuICovXG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXMpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246bm90KC5jay1vbikgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpub3QoLmNrLW9uKTpob3ZlciAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcik7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCk6bm90KC5jay1vbikgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXAgPiAuY2stbGFiZWwge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXA6Zmlyc3QtY2hpbGQgPiAuY2stbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQ6IDQ3MHB4O1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuLyogTWFrZSBzdXJlIHRoZSBmb2N1c2VkIGlucHV0IGlzIGFsd2F5cyBvbiB0b3Agb2YgdGhlIGRyb3Bkb3duIGJ1dHRvbiBzbyBpdHNcblx0XHQgICBvdXRsaW5lIGFuZCBib3JkZXIgYXJlIG5ldmVyIGNyb3BwZWQgKGFsc28gd2hlbiB0aGUgaW5wdXQgaXMgcmVhZC1vbmx5KS4gKi9cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1pbnB1dC10ZXh0OmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uLmNrLWRpc2FibGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0XHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcsXG5cdC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3ID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dG9wOiAtMzAlO1xuXHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1MCU7XG5cdFx0XHRcdFx0d2lkdGg6IDglO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGhzbCgwLCAxMDAlLCA1MCUpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuXHRcdFx0XHR9XG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvcjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIC5jay5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3IgLmNrLmNrLWljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG4uY2suY2stZm9ybV9fcm93ID4gKjpub3QoLmNrLWxhYmVsKSArICoge1xuXHRcdFx0bWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuLmNrLmNrLWZvcm1fX3JvdyA+IC5jay1sYWJlbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZzogMTBweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodDogMTFweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luOiAxcHg7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdC8qIFRoZSB3aWR0aCBvZiBhIGNvbnRhaW5lciBzaG91bGQgbWF0Y2ggMTAgaXRlbXMgaW4gYSByb3cgc28gdGhlcmUgd2lsbCBiZSBhIDEweDEwIGdyaWQuICovXG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpICogMTAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbikgKiAyMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAqIDIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIDA7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwsXG4uY2tbZGlyPXJ0bF0gLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtaGVpZ2h0KTtcblx0bWFyZ2luOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbik7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0Ym9yZGVyLXJhZGl1czogMXB4O1xuXHRvdXRsaW5lOiBub25lO1xuXHR0cmFuc2l0aW9uOiBub25lO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94IHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveDpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3guY2stb24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3BhZGRpbmctcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci10YWJsZS1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMTIsIDkwJSwgODAlLCAuMyk7XG5cdC0tY2stdGFibGUtY29udGVudC1kZWZhdWx0LWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA4MyUpO1xuXHQtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLWNvbG9yOiBoc2woMCwgMCUsIDgzJSk7XG5cdC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGU6IGRhc2hlZDtcblx0LS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS13aWR0aDogMXB4O1xufVxuLyogRGFzaGVkIG91dGxpbmUgZm9yIHRhYmxlIHdpdGhvdXQgYW55IGJvcmRlci4gKi9cbi5jay13aWRnZXQudGFibGUgdGFibGVbc3R5bGUqPVwiYm9yZGVyOm5vbmVcIl0sXG5cdC5jay13aWRnZXQudGFibGUgdGFibGVbc3R5bGUqPVwiYm9yZGVyLXN0eWxlOm5vbmVcIl0ge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXRhYmxlLWNvbnRlbnQtZGVmYXVsdC1ib3JkZXItY29sb3IpIDFweCBkYXNoZWQ7XG5cdH1cbi8qKlxuXHRcdCAqIFdoaWxlIHNldHRpbmcgb3V0bGluZSBpcyBmaW5lLCB0aGUgYm9yZGVyIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgaGVyZVxuXHRcdCAqIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yIHdoaWNoIGlzIG5vdCBleHBlY3RlZC5cblx0XHQgKiBTbyBkbyBub3QgdXNlIGBAbWl4aW4gY2stZm9jdXMtcmluZztgIGhlcmUsIG9yIGFueSBvdGhlciBib3JkZXIgc3R5bGVzLlxuXHRcdCAqIFNlZSBtb3JlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNjk3OVxuXHRcdCAqL1xuLmNrLXdpZGdldC50YWJsZSB0ZC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSwgLmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSB7XG5cdFx0XHRvdXRsaW5lOiB1bnNldDtcblx0XHR9XG4uY2std2lkZ2V0LnRhYmxlIHRkLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQ6bm90KC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkKSxcblx0XHRcdFx0LmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkOm5vdCguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCksXG5cdFx0XHRcdC5jay13aWRnZXQudGFibGUgdGQuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkKTpmb2N1cyxcblx0XHRcdFx0LmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQpOmZvY3VzIHtcblx0XHRcdFx0XHQvKiBBIHZlcnkgc2xpZ2h0IGJhY2tncm91bmQgdG8gaGlnaGxpZ2h0IHRoZSBmb2N1c2VkIGNlbGwgKi9cblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10YWJsZS1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZCk7XG5cdFx0XHRcdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7IC8qIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50IC0gbm8gSUUgc3VwcG9ydCAqL1xuXHRcdFx0XHR9XG4vKlxuQnkgdXNpbmcgYDp3aGVyZWAgd2Ugc2V0IHRoZSBzcGVjaWZpY2l0eSB0byAwLCBidXQgd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlcyB0aGF0J3Mgd2h5IHdlIG11c3QgdXNlIGAhaW1wb3J0YW50YC5cblRoaXMgd2F5IGl0IHdpbGwgYmUgZWFzaWVyIHRvIG92ZXJyaWRlIGl0IGluIGN1c3RvbSB0aGVtZXMgaWYgbmVlZGVkLlxuKi9cbjp3aGVyZSguY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay10YWJsZS1zaG93LWhpZGRlbi1ib3JkZXJzIC5jay13aWRnZXQudGFibGUpIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyOm5vbmVcIl0sIHRkW3N0eWxlKj1cImJvcmRlci1zdHlsZTpub25lXCJdLCB0aFtzdHlsZSo9XCJib3JkZXI6bm9uZVwiXSwgdGhbc3R5bGUqPVwiYm9yZGVyLXN0eWxlOm5vbmVcIl0gKSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1zdHlsZSkgdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtd2lkdGgpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLWNvbG9yKSAhaW1wb3J0YW50O1xuXHR9XG46d2hlcmUoLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stdGFibGUtc2hvdy1oaWRkZW4tYm9yZGVycyAuY2std2lkZ2V0LnRhYmxlKSA+IDp3aGVyZSggdGFibGVbc3R5bGUqPVwiYm9yZGVyLXRvcC1zdHlsZTpub25lXCJdICksXG5cdDp3aGVyZSguY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay10YWJsZS1zaG93LWhpZGRlbi1ib3JkZXJzIC5jay13aWRnZXQudGFibGUpIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyLXRvcC1zdHlsZTpub25lXCJdLCB0aFtzdHlsZSo9XCJib3JkZXItdG9wLXN0eWxlOm5vbmVcIl0gKSB7XG5cdFx0Ym9yZGVyLXRvcDogdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGUpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXdpZHRoKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuOndoZXJlKC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXRhYmxlLXNob3ctaGlkZGVuLWJvcmRlcnMgLmNrLXdpZGdldC50YWJsZSkgPiA6d2hlcmUoIHRhYmxlW3N0eWxlKj1cImJvcmRlci1yaWdodC1zdHlsZTpub25lXCJdICksXG5cdDp3aGVyZSguY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay10YWJsZS1zaG93LWhpZGRlbi1ib3JkZXJzIC5jay13aWRnZXQudGFibGUpIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyLXJpZ2h0LXN0eWxlOm5vbmVcIl0sIHRoW3N0eWxlKj1cImJvcmRlci1yaWdodC1zdHlsZTpub25lXCJdICkge1xuXHRcdGJvcmRlci1yaWdodDogdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGUpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXdpZHRoKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuOndoZXJlKC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXRhYmxlLXNob3ctaGlkZGVuLWJvcmRlcnMgLmNrLXdpZGdldC50YWJsZSkgPiA6d2hlcmUoIHRhYmxlW3N0eWxlKj1cImJvcmRlci1ib3R0b20tc3R5bGU6bm9uZVwiXSApLFxuXHQ6d2hlcmUoLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stdGFibGUtc2hvdy1oaWRkZW4tYm9yZGVycyAuY2std2lkZ2V0LnRhYmxlKSA6d2hlcmUoIHRkW3N0eWxlKj1cImJvcmRlci1ib3R0b20tc3R5bGU6bm9uZVwiXSwgdGhbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbS1zdHlsZTpub25lXCJdICkge1xuXHRcdGJvcmRlci1ib3R0b206IHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXN0eWxlKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS13aWR0aCkgdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtY29sb3IpICFpbXBvcnRhbnQ7XG5cdH1cbjp3aGVyZSguY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay10YWJsZS1zaG93LWhpZGRlbi1ib3JkZXJzIC5jay13aWRnZXQudGFibGUpID4gOndoZXJlKCB0YWJsZVtzdHlsZSo9XCJib3JkZXItbGVmdC1zdHlsZTpub25lXCJdICksXG5cdDp3aGVyZSguY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay10YWJsZS1zaG93LWhpZGRlbi1ib3JkZXJzIC5jay13aWRnZXQudGFibGUpIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyLWxlZnQtc3R5bGU6bm9uZVwiXSwgdGhbc3R5bGUqPVwiYm9yZGVyLWxlZnQtc3R5bGU6bm9uZVwiXSApIHtcblx0XHRib3JkZXItbGVmdDogdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGUpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXdpZHRoKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdFx0bWluLXdpZHRoOiA4MHB4O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyxcblx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXM6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi8qIEhpZGUgdGhlIGVycm9yIGJhbGxvb24gd2hlbiB0aGUgZmllbGQgaXMgYmx1cnJlZC4gTWFrZXMgdGhlIGV4cGVyaWVuY2UgbXVjaCBtb3JlIGNsZWFyLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMDgsIDkwJSwgODAlLCAuMyk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDQ2ICovXG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkOmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyxcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCAqIFRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIG5vaXNlLCBhbGwgd2lkZ2V0cyBpbiB0aGUgdGFibGUgc2VsZWN0aW9uIGhhdmUgbm8gb3V0bGluZSBhbmQgbm8gc2VsZWN0aW9uIGhhbmRsZS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTQ5MS5cblx0XHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogMTZweDtcblx0LS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGg6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLWhlaWdodDogOHB4O1xuXHQtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LWRlZmF1bHQtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDgzJSk7XG5cbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblxuXHRcdFx0LyogUmVzZXR0aW5nIGBib3JkZXItY29sbGFwc2VgIHByb3BlcnR5IHRvIHRoZSB1c2VyIGFnZW50IHN0eWxlcy4gKi9cblx0XHRcdGJvcmRlci1jb2xsYXBzZTogcmV2ZXJ0O1xuXG5cdFx0XHQvKiBUaGUgZGVmYXVsdCB0YWJsZSBsYXlvdXQgc3R5bGUgaW4gdGhlIGVkaXRpbmcgdmlldyB3aGVuIHRoZSBib3JkZXIgaXMgdW5zZXQuICovXG5cdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlOm5vdChcblx0XHRcdFtzdHlsZSo9XCJib3JkZXI6XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci10b3BcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItbGVmdFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItcmlnaHRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXdpZHRoXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1zdHlsZVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItY29sb3JcIl0pIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkIHtcblx0XHRcdGJveC1zaGFkb3c6IHJldmVydDtcblx0XHRcdHBhZGRpbmc6IHJldmVydDtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0LyogVG8gbWFrZSB0aGUgY2FyZXQgdmlzaWJsZS4gKi9cblx0XHRcdHRleHQtaW5kZW50OiAxcHg7XG5cblx0XHRcdC8qIFJlc2V0cyB0aGUgYG1pbi13aWR0aGAgc3R5bGUgYXR0cmlidXRlIHRoYXQgd2FzIGFkZGVkIGJ5IHRoZSBjb250ZW50IHRhYmxlIHN0eWxlLiAqL1xuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZFtzdHlsZV49XCJ3aWR0aDpcIl0sXG5cdFx0XHQuY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGRbc3R5bGUqPVwiIHdpZHRoOlwiXSxcblx0XHRcdC5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZFtzdHlsZSo9XCI7d2lkdGg6XCJdLFxuXHRcdFx0LmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkW3N0eWxlKj1cIid3aWR0aDpcIl0ge1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHR9XG4vKiBSZW1vdmUgdGhlIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmcm9tIHRoZSBmb2N1c2VkIHRhYmxlIGNlbGwuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdH1cbi8qIFRoZSBkZWZhdWx0IHRhYmxlIGxheW91dCBjZWxsIHN0eWxlIGluIHRoZSBlZGl0aW5nIHZpZXcgd2hlbiB0aGUgYm9yZGVyIGlzIHVuc2V0LlxuXHRcdFx0QnV0IGl0IG5lZWQgdG8gYmUgbW9yZSBzdHJpY3QgY2F1c2Ugb2Ygc3R5bGUgYXR0cmlidXRlcyBsaWtlIGBib3JkZXItY29sbGFwc2VgLCBgYm9yZGVyLXNwYWNpbmdgLCBldGMuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6bm90KFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlcjpcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXRvcFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItYm90dG9tXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1sZWZ0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1yaWdodFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItd2lkdGhcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXN0eWxlXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1jb2xvclwiXSkge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHQvKiBSZXNldHRpbmcgYGJvcmRlci13aWR0aGAgcHJvcGVydHkgdG8gdGhlIHVzZXIgYWdlbnQgc3R5bGVzLiAqL1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDA7XG5cdFx0XHRcdG91dGxpbmU6IHZhcigtLWNrLXRhYmxlLWxheW91dC1kZWZhdWx0LWJvcmRlci1jb2xvcikgMXB4IGRhc2hlZDtcblx0XHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6bm90KFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlcjpcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXRvcFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItYm90dG9tXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1sZWZ0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1yaWdodFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItd2lkdGhcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXN0eWxlXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1jb2xvclwiXSk6Zm9jdXMge1xuXHRcdFx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcikgMXB4IHNvbGlkO1xuXHRcdFx0XHR9XG4vKiBSZXNldCB0aGUgYHdpZHRoYCBhbmQgYHRleHQtaW5kZW50YCBvZiB0aGUgYm9ndXMgcGFyYWdyYXBoIGJlY2F1c2UgPHRkPiBoYXMgMXB4IHRleHQgaW5kZW50LiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkID4gLmNrLXRhYmxlLWJvZ3VzLXBhcmFncmFwaCB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogMDtcblx0XHRcdH1cbi8qIFdpZGdldCB0eXBlIGFyb3VuZCBvdmVycmlkZXMuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdFx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IHZhcigtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSxcblx0XHRcdFx0XHQuY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXIge1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXHRcdFx0XHRcdFx0LyogU2FtZSB2YWx1ZSBhcyBpbmxpbmUtaW1hZ2Ugd2lkZ2V0IGJlY2F1c2UgaXQgaXMgYWZ0ZXIgdGhlIGlubGluZS1pbWFnZSBpbiBIVE1MIHN0cnVjdHVyZSAqL1xuXHRcdFx0XHRcdFx0ei1pbmRleDogMjtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRcdFx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIDEwMHB4IDEwMHB4O1xuXHRcdFx0XHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmU6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIDEwMHB4IDEwMHB4O1xuXHRcdFx0XHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4IDEwMHB4IDAgMDtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXI6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHggMTAwcHggMCAwO1xuXHRcdFx0XHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGgpO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24taGVpZ2h0KTtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdFx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IHZhcigtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoMHB4IC0gdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSkpO1xuXHRcdFx0XHRcdC8qIFZhbHVlIGluY3JlYXNlZCBieSAxIGFzIGluIHNlbGVjdGVkIGlubGluZS1pbWFnZSB3aWRnZXRcblx0XHRcdFx0XHRiZWNhdXNlIGl0IGlzIGJlZm9yZSB0aGUgaW5saW5lLWltYWdlIGluIEhUTUwgc3RydWN0dXJlLiAqL1xuXHRcdFx0XHRcdHotaW5kZXg6IDM7XG5cdFx0XHRcdH1cbi8qIFNob3cgZmFrZSBjYXJldCBvbiBib3JkZXIgbm90IGFib3ZlLiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHR9XG4vKiBTaG93IGZha2UgY2FyZXQgb24gYm9yZGVyIG5vdCBiZWxvdy4gKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRcdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdGZsZXg6IDE7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdH1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgPiAuY2suY2stYnV0dG9uIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IGluaXRpYWw7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgPiAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBjdXJyZW50Q29sb3I7XG5cdFx0XHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cbi5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwge1xuXHQtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aDogODBweDtcbn1cbi5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWwge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cgLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1zdHlsZSxcblx0XHRcdC5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHR3aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybS5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0LS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGg6IGNhbGModmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKSAqIDIgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cblx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG4uY2suY2stdGFibGUtZm9ybS5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X193aWR0aCxcblx0XHRcdC5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdG1heC13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybS5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0bGVmdDogLTAuNWNoO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybS5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLXRhYmxlLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aCk7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtZm9ybS1sYWJlbGVkLXZpZXctc3RhdHVzLWFwcGVhciAuMTVzIGVhc2UgYm90aDtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMsXG5cdC5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1czo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSk7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLXRhYmxlLWZvcm0uY2stdGFibGUtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4vKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cbi5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xuLmNrLmNrLWZvcm1fX3JvdyA+ICo6bm90KC5jay1sYWJlbCkgKyAqIHtcblx0XHRcdG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cbi5jay5jay1mb3JtX19yb3cgPiAuY2stbGFiZWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwge1xuXHRcdC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoOiA4MHB4O1xuXHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3BhZGRpbmctcm93IHtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItc3R5bGUsXG5cdFx0XHRcdC5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHRcdHdpZHRoOiA4MHB4O1xuXHRcdFx0XHRcdG1pbi13aWR0aDogODBweDtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X193aWR0aCxcblx0XHRcdFx0LmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvd19faGVpZ2h0IHtcblx0XHRcdFx0XHRtYXJnaW46IDBcblx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbCAuY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93ID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiBpbml0aWFsO1xuXHRcdFx0XHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIC5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgPiAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBjdXJyZW50Q29sb3I7XG5cdFx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwtbm8tY2VsbC10eXBlIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0XHRcdC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoOiBjYWxjKHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCkgKiAyICsgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXG5cdFx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHR9XG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0uY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC1uby1jZWxsLXR5cGUgLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0XHRcdC5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsLW5vLWNlbGwtdHlwZSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvd19faGVpZ2h0IHtcblx0XHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwtbm8tY2VsbC10eXBlIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRsZWZ0OiAtMC41Y2g7XG5cdFx0XHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdFx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwtbm8tY2VsbC10eXBlIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fY2VsbC10eXBlLXJvdyB7XG5cdFx0XHRcdFx0LS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGg6IGNhbGModmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKSAqIDIgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cblx0XHRcdFx0XHR3aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybS5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsLW5vLWNlbGwtdHlwZSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19ob3Jpem9udGFsLWFsaWdubWVudC10b29sYmFyIHtcblx0XHRcdFx0XHRcdFx0LS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGg6IGNhbGModmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKSAqIDIgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cblx0XHRcdFx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0XHRcdG1heC13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwtbm8tY2VsbC10eXBlIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3ZlcnRpY2FsLWFsaWdubWVudC10b29sYmFyIHtcblx0XHRcdFx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAzcHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplOiAxNnB4O1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbjogMjAwbXM7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlOiBlYXNlO1xuXG5cdC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyOiBoc2woMCwgMCUsIDg3JSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcjogaHNsKDQzLCAxMDAlLCA2MiUpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1lZGl0YWJsZS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1kcmFnLWhhbmRsZXItaWNvbi1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cbi5jayAuY2std2lkZ2V0IHtcblx0b3V0bGluZS13aWR0aDogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKTtcblx0b3V0bGluZS1zdHlsZTogc29saWQ7XG5cdG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldCB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuLmNrIC5jay13aWRnZXQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogVGhlIDpmb2N1cyBzdHlsZSBpcyBhcHBsaWVkIGJlZm9yZSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCBjbGFzcyBpcyByZW5kZXJlZCBpbiB0aGUgdmlldy5cblx0VGhlc2Ugc3R5bGVzIHNob3cgYSBkaWZmZXJlbnQgYm9yZGVyIGZvciBhIGJsaW5rIG9mIGFuIGV5ZSwgc28gYDpmb2N1c2AgbmVlZCB0byBoYXZlIHNhbWUgc3R5bGVzIGFwcGxpZWQuICovXG59XG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWlubmVyLXNoYWRvdyksIDAgMDtcblx0fVxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLCAuY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1lZGl0YWJsZS1mb2N1cy1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cdH1cbi8qKlxuXHRcdCAqIEZvY3VzIGJvcmRlciBzaG91bGQgbm90IGJlIGFwcGxpZWQgdG8gdGFibGUgY2VsbHMgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICogSW4gb3RoZXIgd29yZHMgLSBpbiBzb21lIHNjZW5hcmlvcywgdGhlIHBhcnQgb2YgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGhhcyBmb2N1cyBjb2xvciBzdHlsZSwgd2hpY2ggaXMgbm90IGV4cGVjdGVkIGJlaGF2aW9yXG5cdFx0ICogYmVjYXVzZSBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yLlxuXHRcdCAqL1xuLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkOm5vdCh0ZCwgdGgpLCAuY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOmZvY3VzOm5vdCh0ZCwgdGgpIHtcblx0XHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBhZGRpbmc6IDRweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0LyogQmFja2dyb3VuZCBhbmQgb3BhY2l0eSB3aWxsIGJlIGFuaW1hdGVkIGFzIHRoZSBoYW5kbGVyIHNob3dzIHVwIG9yIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZC4gKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0LyogVHJhbnNpdGlvbjpcblx0XHQgICAqIGJhY2tncm91bmQtY29sb3IgZm9yIHRoZSAuY2std2lkZ2V0X3NlbGVjdGVkIHN0YXRlIGNoYW5nZSxcblx0XHQgICAqIHZpc2liaWxpdHkgZm9yIGhpZGluZyB0aGUgaGFuZGxlcixcblx0XHQgICAqIG9wYWNpdHkgZm9yIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbiB3aGVuIHRoZSBoYW5kbGVyIGRpc2FwcGVhcnMuICovXG5cdFx0dHJhbnNpdGlvbjpcblx0XHRcdGJhY2tncm91bmQtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLFxuXHRcdFx0dmlzaWJpbGl0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHRvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdC8qIE1ha2Ugb25seSB0b3AgY29ybmVycyByb3VuZC4gKi9cblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cblx0XHQvKiBQbGFjZSB0aGUgZHJhZyBoYW5kbGVyIG91dHNpZGUgdGhlIHdpZGdldCB3cmFwcGVyLiAqL1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cdFx0bGVmdDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHR0b3A6IDA7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGljb24gYXJlIGluZGVwZW5kZW50IG9mIHRoZSBmb24tc2l6ZSBvZiB0aGUgY29udGVudC4gKi9cblx0XHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1kcmFnLWhhbmRsZXItaWNvbi1jb2xvcik7XG5cblx0XHRcdC8qIFRoZSBcInNlbGVjdGVkXCIgcGFydCBvZiB0aGUgaWNvbiBpcyBpbnZpc2libGUgYnkgZGVmYXVsdCAqL1xuXHRcdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblxuXHRcdFx0XHQvKiBOb3RlOiBUaGUgYW5pbWF0aW9uIGlzIGxvbmdlciBvbiBwdXJwb3NlLiBTaW1wbHkgZmVlbHMgYmV0dGVyLiAqL1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0XHRcdH1cbi8qIEFkdmVydGlzZSB1c2luZyB0aGUgbG9vayBvZiB0aGUgaWNvbiB0aGF0IG9uY2UgY2xpY2tlZCB0aGUgaGFuZGxlciwgdGhlIHdpZGdldCB3aWxsIGJlIHNlbGVjdGVkLiAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG4vKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdH1cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblxuXHRcdFx0LyogV2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBub3RpZnkgdGhlIHVzZXIgdXNpbmcgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uLiAqL1xuXHRcdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG4vKiBJbiBhIFJUTCBlbnZpcm9ubWVudCwgYWxpZ24gdGhlIHNlbGVjdGlvbiBoYW5kbGVyIHRvIHRoZSByaWdodCBzaWRlIG9mIHRoZSB3aWRnZXQgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2tbZGlyPVwicnRsXCJdIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0bGVmdDogYXV0bztcblx0cmlnaHQ6IGNhbGMoMHB4IC0gdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG59XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDE1ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldCB7XG5cdC8qIFByZXZlbnQgdGhlIDpob3ZlciBvdXRsaW5lIGZyb20gc2hvd2luZyB1cCBiZWNhdXNlIG9mIHRoZSB1c2VkIG91dGxpbmUtY29sb3IgdHJhbnNpdGlvbi4gKi9cblx0dHJhbnNpdGlvbjogbm9uZTtcbn1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSB7XG5cdFx0LyogRGlzYWJsZSB2aXN1YWwgZWZmZWN0cyBvZiBob3Zlci9hY3RpdmUgd2lkZ2V0IHdoZW4gQ0tFZGl0b3IgaXMgaW4gcmVhZE9ubHkgbW9kZS5cblx0XHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEyNjFcblx0XHQgKlxuXHRcdCAqIExlYXZlIHRoZSB1bml0IGJlY2F1c2UgdGhpcyBjdXN0b20gcHJvcGVydHkgaXMgdXNlZCBpbiBjYWxjKCkgYnkgb3RoZXIgZmVhdHVyZXMuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82Nzc1XG5cdFx0ICovXG5cdFx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDBweDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHRcdH1cbi8qXG4qIEhpZGUgdGhlIG91dGxpbmUgb2YgYWxsIHdpZGdldCBwYXJlbnRzIHdoZW4gdGhlIHdpZGdldCBpcyBiZWluZyBob3ZlcmVkLlxuKi9cbi5jayAuY2std2lkZ2V0OmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApIHtcblx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBIaWRlIHRoZSBzZWxlY3Rpb24gaGFuZGxlIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCBvZiBhbGwgdGhlIHdpZGdldCBwYXJlbnRzLiAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpoYXMoIC5jay13aWRnZXQudGFibGU6aG92ZXIgKSA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTdHlsZSB0aGUgd2lkZ2V0IHdoZW4gaXQncyBzZWxlY3RlZCBidXQgdGhlIGVkaXRhYmxlIGl0IGJlbG9uZ3MgdG8gbG9zdCBmb2N1cy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIsXG5cdFx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHRcdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcGFnaW5hdGlvbi12aWV3KSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCxcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcGFnaW5hdGlvbi12aWV3KSBibG9ja3F1b3RlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkIHtcblx0LyogRG8gbm90IGNyb3Agc2VsZWN0aW9uIGhhbmRsZXIgaWYgYSB3aWRnZXQgaXMgYSBmaXJzdC1jaGlsZCBpbiB0aGUgYmxvY2txdW90ZSBvciBpbiB0aGUgcm9vdCBlZGl0YWJsZS5cblx0SW4gZmFjdCwgYW55dGhpbmcgd2l0aCBvdmVyZmxvdzogaGlkZGVuLlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWJsb2NrLXF1b3RlL2lzc3Vlcy8yOFxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXdpZGdldC9pc3N1ZXMvNDRcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzY2ICovXG5cdG1hcmdpbi10b3A6IGNhbGMoMWVtICsgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXJlc2l6ZXItc2l6ZTogMTBweDtcblxuXHQvKiBTZXQgdGhlIHJlc2l6ZXIgd2l0aCBhIDUwJSBvZmZzZXQuICovXG5cdC0tY2stcmVzaXplci1vZmZzZXQ6IGNhbGMoICggdmFyKC0tY2stcmVzaXplci1zaXplKSAvIC0yICkgLSAycHgpO1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG59XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1yZXNpemVyKTtcbn1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUge1xuXHR3aWR0aDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRib3JkZXI6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoKSBzb2xpZCBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xufVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IDIwcHg7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3ZlcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGE6IDA7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGE6IC4zO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uKTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSwgYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyB7XG5cdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgZWFzZTtcblx0XHRcdG1hcmdpbi10b3A6IDFweDtcblx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnICoge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiAxMDtcblx0XHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cblx0XHRcdFx0ZmlsbDogbm9uZTtcblx0XHRcdFx0c3Ryb2tlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb24pO1xuXHRcdFx0XHRzdHJva2Utd2lkdGg6IDEuNXB4O1xuXHRcdFx0XHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdFx0XHRcdHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG5cdFx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyBsaW5lIHtcblx0XHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogNztcblx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIERpc3BsYXkgdGhlIFwic29uYXJcIiBhcm91bmQgdGhlIGJ1dHRvbiB3aGVuIGhvdmVyZWQuXG5cdFx0XHQgKi9cblx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciAxcyBlYXNlIGluZmluaXRlO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogQW5pbWF0ZSBhY3RpdmUgYnV0dG9uJ3MgaWNvbi5cblx0XHRcdCAqL1xuXHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy1kYXNoIDJzIGxpbmVhcjtcblx0XHRcdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgbGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHRcdFx0LmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgcG9seWxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIGxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdH1cbi8qXG5cdCAqIFNob3cgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgYmVpbmcgaG92ZXJlZC5cblx0ICovXG4uY2sgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0fVxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgTk9UIHNlbGVjdGVkIChidXQgdGhlIGJ1dHRvbnMgYXJlIHZpc2libGVcblx0ICogYW5kIHN0aWxsIGNhbiBiZSBob3ZlcmVkKS5cblx0ICovXG4uY2sgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLFxuXHQuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmUpO1xuXHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbGEoMCwwJSwxMDAlLDApIDAlLCBoc2xhKDAsMCUsMTAwJSwuMykgMTAwJSk7XG5cdFx0fVxuLypcblx0XHQqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIGJsaW5raW5nIChlLmcuIHVwb24ga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdFx0KiBEZXNwaXRlIHRoZSB3aWRnZXQgYmVpbmcgcGh5c2ljYWxseSBzZWxlY3RlZCBpbiB0aGUgbW9kZWwsIGl0cyBvdXRsaW5lIHNob3VsZCBkaXNhcHBlYXIuXG5cdFx0Ki9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0XHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCogU2hvdyB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLlxuXHRcdCovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHRcdH1cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIFwiYmVmb3JlXCIgYnV0dG9uIHdoZW4gdGhlIHdpZGdldCBoYXMgYSBzZWxlY3Rpb24gaGFuZGxlLiBCZWNhdXNlIHNvbWUgc3BhY2Vcblx0ICogaXMgY29uc3VtZWQgYnkgdGhlIGhhbmRsZSwgdGhlIGJ1dHRvbiBtdXN0IGJlIG1vdmVkIHNsaWdodGx5IHRvIHRoZSByaWdodCB0byBsZXQgaXQgYnJlYXRoZS5cblx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdH1cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSBsaW5lYXIgMXMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzO1xuXG5cdFx0Lypcblx0XHQgKiBUaGUgc2VtaS10cmFuc3BhcmVudC1vdXRsaW5lK2JhY2tncm91bmQgY29tYm8gaW1wcm92ZXMgdGhlIGNvbnRyYXN0XG5cdFx0ICogd2hlbiB0aGUgYmFja2dyb3VuZCB1bmRlcm5lYXRoIHRoZSBmYWtlIGNhcmV0IGlzIGRhcmsuXG5cdFx0ICovXG5cdFx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHR9XG4vKlxuXHRcdCAqIFdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIHZpc2libGUgd2Ugc2ltdWxhdGUgdGhhdCB0aGUgd2lkZ2V0IGlzIG5vdCBzZWxlY3RlZFxuXHRcdCAqIChkZXNwaXRlIGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQpLCBzbyB0aGUgb3V0bGluZSBjb2xvciBzaG91bGQgYmUgZm9yIHRoZVxuXHRcdCAqIHVuc2VsZWN0ZWQgd2lkZ2V0LlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0XHR9XG4vKlxuXHRcdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCAqIEluIHRoaXMgc3RhdGUsIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zIHdvdWxkIGNvbGxpZGUgd2l0aCB0aGUgZmFrZSBjYXJldHMgc28gdGhleSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cbi8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHNlbGVjdGlvbiBoYW5kbGUuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIGhhbmRsZSBiZWNhdXNlIGl0IGludGVyc2VjdHMgd2l0aCB0aGUgY2FyZXQgKGFuZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5KS5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDBcblx0XHRcdFx0fVxuLypcblx0XHQgKiBGYWtlIGhvcml6b250YWwgY2FyZXQgaW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzaXplIFVJLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSByZXNpemUgVUkgYmVjYXVzZSBpdCBjcmVhdGVzIHRvbyBtdWNoIG5vaXNlLiBJdCBjYW4gYmUgdmlzaWJsZSB3aGVuIHRoZSB1c2VyXG5cdFx0ICogaG92ZXJzIHRoZSB3aWRnZXQsIHRob3VnaC5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtcmVzaXplciA+IC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRcdFx0b3BhY2l0eTogMFxuXHRcdH1cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZSBpbiBhbiBSVEwgZW52aXJvbm1lbnQuXG4gKiBUaGUgc2VsZWN0aW9uIGhhbmRsZXIgaXMgYWxpZ25lZCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlXG4gKiBhZGRpdGlvbmFsIHNwYWNlIGZvciBpdCBuZXh0IHRvIHRoZSBcImJlZm9yZVwiIGJ1dHRvbi5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4vKlxuICogSGlkZSB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCBhcyBhIGNoaWxkIG9mIGEgc2VsZWN0ZWRcbiAqIG5lc3RlZCBlZGl0YWJsZSAoZS5nLiBtdWxpdC1jZWxsIHRhYmxlIHNlbGVjdGlvbikuXG4gKlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzcyNjMuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4gKi9cbi5jayAuY2std2lkZ2V0OmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG4vKlxuICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYnV0IHRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSBvZiB0aGUgZWRpdG9yIChibHVycmVkIHRoZSBlZGl0b3IpLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOm5vdCg6aG92ZXIpIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlKTtcbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikgc3ZnICoge1xuXHRcdHN0cm9rZTogaHNsKDAsMCUsNjAlKTtcblx0fVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCB7XG5cdDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMTA7XG5cdH1cblx0MjAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2gge1xuXHQwJSwgMjAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNztcblx0fVxuXHQ0MCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIge1xuXHQwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxuXHQ1MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhKSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NDklIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDUwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQ5OSUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBjb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRwYWRkaW5nOiAuMTVlbTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2stY29kZV9zZWxlY3RlZCAge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuNSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIEJhc2VkIG9uIGRlZmF1bHQgQ0tCb3ggdGhlbWUgY29sb3JzICovXG5cdC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTglKTtcblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTAlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3Npbmcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3Npbmc6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHRcdFx0OTBkZWcsXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKSxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcblxuXHRcdFx0XHRhbmltYXRpb246IGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIDJzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3NpbmcgaW1nIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0fVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcblx0fVxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcG9zaXRpb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdH1cblxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLXdpZGdldDotd2Via2l0LWRyYWcgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBwcmUge1xuXHRwYWRkaW5nOiAxZW07XG5cdGNvbG9yOiBoc2woMCwgMCUsIDIwLjglKTtcblx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc3JSk7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblxuXHQvKiBDb2RlIGJsb2NrIGFyZSBsYW5ndWFnZSBkaXJlY3Rpb27igJNhZ25vc3RpYy4gKi9cblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlyZWN0aW9uOiBsdHI7XG5cblx0dGFiLXNpemU6IDQ7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiBEb24ndCBsZXQgdGhlIGNvZGUgYmUgc3F1YXNoZWQgZS5nLiB3aGVuIGluIGEgdGFibGUgY2VsbC4gKi9cblx0bWluLXdpZHRoOiAyMDBweDtcbn1cblxuLmNrLWNvbnRlbnQgcHJlIGNvZGUge1xuXHRcdGJhY2tncm91bmQ6IHVuc2V0O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHByZVtkYXRhLWxhbmd1YWdlXTo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1sYW5ndWFnZSk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb250ZW50LWZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cdC0tY2stY29udGVudC1mb250LXNpemU6IG1lZGl1bTtcblx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLXByb3BlcnR5LXZhbHVlLWRpc2FsbG93ZWQtbGlzdCAqL1xuXHQtLWNrLWNvbnRlbnQtZm9udC1jb2xvcjogIzAwMDtcblx0LS1jay1jb250ZW50LWxpbmUtaGVpZ2h0OiAxLjU7XG5cdC0tY2stY29udGVudC13b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uY2stY29udGVudCB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1jb250ZW50LWZvbnQtZmFtaWx5KTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZSk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb250ZW50LWZvbnQtY29sb3IpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stY29udGVudC1saW5lLWhlaWdodCk7XG5cdHdvcmQtYnJlYWs6IHZhcigtLWNrLWNvbnRlbnQtd29yZC1icmVhayk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3Ige1xuXHQvKiBBbGwgdGhlIGVsZW1lbnRzIHdpdGhpbiBgLmNrLWVkaXRvcmAgYXJlIHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byBpdC5cblx0IElmIGFueSBlbGVtZW50IG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCByZXNwZWN0IHRvIHRoZSA8Ym9keT4sIGV0Yy4sXG5cdCBpdCBtdXN0IGxhbmQgb3V0c2lkZSBvZiB0aGUgYC5jay1lZGl0b3JgIGluIERPTS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZWRpdG9yIC5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay10b29sYmFyIHtcblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2lzc3Vlcy82MiAqL1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhciB7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2ggPiAuY2suY2stc2VhcmNoIHtcblx0XHRmbGV4OiAxO1xuXHR9XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBlbW9qaSBwaWNrZXIgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWVtb2ppLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cblxuZGl2LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZW1vamktcGlja2VyLWJhbGxvb24ge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoIC0tY2stei1kaWFsb2cgKSArIDEgKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3Qge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdH1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stZW1vamlfX2NhdGVnb3J5LWl0ZW0uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdH1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgPiBzcGFuIHtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZTogMjdweDtcbn1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oMjY1cHgsIDQwdmgpO1xuXG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX2dyaWQge1xuXHRcdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKSwgMWZyKSk7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Z3JpZC1nYXA6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0bWluLWhlaWdodDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZTpmb2N1czpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZTpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRcdH1cblxuLyogTWFrZSBzdXJlIHRoZSBnbHlwaCBpcyByZW5kZXJlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm0uY2stZW1vamktcGlja2VyLWZvcm0ge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblxuXHQvKlxuXHQgKiBgLmNrLWZvcm1gIG92ZXJyaWRlcyBzdHlsaW5nIG9mIGFsbCBkcm9wZG93bnMgYnkgYWRkaW5nIGJvcmRlciBhcm91bmQgdGhlbS5cblx0ICogVGhlIGJvcmRlciBpcyBub3QgbmVlZGVkIGluIHRoZSBlbW9qaSBwaWNrZXIgZm9ybSBzbyB0cnkgdG8gcmVtb3ZlIGl0IGtlZXBpbmdcblx0ICogc3BlY2lmaWNpdHkgaGlnaCBlbm91Z2ggdG8gb3ZlcnJpZGUgdGhlIGZvcm0gc3R5bGluZy5cblx0ICovXG59XG5cbi5jay5jay1mb3JtLmNrLWVtb2ppLXBpY2tlci1mb3JtIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamlfX3NraW4tdG9uZSB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUgPiAuY2suY2stZHJvcGRvd24gLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0fVxuXG4uY2suY2stZW1vamlfX3NraW4tdG9uZSA+IC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR3aWR0aDogaW5pdGlhbDtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM5MzYuICovXG4uY2suY2stcGxhY2Vob2xkZXIsXG4uY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTtcblxuXHRcdC8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjNDY5LiAqL1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjMTk4Ny4gKi9cbi5jay5jay1yZWFkLW9ubHkgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogRWxlbWVudHMgbWFya2VkIGJ5IHRoZSBSZW5kZXJlciBhcyBoaWRkZW4gc2hvdWxkIGJlIGludmlzaWJsZSBpbiB0aGUgZWRpdG9yLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgc3BhbltkYXRhLWNrLXVuc2FmZS1lbGVtZW50XSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1maW5kLXJlc3VsdCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xufVxuXG4uY2stZmluZC1yZXN1bHRfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiBoc2woMjksIDEwMCUsIDYwJSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdH1cblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgLmNrLXJlc3VsdHMtY291bnRlciwgLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIHZhbHVlcyBzaG91bGQgYmUgc3luY2hyb25pemVkIHdpdGggdGhlIFwiRk9OVF9TSVpFX1BSRVNFVF9VTklUU1wiIG9iamVjdCBpbiB0aGUgXCIvc3JjL2ZvbnRzaXplL3V0aWxzLmpzXCIgZmlsZS4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtZm9udC1zaXplLXRpbnk6IDAuN2VtO1xuXHQtLWNrLWNvbnRlbnQtZm9udC1zaXplLXNtYWxsOiAwLjg1ZW07XG5cdC0tY2stY29udGVudC1mb250LXNpemUtYmlnOiAxLjRlbTtcblx0LS1jay1jb250ZW50LWZvbnQtc2l6ZS1odWdlOiAxLjhlbTtcbn1cblxuLyogU3R5bGVzIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIHRoZSBgLmNrLWNvbnRlbnRgIGNsYXNzLlxuU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzYgKi9cbi5jay1jb250ZW50IC50ZXh0LXRpbnkge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtdGlueSk7XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LXNtYWxsIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplLXNtYWxsKTtcblx0fVxuLmNrLWNvbnRlbnQgLnRleHQtYmlnIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplLWJpZyk7XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LWh1Z2Uge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtaHVnZSk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogSW5jcmVhc2Ugei1pbmRleCBvZiBldmVyeXRoaW5nIHRvIG1ha2Ugc3VyZSBub3RoaW5nIHN0aWNrcyBpbiBmcm9udCBvZiB0aGUgZWRpdG9yLlxuRGlzYWJsZSBzY3JvbGxiYXJzIHRoYXQgY2FuIGJlIHByZXNlbnQgZHVlIHRvIHRoZSByZXN0IG9mIHRoZSB3ZWJzaXRlIGNvbnRlbnQuICovXG5odG1sLmNrLWZ1bGxzY3JlZW4sXG5ib2R5LmNrLWZ1bGxzY3JlZW4ge1xuXHQtLWNrLXotZnVsbHNjcmVlbjogMTAwMDA7XG5cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQtLWNrLXotZGVmYXVsdDogY2FsYyh2YXIoLS1jay16LWZ1bGxzY3JlZW4pICsgMSk7XG5cdC0tY2stei1wYW5lbDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgOTk5KTtcblx0LS1jay16LWRpYWxvZzogMTAwMDAwO1xuXG5cdC8qIENLQm94IHdyYXBwZXJzIGhhdmUgei1pbmRleCBvZiA5OTk5LCBsZXQncyBidW1wIHRoZW0gb3ZlciB0aGUgZGlhbG9nJ3MgdG8gZW5zdXJlIHZpc2liaWxpdHkgbGlrZSBvdXRzaWRlIGZ1bGxzY3JlZW4gbW9kZS4gKi9cbn1cbmh0bWwuY2stZnVsbHNjcmVlbiAuY2tib3gtcmVzZXQ6bm90KCNuKT4uY2tib3gtLWRpYWxvZywgYm9keS5jay1mdWxsc2NyZWVuIC5ja2JveC1yZXNldDpub3QoI24pPi5ja2JveC0tZGlhbG9nIHtcblx0XHQtLWNrYm94LXotaW5kZXgtcm9vdDogY2FsYyh2YXIoLS1jay16LWRpYWxvZykgKyAxKTtcblx0fVxuaHRtbC5jay1mdWxsc2NyZWVuIC5ja2JveDpub3QoI24pIC5ja2JveC1pbWctZWRpdG9yLCBib2R5LmNrLWZ1bGxzY3JlZW4gLmNrYm94Om5vdCgjbikgLmNrYm94LWltZy1lZGl0b3Ige1xuXHRcdC0tY2tib3gtei1pbmRleC1wcmV2aWV3OiBjYWxjKHZhcigtLWNrLXotZGlhbG9nKSArIDEpO1xuXHR9XG5odG1sLmNrLWZ1bGxzY3JlZW4gLmNrLXBhZ2luYXRpb24tdmlldy1saW5lLCBib2R5LmNrLWZ1bGxzY3JlZW4gLmNrLXBhZ2luYXRpb24tdmlldy1saW5lIHtcblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZnVsbHNjcmVlbikgKyAxKTtcblx0fVxuaHRtbC5jay1mdWxsc2NyZWVuIC5wYWdlLWJyZWFrX19sYWJlbCwgYm9keS5jay1mdWxsc2NyZWVuIC5wYWdlLWJyZWFrX19sYWJlbCB7XG5cdFx0LyogTmVlZHMgdG8gYmUgaGlnaGVyIHRoYW4gZm9yIC5jay1wYWdpbmF0aW9uLXZpZXctbGluZSB0byBiZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBsaW5lLiAqL1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1mdWxsc2NyZWVuKSArIDIpO1xuXHR9XG5cbi8qXG5GdWxsc2NyZWVuIGxheW91dDpcblxuPGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlclwiPlxuXHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fdG9wLXdyYXBwZXIgY2stcmVzZXRfYWxsXCI+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX21lbnUtYmFyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwibWVudS1iYXJcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fdG9vbGJhclwiIGRhdGEtY2stZnVsbHNjcmVlbj1cInRvb2xiYXJcIj48L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19lZGl0YWJsZS13cmFwcGVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX3NpZGViYXIgY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwibGVmdC1zaWRlYmFyXCI+PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwiZWRpdGFibGVcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fc2lkZWJhciBjay1mdWxsc2NyZWVuX19yaWdodC1zaWRlYmFyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwicmlnaHQtc2lkZWJhclwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19yaWdodC1lZGdlXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwicmlnaHQtZWRnZVwiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX2JvdHRvbS13cmFwcGVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX2JvZHktd3JhcHBlclwiIGRhdGEtY2stZnVsbHNjcmVlbj1cImJvZHktd3JhcHBlclwiPjwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuKi9cblxuLmNrLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciB7XG5cdC8qIGBwb3NpdGlvbjogZml4ZWRgIHByZXZlbnRzIHRoZSBvdmVyc2Nyb2xsIG9uIG1hY29zIHRoYXQgd291bGQgaGFwcGVuIHdpdGggYHBvc2l0aW9uOiBhYnNvbHV0ZWAuICovXG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWZ1bGxzY3JlZW4pO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2suY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay5jay1yZXZpc2lvbi1oaXN0b3J5LXVpX19jaGFuZ2VzLW5hdmlnYXRpb24ge1xuXHRcdG1hcmdpbi10b3A6IDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cblxuLyogSWYgdGhlIGZ1bGxzY3JlZW4gY29udGFpbmVyIGlzIG5vdCBkaXJlY3RseSBpbiB0aGUgYm9keSwgd2UgbmVlZCB0byBtYWtlIHN1cmUgaXQncyBwb3NpdGlvbmVkIGFic29sdXRlbHkuICovXG46bm90KGJvZHk+IC5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIpLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXI6bm90KGJvZHk+IC5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIpIC5jay1mdWxsc2NyZWVuX190b3Atd3JhcHBlciB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgMDtcblx0fVxuXG4uY2stZnVsbHNjcmVlbl9fbWVudS1iYXIgLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4uY2suY2stZnVsbHNjcmVlbl9fdG9vbGJhciAuY2stdG9vbGJhciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xuXHRib3JkZXItcmlnaHQ6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlLXdyYXBwZXIge1xuXHQtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW46IDI4cHg7XG5cdC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItYm90dG9tLW1hcmdpbjogMjhweDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRvdmVyZmxvdzogYXV0bztcblx0bWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUge1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1mdWxsc2NyZWVuLWVkaXRvci10b3AtbWFyZ2luKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGU6OmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLWJvdHRvbS1tYXJnaW4pO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0LyogTWFrZSBzdXJlIHRoZSBib3JkZXIgaXMgdGFrZW4gaW50byBhY2NvdW50LiAqL1xuXHR3aWR0aDogY2FsYygyMTBtbSArIDJweCk7XG5cdC8qIE1ha2Ugc3VyZSB0aGUgYm9yZGVyIGlzIHRha2VuIGludG8gYWNjb3VudC4gKi9cblx0bWF4LXdpZHRoOiBjYWxjKDIxMG1tICsgMnB4KTtcblx0bWluLWhlaWdodDogMjk3bW07XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdC8qIFJlc2V0IG1hcmdpbnMgdGhhdCBtYXkgYmUgcHJlc2VudCBvbiBlZGl0YWJsZS4gV2UgYWRkIHRoZW0gaW4gb3RoZXIgcGxhY2VzLiAqL1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDIwbW0gMTJtbTtcblx0Ym9yZGVyOiAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpIHNvbGlkO1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3gtc2hhZG93OiAwIDJweCAzcHggaHNsYSgwLCAwJSwgMCUsIDAuMDc4KTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUgLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEge1xuXHR3aWR0aDogY2FsYygyMTBtbSArIDJweCk7XG59XG5cbi5jay1mdWxsc2NyZWVuX19zaWRlYmFyIHtcblx0d2lkdGg6IDI3MHB4O1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1mdWxsc2NyZWVuLWVkaXRvci10b3AtbWFyZ2luKTtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIge1xuXHRmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0LS1jay11c2VyLWF2YXRhci1zaXplOiAyOHB4O1xuXHRwb3NpdGlvbjogc3RpY2t5O1xuXHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbi10b3A6IDBweDtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay1idXR0b24uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLXRvZ2dsZS1idXR0b24ge1xuXHRcdC0tY2staWNvbi1zaXplOiAyMHB4O1xuXHRcdC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQ6IDBweDtcblxuXHRcdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbik7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0b3BhY2l0eTogMC41O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cdH1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciA+IC5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItc3RpY2t5IHtcblx0XHQvKiBTZXQgbWluaW1hbCB3aWR0aCBpZiB0aGVyZSBpcyBhbnkgaXRlbSBpbiB0aGUgc2lkZWJhci4gKi9cblx0XHRtaW4td2lkdGg6IDI3MHB4O1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIgPiAuY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLXN0aWNreTpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbik7XG5cdFx0fVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci0tY29sbGFwc2VkIHtcblx0XHR3aWR0aDogNjVweDtcblx0fVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci0tY29sbGFwc2VkID4gOm5vdCguY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLXRvZ2dsZS1idXR0b24pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay5jay1wcmVzZW5jZS1saXN0LS1jb2xsYXBzZWQge1xuXHQtLWNrLXVzZXItYXZhdGFyLXNpemU6IDMycHg7XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIgLmNrLXVzZXIge1xuXHRmb250LXNpemU6IDAuODVlbTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2stcHJlc2VuY2UtbGlzdF9fdXNlcnMtY291bnRlcl9fdGV4dCB7XG5cdGZvbnQtc2l6ZTogMC44NWVtO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW0ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBGaXJzdCBoZWFkZXIgc2hvdWxkIG5vdCBoYXZlIHRvcCBwYWRkaW5nLiAqL1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW06Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaXRlbTpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaGVhZGVyIHtcblx0LS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZTogMC44NzVlbTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZSk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjb2xvcjogdmFyKC0tY2stZG9jdW1lbnQtb3V0bGluZS1pdGVtLWRlZmF1bHQtY29sb3IpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci0tc3RpY2t5IHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiAwO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLS1zdGlja3kgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19wcmVzZW5jZS1saXN0IHtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW0tLW5vLW1hcmdpbiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2suY2stZG9jdW1lbnQtb3V0bGluZSB7XG5cdHBhZGRpbmctdG9wOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5jay1mdWxsc2NyZWVuX19kb2N1bWVudC1vdXRsaW5lLXdyYXBwZXIge1xuXHRwYWRkaW5nLXRvcDogMDtcblx0b3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3NpZGViYXIuY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhciB7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5jay1mdWxsc2NyZWVuX19zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXI6bm90KC5jay1mdWxsc2NyZWVuX19yaWdodC1zaWRlYmFyLS1jb2xsYXBzZWQpID4gOmZpcnN0LWNoaWxkIHtcblx0XHQvKiBTZXQgbWluaW1hbCB3aWR0aCBpZiB0aGVyZSBpcyBhbnkgaXRlbSBpbiB0aGUgc2lkZWJhci4gKi9cblx0XHRtaW4td2lkdGg6IDI3MHB4O1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXIuY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhci0tY29sbGFwc2VkIHtcblx0XHR3aWR0aDogNjVweDtcblx0fVxuXG4uY2stZnVsbHNjcmVlbl9fc2lkZWJhci5jay1mdWxsc2NyZWVuX19yaWdodC1zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXItLWNvbGxhcHNlZCA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtaW4td2lkdGg6IDY1cHg7XG5cdFx0fVxuXG4uY2suY2stZnVsbHNjcmVlbl9fcmlnaHQtZWRnZSB7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jay5jay1mdWxsc2NyZWVuX19yaWdodC1lZGdlID4gOmZpcnN0LWNoaWxkIHtcblx0XHRib3JkZXItdG9wOiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogNDk1cHg7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzEgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDIwcHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmcyIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxN3B4O1xufVxuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNrW2NsYXNzKj1cImNrLWhlYWRpbmdfaGVhZGluZ1wiXSB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXllbGxvdzogaHNsKDYwLCA5NyUsIDczJSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLWdyZWVuOiBoc2woMTIwLCA5MyUsIDY4JSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXBpbms6IGhzbCgzNDUsIDk2JSwgNzMlKTtcblx0LS1jay1jb250ZW50LWhpZ2hsaWdodC1tYXJrZXItYmx1ZTogaHNsKDIwMSwgOTclLCA3MiUpO1xuXHQtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LXBlbi1yZWQ6IGhzbCgwLCA4NSUsIDQ5JSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtcGVuLWdyZWVuOiBoc2woMTEyLCAxMDAlLCAyNyUpO1xufVxuXG4uY2stY29udGVudCAubWFya2VyLXllbGxvdyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXllbGxvdyk7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LW1hcmtlci1ncmVlbik7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItcGluayB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXBpbmspO1xuXHR9XG4uY2stY29udGVudCAubWFya2VyLWJsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LW1hcmtlci1ibHVlKTtcblx0fVxuXG4uY2stY29udGVudCAucGVuLXJlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LXBlbi1yZWQpO1xuXG5cdFx0LyogT3ZlcnJpZGUgZGVmYXVsdCB5ZWxsb3cgYmFja2dyb3VuZCBvZiBgPG1hcms+YCBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG4uY2stY29udGVudCAucGVuLWdyZWVuIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29udGVudC1oaWdobGlnaHQtcGVuLWdyZWVuKTtcblxuXHRcdC8qIE92ZXJyaWRlIGRlZmF1bHQgeWVsbG93IGJhY2tncm91bmQgb2YgYDxtYXJrPmAgZnJvbSB1c2VyIGFnZW50IHN0eWxlc2hlZXQgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1ob3Jpem9udGFsLWxpbmUge1xuXHQvKiBOZWNlc3NhcnkgdG8gcmVuZGVyIHByb3Blcmx5IG5leHQgdG8gZmxvYXRlZCBvYmplY3RzLCBlLmcuIHNpZGUgaW1hZ2UgY2FzZS4gKi9cblx0ZGlzcGxheTogZmxvdy1yb290O1xufVxuXG4uY2stY29udGVudCBociB7XG5cdG1hcmdpbjogMTVweCAwO1xuXHRoZWlnaHQ6IDRweDtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCA4NyUpO1xuXHRib3JkZXI6IDA7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHQvKiBHaXZlIHRoZSBlbWJlZCBzb21lIGFpci4gKi9cblx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxvdy1yb290O1xuXG5cdC8qIEdpdmUgdGhlIGh0bWwgZW1iZWQgc29tZSBtaW5pbWFsIHdpZHRoIGluIHRoZSBjb250ZW50IHRvIHByZXZlbnQgdGhlbVxuXHRmcm9tIGJlaW5nIFwic3F1YXNoZWRcIiBpbiB0aWdodCBzcGFjZXMsIGUuZy4gaW4gdGFibGUgY2VsbHMgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgzMzEpICovXG5cdG1pbi13aWR0aDogMTVlbTtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiAtLS0tLSBFbWViZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG59XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOjpiZWZvcmUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgY29udGVudCBkb2VzIG5vdCBjb3ZlciB0aGUgbGFiZWwuICovXG5cdFx0ei1pbmRleDogMTtcblx0fVxuLyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXG5cdFx0LyogR2l2ZXMgc3BhY2luZyB0byB0aGUgc21hbGwgcmVuZGVyYWJsZSBlbGVtZW50cywgc28gdGhleSBhbHdheXMgY292ZXIgdGhlIHBsYWNlaG9sZGVyLiAqL1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDdweDtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWh0bWwtb2JqZWN0LWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoOiAxcHg7XG59XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdC8qIExlYXZlIHNwYWNlIGZvciBsYWJlbCAqL1xuXHRwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtdGlueSkgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdG1pbi13aWR0aDogY2FsYyg3NnB4ICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xufVxuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLW9iamVjdC1lbWJlZC1sYWJlbCk7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDYwJSk7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXRpbnkpICsgdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuXG4vKiBNYWtlIHNwYWNlIGZvciBsYWJlbC4gKi9cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiA1MHB4O1xuXHR9XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQgLmh0bWwtb2JqZWN0LWVtYmVkX19jb250ZW50IHtcblx0XHQvKiBEaXNhYmxlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBlbWJlZCBjb250ZW50ICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuZGl2LmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdG1hcmdpbjogMWVtIGF1dG87XG59XG5cbnNwYW4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb250ZW50LWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbnRlbnQtY29sb3ItaW1hZ2UtY2FwdGlvbi10ZXh0OiBoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kOiBoc2woNTJkZWcgMTAwJSA1MCUpO1xufVxuXG4vKiBDb250ZW50IHN0eWxlcyAqL1xuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogYm90dG9tO1xuXHR3b3JkLWJyZWFrOiBub3JtYWw7XG5cdG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuXHRicmVhay1iZWZvcmU6IGF2b2lkO1xuXHRjb2xvcjogdmFyKC0tY2stY29udGVudC1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRjb2xvcjogdW5zZXQ7XG59XG5cdH1cblxuLyogRWRpdGluZyBzdHlsZXMgKi9cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogY2staW1hZ2UtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcbn1cblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUHJlc2VydmUgYXNwZWN0IHJhdGlvIG9mIHRoZSByZXNpemVkIGltYWdlIGFmdGVyIGludHJvZHVjaW5nIGltYWdlIGhlaWdodCBhdHRyaWJ1dGUuICovXG4uY2stY29udGVudCBpbWcuaW1hZ2VfcmVzaXplZCB7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdC8qXG5cdFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgZm9yIHJlc2l6ZWQgaW1hZ2VzIG11c3Qgbm90IHVzZSBgZGlzcGxheTp0YWJsZWAgYXMgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgYG1heC13aWR0aGAgZm9yIGl0IHdlbGwuXG5cdFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDE5NjA0L2Nocm9tZS1zYWZhcmktaWdub3JpbmctbWF4LXdpZHRoLWluLXRhYmxlLzE0NDIwNjkxIzE0NDIwNjkxIGZvciBtb3JlLlxuXHRGb3J0dW5hdGVseSwgc2luY2Ugd2UgY29udHJvbCB0aGUgd2lkdGgsIHRoZXJlIGlzIG5vIHJpc2sgdGhhdCB0aGUgaW1hZ2Ugd2lsbCBsb29rIGJhZC5cblx0Ki9cblx0ZGlzcGxheTogYmxvY2s7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIGltZyB7XG5cdFx0LyogRm9yIHJlc2l6ZWQgaW1hZ2VzIGl0IGlzIHRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgdGhhdCBkZXRlcm1pbmVzIHRoZSBpbWFnZSB3aWR0aC4gKi9cblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2VfcmVzaXplZCA+IGZpZ2NhcHRpb24ge1xuXHRcdC8qIFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgdXNlcyBgZGlzcGxheTpibG9ja2AsIHNvIGA8ZmlnY2FwdGlvbj5gIGFsc28gaGFzIHRvLiAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qIFRoZSByZXNpemVkIGlubGluZSBpbWFnZSBuZXN0ZWQgaW4gdGhlIHRhYmxlIHNob3VsZCByZXNwZWN0IGl0cyBwYXJlbnQgc2l6ZS5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHRkIC5pbWFnZS1pbmxpbmUuaW1hZ2VfcmVzaXplZCBpbWcsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHRoIC5pbWFnZS1pbmxpbmUuaW1hZ2VfcmVzaXplZCBpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0d2lkdGg6IDRlbTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZzogMS41ZW07XG5cdC0tY2stY29udGVudC1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZzogY2FsYyh2YXIoLS1jay1jb250ZW50LWltYWdlLXN0eWxlLXNwYWNpbmcpIC8gMik7XG59XG5cbi8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTYzMTcgKi9cblxuLyogUHJvdmlkZXMgYSBtaW5pbWFsIHNpZGUgbWFyZ2luIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgYWxpZ25lZCBpbWFnZXMsIHNvIHRoYXQgdGhlIHVzZXIgaGFzIGEgdmlzdWFsIGZlZWRiYWNrXG5cdFx0Y29uZmlybWluZyBzdWNjZXNzZnVsIGFwcGxpY2F0aW9uIG9mIHRoZSBzdHlsZSBpZiBpbWFnZSB3aWR0aCBleGNlZWRzIHRoZSBlZGl0b3IncyBzaXplLlxuXHRcdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MzQyICovXG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1sZWZ0LFxuXHRcdC5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZykpO1xuXHRcdH1cblxuLyogQWxsb3dzIGRpc3BsYXlpbmcgbXVsdGlwbGUgZmxvYXRpbmcgaW1hZ2VzIGluIHRoZSBzYW1lIGxpbmUuXG5cdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxODMjaXNzdWVjb21tZW50LTgwNDk4ODEzMiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0XHQuY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stY29udGVudC1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1jb250ZW50LWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1jb250ZW50LWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi8qIFNpbXVsYXRlcyBtYXJnaW4gY29sbGFwc2luZyB3aXRoIHRoZSBwcmVjZWRpbmcgcGFyYWdyYXBoLCB3aGljaCBkb2VzIG5vdCB3b3JrIGZvciB0aGUgZmxvYXRpbmcgZWxlbWVudHMuICovXG5cbi5jay1jb250ZW50IHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0LmNrLWNvbnRlbnQgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCxcblx0LmNrLWNvbnRlbnQgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0XHQuY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLWNvbnRlbnQtaW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stY29udGVudC1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1jb250ZW50LWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtaW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLyogVGhlIGJ1dHRvbiBzaG91bGQgZGlzcGxheSBhcyBhIHJlZ3VsYXIgZHJvcC1kb3duIGlmIHRoZSBhY3Rpb24gYnV0dG9uXG5cdGlzIGZvcmNlZCB0byBmaXJlIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUgYXJyb3cgYnV0dG9uLiAqL1xuXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3ZlciksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcik6OmFmdGVyIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi8qIFVwbG9hZCBwcm9ncmVzcyBiYXIuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSAuY2stcHJvZ3Jlc3MtYmFyLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qXG5cdCAqIFNtYWxsZXIgaW1hZ2VzIHNob3VsZCBoYXZlIHRoZSBpY29uIGNsb3NlciB0byB0aGUgYm9yZGVyLlxuXHQgKiBNYXRjaCB0aGUgaWNvbiBwb3NpdGlvbiB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS5cblx0ICovXG5cdHRvcDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXHRyaWdodDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdHotaW5kZXg6IDE7XG59XG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcbn1cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2Uge1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRlbnQgYW5kIHRoZSBpbWFnZS4gQ2VudGVyIGltYWdlIGJ5IGRlZmF1bHQuICovXG5cdFx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0IFx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRcdG1hcmdpbjogMC45ZW0gYXV0bztcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgY2FwdGlvbiB3aWxsIGJlIGRpc3BsYXllZCBwcm9wZXJseSAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xODcwKS4gKi9cblx0XHRtaW4td2lkdGg6IDUwcHg7XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlIGltZyB7XG5cdFx0XHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IG1hcmdpbnMgY2F1c2VkIGJ5IGxpbmUtaGVpZ2h0IChzZWUgIzQ0KS4gKi9cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHQvKiBDZW50ZXIgdGhlIGltYWdlIGlmIGl0cyB3aWR0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGNvbnRlbnQncyB3aWR0aC4gKi9cblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIG5ldmVyIGV4Y2VlZHMgdGhlIHNpemUgb2YgdGhlIHBhcmVudCBjb250YWluZXIgKGNrZWRpdG9yL2NrZWRpdG9yNS11aSM2NykuICovXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgaXMgbmV2ZXIgc21hbGxlciB0aGFuIHRoZSBwYXJlbnQgY29udGFpbmVyIChTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkzMDApLiAqL1xuXHRcdFx0bWluLXdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBLZWVwIHByb3BvcnRpb25zIG9mIHRoZSBibG9jayBpbWFnZSBpZiB0aGUgaGVpZ2h0IGlzIHNldCBhbmQgdGhlIGltYWdlIGlzIHdpZGVyIHRoYW4gdGhlIGVkaXRvciB3aWR0aC5cblx0XHRcdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDU0Mi4gKi9cblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUge1xuXHRcdC8qXG5cdFx0ICogTm9ybWFsbHksIHRoZSAuaW1hZ2UtaW5saW5lIHdvdWxkIGhhdmUgXCJkaXNwbGF5OiBpbmxpbmUtYmxvY2tcIiBhbmQgXCJpbWcgeyB3aWR0aDogMTAwJSB9XCIgKHRvIGZvbGxvdyB0aGUgd3JhcHBlciB3aGlsZSByZXNpemluZykuXG5cdFx0ICogVW5mb3J0dW5hdGVseSwgdG9nZXRoZXIgd2l0aCBcInNyY3NldFwiLCBpdCBnZXRzIGF1dG9tYXRpY2FsbHkgc3RyZXRjaGVkIHVwIHRvIHRoZSB3aWR0aCBvZiB0aGUgZWRpdGluZyByb290LlxuXHRcdCAqIFRoaXMgc3RyYW5nZSBiZWhhdmlvciBkb2VzIG5vdCBoYXBwZW4gd2l0aCBpbmxpbmUtZmxleC5cblx0XHQgKi9cblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuXHRcdC8qIFdoaWxlIGJlaW5nIHJlc2l6ZWQsIGRvbid0IGFsbG93IHRoZSBpbWFnZSB0byBleGNlZWQgdGhlIHdpZHRoIG9mIHRoZSBlZGl0aW5nIHJvb3QuICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogVGhpcyBpcyByZXF1aXJlZCBieSBTYWZhcmkgdG8gcmVzaXplIGltYWdlcyBpbiBhIHNlbnNpYmxlIHdheS4gV2l0aG91dCB0aGlzLCB0aGUgYnJvd3NlciBicmVha3MgdGhlIHJhdGlvLiAqL1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdFx0LyogV2hlbiB0aGUgcGljdHVyZSBpcyBwcmVzZW50IGl0IG11c3QgYWN0IGFzIGEgZmxleCBjb250YWluZXIgdG8gbGV0IHRoZSBpbWcgcmVzaXplIHByb3Blcmx5ICovXG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZSBwaWN0dXJlIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0fVxuXG4vKiBXaGVuIHRoZSBwaWN0dXJlIGlzIHByZXNlbnQsIGl0IG11c3QgYWN0IGxpa2UgYSByZXNpemFibGUgaW1nLiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lIHBpY3R1cmUsXG5cdFx0LmNrLWNvbnRlbnQgLmltYWdlLWlubGluZSBpbWcge1xuXHRcdFx0LyogVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBpbWcgdG8gc3BhbiB0aGUgZW50aXJlIC5pbWFnZS1pbmxpbmUgd3JhcHBlciBhbmQgdG8gcmVzaXplIHByb3Blcmx5LiAqL1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0ZmxleC1zaHJpbms6IDE7XG5cblx0XHRcdC8qIFByZXZlbnRzIG92ZXJmbG93aW5nIHRoZSBlZGl0aW5nIHJvb3QgYm91bmRhcmllcyB3aGVuIGFuIGlubGluZSBpbWFnZSBpcyB2ZXJ5IHdpZGUuICovXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXG4vKlxuXHQgKiBJbmhlcnRpdCB0aGUgY29udGVudCBzdHlsZXMgcGFkZGluZyBvZiB0aGUgPGZpZ2NhcHRpb24+IGluIGNhc2UgdGhlIGludGVncmF0aW9uIG92ZXJyaWRlcyBgdGV4dC1hbGlnbjogY2VudGVyYFxuXHQgKiBvZiBgLmltYWdlYCAoZS5nLiB0byB0aGUgbGVmdC9yaWdodCkuIFRoaXMgZW5zdXJlcyB0aGUgcGxhY2Vob2xkZXIgc3RheXMgYXQgdGhlIHBhZGRpbmcganVzdCBsaWtlIHRoZSBuYXRpdmVcblx0ICogY2FyZXQgZG9lcywgYW5kIG5vdCBhdCB0aGUgZWRnZSBvZiA8ZmlnY2FwdGlvbj4uXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgPiBmaWdjYXB0aW9uLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdHBhZGRpbmctbGVmdDogaW5oZXJpdDtcblx0XHRwYWRkaW5nLXJpZ2h0OiBpbmhlcml0O1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIGltYWdlIGNhcHRpb24gcGxhY2Vob2xkZXIgZG9lc24ndCBvdmVyZmxvdyB0aGUgcGxhY2Vob2xkZXIgYXJlYS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTE2Mi5cblx0XHQgKi9cblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cblxuLypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIHtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIHNlbGVjdGVkIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblx0XHR9XG5cbi8qXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTExNS5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW5saW5lIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBNYWtlIHN1cmUgdGhlIG5hdGl2ZSBicm93c2VyIHNlbGVjdGlvbiBzdHlsZSBpcyBub3QgZGlzcGxheWVkLlxuXHRcdFx0ICogSW5saW5lIGltYWdlIHdpZGdldHMgaGF2ZSB0aGVpciBvd24gc3R5bGVzIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGUgYW5kXG5cdFx0XHQgKiBsZWF2aW5nIHRoaXMgdXAgdG8gdGhlIGJyb3dzZXIgaXMgYXNraW5nIGZvciBhIHZpc3VhbCBjb2xsaXNpb24uXG5cdFx0XHQgKi9cblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUuY2std2lkZ2V0X3NlbGVjdGVkIDo6c2VsZWN0aW9uIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuLyogS2VlcCBwcm9wb3J0aW9ucyBvZiB0aGUgaW5saW5lIGltYWdlIGlmIHRoZSBoZWlnaHQgaXMgc2V0IGFuZCB0aGUgaW1hZ2UgaXMgd2lkZXIgdGhhbiB0aGUgZWRpdG9yIHdpZHRoLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ1NDIuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuLyogVGhlIGlubGluZSBpbWFnZSBuZXN0ZWQgaW4gdGhlIHRhYmxlIHNob3VsZCBoYXZlIGl0cyBvcmlnaW5hbCBzaXplIGlmIG5vdCByZXNpemVkLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgdGQgLmltYWdlLWlubGluZSBpbWcsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHRoIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGltZy5pbWFnZV9wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHR3aWR0aDogNDAwcHg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG59XG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNrLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGZpZ3VyZS5pbWFnZSA+IGE6OmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSBhIHNwYW4uaW1hZ2UtaW5saW5lOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogR2VuZXJpYyBjbGFzcyB0aGF0IHdyYXBzIGVhY2ggbGluayBiYWxsb29uIHZpZXcuICovXG4uY2suY2stbGluay1mb3JtIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cbi5jay5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3QgLmNrLWxpbmtfX2J1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0fVxuLmNrLmNrLWxpbmstZm9ybSAuY2stbGlua19faXRlbXM6ZW1wdHkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpbmstcHJvdmlkZXJzID4gLmNrLWxpbmstcHJvdmlkZXJzX19saXN0IHtcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXHR9XG5cbi5jay5jay1saW5rLXByb3ZpZGVycyA+IC5jay1saW5rLXByb3ZpZGVyc19fbGlzdCAuY2stYnV0dG9uID4gLmNrLWljb24ge1xuXHRcdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWxpc3QtYm9ndXMtcGFyYWdyYXBoIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtbGlzdC1tYXJrZXItY29sb3I6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1jb2xvcik7XG5cdC0tY2stY29udGVudC1saXN0LW1hcmtlci1mb250LWZhbWlseTogdmFyKC0tY2stY29udGVudC1mb250LWZhbWlseSk7XG5cdC0tY2stY29udGVudC1saXN0LW1hcmtlci1mb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplKTtcbn1cblxuLyogT3BpbmlvbmF0ZWQgbGlzdCBjb250ZW50IHN0eWxpbmc6IHByZXZlbnRzIGNvbnRlbnQgc2hpZnRcblx0ICogd2hlbiBhIGxpc3QgYmVjb21lcyBtdWx0aS1ibG9jayAoRW50ZXIgKyBCYWNrc3BhY2Ugc2NlbmFyaW8pLlxuXHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xODgwMVxuXHQgKi9cblxuLmNrLWNvbnRlbnQgbGkgPiBwOmZpcnN0LW9mLXR5cGUge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuLyogUHJldmVudHMgbWFyZ2lucyBmcm9tIGFwcGVhcmluZyB3aGVuIGEgYm9ndXMgcGFyYWdyYXBoXG5cdCAqIHJlY2VpdmVzIGxpbmUgaGVpZ2h0IG9yIHRleHQgYWxpZ25tZW50LlxuXHQgKiBFbnN1cmVzIGEgY29uc2lzdGVudCBleHBlcmllbmNlIHdpdGggdGhlIGZpcnN0IHBhcmFncmFwaC5cblx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L3B1bGwvMTg4MDFcblx0ICovXG5cbi5jay1jb250ZW50IGxpID4gcDpvbmx5LW9mLXR5cGUge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG4uY2stY29udGVudCBsaS5jay1saXN0LW1hcmtlci1ib2xkOjptYXJrZXIge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG5cbi5jay1jb250ZW50IGxpLmNrLWxpc3QtbWFya2VyLWl0YWxpYzo6bWFya2VyIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblxuLmNrLWNvbnRlbnQgbGkuY2stbGlzdC1tYXJrZXItY29sb3I6Om1hcmtlciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbnRlbnQtbGlzdC1tYXJrZXItY29sb3IpO1xuXHR9XG5cbi5jay1jb250ZW50IGxpLmNrLWxpc3QtbWFya2VyLWZvbnQtZmFtaWx5OjptYXJrZXIge1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1jb250ZW50LWxpc3QtbWFya2VyLWZvbnQtZmFtaWx5KTtcblx0fVxuXG4uY2stY29udGVudCBsaS5jay1saXN0LW1hcmtlci1mb250LXNpemU6Om1hcmtlciB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWxpc3QtbWFya2VyLWZvbnQtc2l6ZSk7XG5cdH1cblxuLmNrLWNvbnRlbnQgbGkuY2stbGlzdC1tYXJrZXItZm9udC1zaXplLXRpbnk6Om1hcmtlciB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZS10aW55KTtcblx0fVxuXG4uY2stY29udGVudCBsaS5jay1saXN0LW1hcmtlci1mb250LXNpemUtc21hbGw6Om1hcmtlciB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZS1zbWFsbCk7XG5cdH1cblxuLmNrLWNvbnRlbnQgbGkuY2stbGlzdC1tYXJrZXItZm9udC1zaXplLWJpZzo6bWFya2VyIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplLWJpZyk7XG5cdH1cblxuLmNrLWNvbnRlbnQgbGkuY2stbGlzdC1tYXJrZXItZm9udC1zaXplLWh1Z2U6Om1hcmtlciB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZS1odWdlKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBvbCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLmNrLWNvbnRlbnQgb2wgb2wge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW47XG5cdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wge1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcblx0XHR9XG5cbi5jay1jb250ZW50IG9sIG9sIG9sIG9sIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbjtcblx0XHRcdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wgb2wgb2wge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG5cdFx0XHRcdH1cblxuLmNrLWNvbnRlbnQgdWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5jay1jb250ZW50IHVsIHVsIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcblx0fVxuXG4uY2stY29udGVudCB1bCB1bCB1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblx0XHR9XG5cbi5jay1jb250ZW50IHVsIHVsIHVsIHVsIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZTogMTZweDtcbn1cblxuLypcbiAqIFRvLWRvIGxpc3QgY29udGVudCBzdHlsZXMuXG4gKi9cbi5jay1jb250ZW50IC50b2RvLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCBsaSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCBsaSAudG9kby1saXN0IHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWNvbnRlbnQtdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdC8qIExUUiBzdHlsZXMgKi9cblx0XHRcdGxlZnQ6IC0yNXB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMTVweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHQvKiBSVEwgc3R5bGVzICovXG5cdFx0fVxuLmNrLWNvbnRlbnRbZGlyPXJ0bF0gLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0IHtcblx0XHRsZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRyaWdodDogLTI1cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dDo6YmVmb3JlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHQvKiBDYWxjdWxhdGUgdGljayBwb3NpdGlvbiwgc2l6ZSBhbmQgYm9yZGVyLXdpZHRoIHByb3BvcnRpb25hbCB0byB0aGUgY2hlY2ttYXJrIHNpemUuICovXG5cdFx0bGVmdDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMyApO1xuXHRcdHRvcDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLWNvbnRlbnQtdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdGhlaWdodDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMi42ICk7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsIC50b2RvLWxpc3RfX2xhYmVsX19kZXNjcmlwdGlvbiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBUby1kbyBsaXN0IGVkaXRpbmcgdmlldyBzdHlsZXMuXG4gKi9cbi8qXG5cdCAqIFRvLWRvIGxpc3Qgc2hvdWxkIGJlIGludGVyYWN0aXZlIG9ubHkgZHVyaW5nIHRoZSBlZGl0aW5nXG5cdCAqIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8yMDkwKS5cblx0ICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dCxcblx0LmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSwgLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cdFx0fVxuLypcblx0ICogRG9jdW1lbnQgTGlzdHMgLSBlZGl0aW5nIHZpZXcgaGFzIGFuIGFkZGl0aW9uYWwgc3BhbiBhcm91bmQgY2hlY2tib3guXG5cdCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSk7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHQvKiBOZWVkZWQgb24gaU9TICovXG5cdFx0Ym9yZGVyOiAwO1xuXHRcdC8qIExUUiBzdHlsZXMgKi9cblx0XHRsZWZ0OiAtMjVweDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdC8qIFJUTCBzdHlsZXMgKi9cblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudFtkaXI9cnRsXSAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGxlZnQ6IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdHJpZ2h0OiAtMjVweDtcblx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRyYW5zaXRpb246IDI1MG1zIGVhc2UtaW4tb3V0IGJveC1zaGFkb3c7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dDo6YmVmb3JlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dDo6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRjb250ZW50OiAnJztcblxuXHRcdC8qIENhbGN1bGF0ZSB0aWNrIHBvc2l0aW9uLCBzaXplIGFuZCBib3JkZXItd2lkdGggcHJvcG9ydGlvbmFsIHRvIHRoZSBjaGVja21hcmsgc2l6ZS4gKi9cblx0XHRsZWZ0OiBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHR3aWR0aDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0aGVpZ2h0OiBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLWNvbnRlbnQtdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgMDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0W2NoZWNrZWRdOjpiZWZvcmUge1xuXHRcdFx0YmFja2dyb3VuZDogaHNsKDEyNiwgNjQlLCA0MSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5tZWRpYSB7XG5cdC8qIERvbid0IGFsbG93IGZsb2F0ZWQgY29udGVudCBvdmVybGFwIHRoZSBtZWRpYS5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTMgKi9cblx0Y2xlYXI6IGJvdGg7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIG1lZGlhLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gMDtcblxuXHQvKiBNYWtlIHN1cmUgbWVkaWEgaXMgbm90IG92ZXJyaWRlbiB3aXRoIEJvb3RzdHJhcCBkZWZhdWx0IGBmbGV4YCB2YWx1ZS5cblx0U2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMzczLiAqL1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKiBHaXZlIHRoZSBtZWRpYSBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoIzQ0KSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwge1xuXHRcdFx0LyogT3RoZXJ3aXNlIHRoZSBVUkwgd2lsbCBvdmVyZmxvdyB3aGVuIHRoZSBjb250ZW50IGlzIHZlcnkgbmFycm93LiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuZ29vZ2xlLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiBhcyBsb25nIGFzIHRoZSBlZGl0b3IgaXMgbm90IHJlYWTigJNvbmx5LlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2stbWVkaWFfX3dyYXBwZXIgPiAqOm5vdCguY2stbWVkaWFfX3BsYWNlaG9sZGVyKSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiB3aGVuIHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkIChlLmcuIHRvIGF2b2lkIG9wZW5pbmcgbGlua3MgYnkgYWNjaWRlbnQpLlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvMTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay12ZXJ0aWNhbC1mb3JtIC5jay1idXR0b246OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHdpZHRoOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogLTFweDtcblx0XHR0b3A6IC0xcHg7XG5cdFx0Ym90dG9tOiAtMXB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbjpmb2N1czo6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdFx0dG9wOiAtMXB4O1xuXHRcdFx0XHRib3R0b206IC0xcHg7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWJ1dHRvbjpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHR3aWR0aDogNDAwcHg7XG59XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG4uY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLmNrLmNrLW1lZGlhLWZvcm0gLmNrLWlucHV0IHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudGlvbi1saXN0LW1heC1oZWlnaHQ6IDMwMHB4O1xufVxuXG4uY2suY2stbWVudGlvbnMge1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodCk7XG5cblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgdmVydGljYWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG59XG5cbi5jay5jay1tZW50aW9ucyA+IC5jay1saXN0X19pdGVtIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG5cbmRpdi5jay5jay1iYWxsb29uLXBhbmVsLmNrLW1lbnRpb24tYmFsbG9vbiB7XG5cdHotaW5kZXg6IGNhbGMoIHZhciggLS1jay16LWRpYWxvZyApICsgMSApO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQ6IDIwOCwgMCUsIDUxJTtcblx0LS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1vdXRsaW5lOiBoc2woMGRlZyAwJSA3NSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdzogaHNsKDBkZWcgMCUgMCUgLyAxMSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtcHJvZ3Jlc3MtYmFja2dyb3VuZDogaHNsKDAsMCUsNDAlKTtcbn1cblxuLmNrLmNrLW1pbmltYXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2suY2stbWluaW1hcCxcblx0LmNrLmNrLW1pbmltYXAgaWZyYW1lIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuLmNrLmNrLW1pbmltYXAgaWZyYW1lIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1vdXRsaW5lKTtcblx0XHRib3gtc2hhZG93OiAwIDJweCA1cHggdmFyKC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtc2hhZG93KTtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0b3A6IDA7XG5cdFx0YmFja2dyb3VuZDogaHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMiApO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcyBlYXNlLWluLW91dDtcblx0fVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlciB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOmhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjMgKTtcblx0XHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmcsXG5cdFx0LmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZzpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOmhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjQgKTtcblx0XHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6OmFmdGVyLCAuY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlci5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nOmhvdmVyOjphZnRlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtcHJvZ3Jlc3MpIFwiJVwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1cHg7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDJweCA0cHg7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDtcblx0XHR9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyOjphZnRlciB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0fVxuXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjbGVhcjogYm90aDtcblx0cGFkZGluZzogNXB4IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uY2stY29udGVudCAucGFnZS1icmVhazo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGhzbCgwLCAwJSwgNzclKTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG4uY2stY29udGVudCAucGFnZS1icmVha19fbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG5cdHBhZGRpbmc6IC4zZW0gLjZlbTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzclKTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRmb250LXNpemU6IDAuNzVlbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDIwJSk7XG5cdGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJveC1zaGFkb3c6IDJweCAycHggMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblxuXHQvKiBEaXNhYmxlIHRoZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgdGhlIGxhYmVsIHRleHQgYnkgdGhlIHVzZXIuICovXG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8qIERvIG5vdCBzaG93IHRoZSBwYWdlIGJyZWFrIGVsZW1lbnQgaW5zaWRlIHRoZSBwcmludCBwcmV2aWV3IHdpbmRvdy4gKi9cbkBtZWRpYSBwcmludCB7XG5cdC5jay1jb250ZW50IC5wYWdlLWJyZWFrIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0XHQuY2stY29udGVudCAucGFnZS1icmVhazo6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0Lypcblx0ICogRnJvbSB0aW1lIHRvIHRpbWUgcGxhY2luZyBwYWdlLWJyZWFrIGRpcmVjdGx5IGFmdGVyIGEgYmxvY2sgZWxlbWVudCB3aXRoIG1hcmdpbiBjYXVzZXMgYXBwZW5kaW5nIGEgbmV3IGJsYW5rIHBhZ2UgaW4gcGFnaW5hdGlvbiBtb2RlLlxuXHQgKiBSZW1vdmluZyBtYXJnaW4tYm90dG9tIGZyb20gdGhlIGJsb2NrIGVsZW1lbnQgZml4ZXMgdGhhdCBpc3N1ZSBhbmQgdGhlIG1hcmdpbiBpcyBub3QgYmVpbmcgbW92ZWQgdG8gdGhlIG5leHQgYmxhbmsgcGFnZS5cblx0ICpcblx0ICogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgcGFnaW5hdGlvbiBwbHVnaW5zLlxuXHQgKi9cblx0LmNrLWNvbnRlbnQgKjpoYXMoKyAucGFnZS1icmVhaykge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA0NiUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzcyB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QUREUkVTUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BRERSRVNTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzczpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzcyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFERFJFU1M8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzcyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFERFJFU1M8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFTSURFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BU0lERTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFTSURFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QVNJREU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5CTE9DS1FVT1RFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkJMT0NLUVVPVEU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QkxPQ0tRVU9URTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QkxPQ0tRVU9URTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHMge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlscyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRFVEFJTFM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+REVUQUlMUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHM6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ERVRBSUxTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ERVRBSUxTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRJVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRJVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RElWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRJVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GT09URVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GT09URVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXI6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZPT1RFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GT09URVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgxPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDEge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgxPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDE8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgyPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgyPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMyB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgzPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgzPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNCB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg0PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg0PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDQ8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg1PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg1PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg2PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg2PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SEVBREVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SEVBREVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IRUFERVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SEVBREVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TUFJTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW4ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5NQUlOPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk1BSU48L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk1BSU48L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXYge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TkFWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TkFWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5OQVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TkFWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlBSRTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlBSRTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UFJFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlBSRTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+T0w8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk9MPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2w6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+T0w8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2wge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5PTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+VUw8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlVMPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWw6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+VUw8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWwge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5VTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHAge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlA8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHA6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHAge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHAge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+U0VDVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5TRUNUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlNFQ1RJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlNFQ1RJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RklHQ0FQVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZJR0NBUFRJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb246bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZJR0NBUFRJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RklHQ0FQVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhOjphZnRlcixcbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKTtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYTo6YWZ0ZXIge1xuXHRjb250ZW50OiBhdHRyKGRhdGEtdmFsdWUpIFwiIFwiO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cmVzaXplOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEsXG5cdC5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYTpub3QoW3JlYWRvbmx5XSk6Zm9jdXMge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWlubmVyLXNoYWRvdyksIDAgMDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2IHtcblx0XHR3aWR0aDogMzUwcHg7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC1jb2x1bW4tZ2FwOiAwcHg7XG5cdFx0Z3JpZC1yb3ctZ2FwOiAwcHg7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuXHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzIHtcblx0XHRcdGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cblx0XHRcdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1czo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdFx0fVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuLyogSGlkZSB0aGUgZXJyb3IgYmFsbG9vbiB3aGVuIHRoZSBmaWVsZCBpcyBibHVycmVkLiBNYWtlcyB0aGUgZXhwZXJpZW5jZSBtdWNoIG1vcmUgY2xlYXIuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyAuY2stZHJvcGRvd24gPiBidXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgLmNrLWRyb3Bkb3duID4gYnV0dG9uID4gc3BhbiB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0XHRcdGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMjtcblx0XHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWluZm8ge1xuXHRcdFx0Z3JpZC1hcmVhOiAzIC8gMSAvIDQgLyAyO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlcyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1jb2x1bW5zOiAzO1xufVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jay1zdHlsZS1wYW5lbC1jb2x1bW5zKSxhdXRvKTtcblx0anVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24gLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBFbnN1cmUgdGhhdCB0YWJsZSBoZWFkZXIgdGV4dCBpcyBhbGlnbmVkIHRvIHRoZSBzdGFydCBieSBkZWZhdWx0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTk0NTQuICovXG5cbi5jay1jb250ZW50IC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogc3RhcnQ7XG5cdH1cblxuLyogVGV4dCBhbGlnbm1lbnQgb2YgdGhlIHRhYmxlIGhlYWRlciBzaG91bGQgbWF0Y2ggdGhlIGVkaXRvciBzZXR0aW5ncyBhbmQgb3ZlcnJpZGUgdGhlIG5hdGl2ZSBicm93c2VyIHN0eWxpbmcsXG5cdHdoZW4gY29udGVudCBpcyBhdmFpbGFibGUgb3V0c2lkZSB0aGUgZWRpdG9yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjYzOC4gKi9cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuLmNrLWNvbnRlbnRbZGlyPVwibHRyXCJdIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG4uY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG4uY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXG4uY2stY29udGVudCAudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHQvKiBHaXZlIHRoZSB0YWJsZSB3aWRnZXQgc29tZSBhaXIgYW5kIGNlbnRlciBpdCBob3Jpem9udGFsbHkgKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHRcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdH1cblxuLmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpLFxuXHQuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdC8qIFRoZSB0YWJsZSBjZWxscyBzaG91bGQgaGF2ZSBzbGlnaHQgYm9yZGVycyAqL1xuXHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cblx0XHQvKiBUaGUgb3V0ZXIgYm9yZGVyIG9mIHRoZSB0YWJsZSBzaG91bGQgYmUgc2xpZ2h0bHkgZGFya2VyIHRoYW4gdGhlIGlubmVyIGxpbmVzLlxuXHRcdEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGFibGUvaXNzdWVzLzUwLiAqL1xuXHRcdGJvcmRlcjogMXB4IGRvdWJsZSBoc2woMCwgMCUsIDcwJSk7XG5cdH1cblxuLyogVGhlIGxpbnRlciBpcyBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgbGludGVyIGlzIGNvbmZ1c2VkIHdoZW4gcmVzb2x2aW5nIHRoZSBgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpYFxuXHRcdFx0YW5kIGBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGVgIHNlbGVjdG9ycyBjb21iaW5lZCB3aXRoIGJlbG93IHNlbGVjdG9ycy5cblx0XHRcdFRoZXJlIGlzIG5vIG5lZWQgdG8gc3BsaXQgaXQgaW50byB0d28gbGFyZ2Ugc3RydWN0dXJlcyB3aXRoIHNhbWUgY29kZSBqdXN0IHRvIG1ha2UgbGludGVyIGhhcHB5LiAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0aCwgLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLCAuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0Ym9keSA+IHRyID4gdGgsIC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0aCB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHRcdFx0fVxuXG4uY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0aGVhZCA+IHRyID4gdGQsXG5cdFx0XHRcdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcblx0XHRcdFx0LmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGJvZHkgPiB0ciA+IHRkLFxuXHRcdFx0XHQuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG5cdFx0XHRcdC5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0aCxcblx0XHRcdFx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuXHRcdFx0XHQuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0Ym9keSA+IHRyID4gdGgsXG5cdFx0XHRcdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0aCB7XG5cblx0XHRcdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwLjRlbTtcblxuXHRcdFx0XHRcdC8qIFRoZSBib3JkZXIgaXMgaW5oZXJpdGVkIGZyb20gLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHN0eWxlcywgc28gdGhlb3JldGljYWxseSBpdCdzIG5vdCBuZWNlc3NhcnkgaGVyZS5cblx0XHRcdFx0XHRIb3dldmVyLCB0aGUgYm9yZGVyIGlzIGEgY29udGVudCBzdHlsZSwgc28gaXQgc2hvdWxkIHVzZSAuY2stY29udGVudCAoc28gaXQgd29ya3Mgb3V0c2lkZSB0aGUgZWRpdG9yKS5cblx0XHRcdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzUlKTtcblx0XHRcdFx0XHQvKiBPcGluaW9uYXRlZCB0YWJsZSBjb250ZW50IHN0eWxpbmc6IHByZXZlbnRzIGNvbnRlbnQgZnJvbSBzaGlmdGluZ1xuXHRcdFx0XHRcdCAqIHdoZW4gRW50ZXIgaXMgcHJlc3NlZCBpbiB0aGUgZmlyc3QgY2VsbC5cblx0XHRcdFx0XHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xODgwMVxuXHRcdFx0XHRcdCAqL1xuXHRcdFx0XHR9XG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0ZCA+IHA6Zmlyc3Qtb2YtdHlwZSwgLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkID4gcDpmaXJzdC1vZi10eXBlLCAuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0Ym9keSA+IHRyID4gdGQgPiBwOmZpcnN0LW9mLXR5cGUsIC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCA+IHA6Zmlyc3Qtb2YtdHlwZSwgLmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGhlYWQgPiB0ciA+IHRoID4gcDpmaXJzdC1vZi10eXBlLCAuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUgPiB0aGVhZCA+IHRyID4gdGggPiBwOmZpcnN0LW9mLXR5cGUsIC5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRib2R5ID4gdHIgPiB0aCA+IHA6Zmlyc3Qtb2YtdHlwZSwgLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRoID4gcDpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0fVxuXG4vKiBNaXJyb3JzIHRoZSBydWxlIGFib3ZlIGZvciB0aGUgbGFzdCBwYXJhZ3JhcGggdG8ga2VlcCB0aGVcblx0XHRcdFx0XHQgKiBleHBlcmllbmNlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZmlyc3QgcGFyYWdyYXBoLlxuXHRcdFx0XHRcdCAqXG5cdFx0XHRcdFx0ICogVG9nZXRoZXIsIHRoZXNlIHJ1bGVzIHByZXZlbnQgbWFyZ2lucyBmcm9tIGFwcGVhcmluZyB3aGVuIGFcblx0XHRcdFx0XHQgKiBib2d1cyBwYXJhZ3JhcGggYmVjb21lcyBhIHJlYWwgcGFyYWdyYXBoIGFmdGVyIGl0IHJlY2VpdmVzIGxpbmVcblx0XHRcdFx0XHQgKiBoZWlnaHQsIHRleHQgYWxpZ25tZW50LCBvciBvdGhlciBibG9jayBzdHlsZS5cblx0XHRcdFx0XHQgKlxuXHRcdFx0XHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9wdWxsLzE4ODAxXG5cdFx0XHRcdFx0ICovXG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0ZCA+IHA6bGFzdC1vZi10eXBlLCAuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUgPiB0aGVhZCA+IHRyID4gdGQgPiBwOmxhc3Qtb2YtdHlwZSwgLmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGJvZHkgPiB0ciA+IHRkID4gcDpsYXN0LW9mLXR5cGUsIC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCA+IHA6bGFzdC1vZi10eXBlLCAuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0aGVhZCA+IHRyID4gdGggPiBwOmxhc3Qtb2YtdHlwZSwgLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoID4gcDpsYXN0LW9mLXR5cGUsIC5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRib2R5ID4gdHIgPiB0aCA+IHA6bGFzdC1vZi10eXBlLCAuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGggPiBwOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdH1cblxuQG1lZGlhIHByaW50IHtcblx0XHQvKipcblx0XHQgKiBTb21ldGltZXMgQ2hyb21lIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgbGFzdCB0YWJsZSByb3cgYW5kIHNvbWVcblx0XHQgKiBvZiB0aGUgY29udGVudCBvdmVybGFwcyB0aGUgcGFyYWdyYXBoIHRoYXQgaXMgcGxhY2VkIGRpcmVjdGx5IGFmdGVyIHRoZSB0YWJsZS4gSXQgYWZmZWN0c1xuXHRcdCAqIHRoZSBjb2x1bW4gc3BsaXQgbW9kZSBwYWdpbmF0aW9uIGNhbGN1bGF0aW9uIHdoaWNoIGNhdXNlcyBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBwcmludCBtb2RlIGFuZFxuXHRcdCAqIHRoZSBwcmV2aWV3IG1vZGUuXG5cdFx0ICpcblx0XHQgKiBUaGlzIGlzc3VlIGhhcHBlbnMgb25seSBpZjpcblx0XHQgKlxuXHRcdCAqIFx0KiBUaGUgdGFibGUgaXMgaW5zaWRlIGEgZmlndXJlIGVsZW1lbnQuXG5cdFx0ICogXHQqIFRoZSB0YWJsZSBoYXMgYGRpc3BsYXk6IHRhYmxlYCBzdHlsZSBzZXQuXG5cdFx0ICogXHQqIFRoZSBibG9jayBlbGVtZW50IGlzIHBsYWNlZCBkaXJlY3RseSBhZnRlciB0aGUgdGFibGUuXG5cdFx0ICovXG5cdFx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSB7XG5cdFx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdFx0XHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIEV4cGFuZGluZyB0aGUgdGFibGUgdG8gdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRhYmxlc1xuXHRcdCAqIGFyZSByZW5kZXJlZCBpbnNpZGUgPGZpZ3VyZT4gZWxlbWVudHMsIHdoaWNoIGlzIGtpbmRhIGJ1Z2d5IGluIHRhYmxlIGhlaWdodCBjYWxjdWxhdGlvbi5cblx0XHQgKiBXaGlsZSBzZXR0aW5nIGBoZWlnaHQ6IDEwMCVgIGZpeGVzIHRoZSBpc3N1ZSBpbiB0aGUgZWRpdGluZyBtb2RlIGRlc2NyaWJlZCBoZXJlOlxuXHRcdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYxODZcblx0XHQgKlxuXHRcdCAqIGl0J3MgY2F1c2luZyBhbm90aGVyIGlzc3VlIHdpdGggdGhlIHRhYmxlIGhlaWdodCBpbiB0aGUgcHJpbnQgcHJldmlldyBtb2RlIGhlcmU6XG5cdFx0ICogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY4NTZcblx0XHQgKlxuXHRcdCAqIEZvciBub3csIHJlc2V0dGluZyB0aGUgaGVpZ2h0IHRvIGBpbml0aWFsYCBpbiB0aGUgcHJpbnQgbW9kZSB3b3JrcyBhcyBhIHdvcmthcm91bmQuXG5cdFx0ICovXG5cdFx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlIHtcblx0XHRcdGhlaWdodDogaW5pdGlhbDtcblx0XHR9XG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay10YWJsZS1ib2d1cy1wYXJhZ3JhcGgge1xuXHQvKlxuXHQgKiBVc2UgZGlzcGxheTppbmxpbmUtYmxvY2sgdG8gZm9yY2UgQ2hyb21lL1NhZmFyaSB0byBsaW1pdCB0ZXh0IG11dGF0aW9ucyB0byB0aGlzIGVsZW1lbnQuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MDYyLlxuXHQgKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qXG5cdCAqIElubGluZSBIVE1MIGVsZW1lbnRzIG5lc3RlZCBpbiB0aGUgc3BhbiBzaG91bGQgYWx3YXlzIGJlIGRpbWVuc2lvbmVkIGluIHJlbGF0aW9uIHRvIHRoZSB3aG9sZSBjZWxsIHdpZHRoLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy5cblx0ICovXG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhcjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHQvKiA0IGJ1dHRvbnMgb3V0IG9mIDcgKGgtYWxpZ25tZW50ICsgdi1hbGlnbm1lbnQpID0gMC41NyAqL1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMC41Nztcblx0XHRcdFx0fVxuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhcjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdC8qIDMgYnV0dG9ucyBvdXQgb2YgNyAoaC1hbGlnbm1lbnQgKyB2LWFsaWdubWVudCkgPSAwLjQzICovXG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwLjQzO1xuXHRcdFx0XHR9XG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay1idXR0b24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5sYXlvdXQtdGFibGU6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cblxuLypcblx0XHRcdCogVGhpcyB2YWx1ZSBzaG91bGQgbWF0Y2ggd2l0aCB0aGUgZGVmYXVsdCBtYXJnaW5zIG9mIHRoZSBibG9jayBlbGVtZW50cyAobGlrZSAubWVkaWEsIC5pbWFnZSBvciAudGFibGUpXG5cdFx0XHQqIHRvIGF2b2lkIGEgY29udGVudCBqdW1waW5nIHdoZW4gdGhlIGZha2Ugc2VsZWN0aW9uIGNvbnRhaW5lciBzaG93cyB1cCAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLlxuXHRcdFx0Ki9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUubGF5b3V0LXRhYmxlOmxhc3QtY2hpbGQsXG5cdFx0XHRcblx0XHRcdC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmxheW91dC10YWJsZTpudGgtbGFzdC1jaGlsZCgyKTpoYXMoICsgLmNrLWZha2Utc2VsZWN0aW9uLWNvbnRhaW5lcikge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0LyogV2lkZ2V0IHR5cGUgYXJvdW5kIG92ZXJyaWRlcy4gKi9cblx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldDpob3ZlciB7XG5cdFx0XHRcdC8qIFRvIHByZXZlbnQgdGhlIHdpZGdldCBvdXRsaW5lIGZyb20gYmVpbmcgY3V0IG9mZiBhdCB0aGUgYm90dG9tXG5cdFx0XHRcdHdoZW4gdGhlIG5leHQgY2VsbCBvciB0YWJsZSBoYXMgYSBiYWNrZ3JvdW5kIGNvbG9yLCBmb3IgZXhhbXBsZS4gKi9cblx0XHRcdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0XHRcdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRcdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cbi8qIEJlY2F1c2Ugb2Ygc2V0dGluZyB0aGUgb3BhY2l0eSB0byAwLjc1IHRvIHRoZSBzZWxlY3Rpb24gaGFuZGxlIGZvciB0aGUgbGF5b3V0IHRhYmxlLFxuXHRcdFx0aXQgb3ZlcnJpZGVzIHRoZSBzaW1pbGFyIHNlbGVjdG9yIGluIHdpZGdldCAoc3BlY2lmaWNpdHkgaXMgaGlnaGVyKSxcblx0XHRcdHRoYXRzIHdoeSB3ZSBtdXN0IG92ZXJyaWRlIGl0IGhlcmUgYWxzby4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQ6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0XHQvKiBUbyBwcmV2ZW50IHRoZSB3aWRnZXQgb3V0bGluZSBmcm9tIGJlaW5nIGN1dCBvZmYgYXQgdGhlIGJvdHRvbVxuXHRcdFx0XHR3aGVuIHRoZSBuZXh0IGNlbGwgb3IgdGFibGUgaGFzIGEgYmFja2dyb3VuZCBjb2xvciwgZm9yIGV4YW1wbGUuICovXG5cdFx0XHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdFx0XHR9XG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlLmxheW91dC10YWJsZSB7XG5cdFx0LyogRG8gbm90IHJlc2VydmUgc3BhY2UgYWJvdmUgYW5kIGJlbG93IHRoZSBsYXlvdXQgdGFibGUuICovXG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlIHtcblx0XHRib3JkZXItc3BhY2luZzogMDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdC5jay5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyxcblx0XHQuY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JhY2tncm91bmQtcm93LFxuXHRcdC5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fY2VsbC10eXBlLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93LFxuXHRcdC5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fY2VsbC10eXBlLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3LCAuY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2NlbGwtdHlwZS1yb3cgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1kcm9wZG93biwgLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19jZWxsLXR5cGUtcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yLCAuY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2NlbGwtdHlwZS1yb3cgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdGZsZXgtZ3JvdzogMDtcblx0XHRcdH1cblxuLyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xuXG4vKiBGYWxsYmFjayBmb3IgdGFibGUgZGltZW5zaW9uIG9wZXJhdG9yICovXG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cgPiAqOm5vdCguY2stbGFiZWwsIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3IpIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdC8qIEFsbG93IGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSBzdGF0dXMgKGVycm9yKSBiYWxsb29ucy4gKi9cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0Ym90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgKTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsMTAwJSk7XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgYmFsbG9vbiBzdGF0dXMgc3RheXMgb24gdG9wIG9mIG90aGVyIGZvcm0gZWxlbWVudHMuICovXG5cdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1czo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleC1iYXNpczogMDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtY29sb3ItdGFibGUtY2FwdGlvbi1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk3JSk7XG5cdC0tY2stY29udGVudC1jb2xvci10YWJsZS1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci10YWJsZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAudGFibGUgPiBmaWdjYXB0aW9uLFxuLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlID4gdGFibGUgPiBjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiB0b3A7XG5cdHdvcmQtYnJlYWs6IG5vcm1hbDtcblx0b3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6IHZhcigtLWNrLWNvbnRlbnQtY29sb3ItdGFibGUtY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29udGVudC1jb2xvci10YWJsZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAuNmVtO1xuXHRmb250LXNpemU6IC43NWVtO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblxuXHQvKiBJbXByb3ZlIHBsYWNlaG9sZGVyIHJlbmRlcmluZyBpbiBoaWdoLWNvbnN0cmFzdCBtb2RlIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNykuICovXG59XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdC5jay1jb250ZW50IC50YWJsZSA+IGZpZ2NhcHRpb24sIC5jay1jb250ZW50IGZpZ3VyZS50YWJsZSA+IHRhYmxlID4gY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbi50YWJsZV9fY2FwdGlvbl9oaWdobGlnaHRlZCwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgZmlndXJlLnRhYmxlID4gdGFibGUgPiBjYXB0aW9uLnRhYmxlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSBmaWd1cmUudGFibGUgPiB0YWJsZSA+IGNhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgdGFibGUgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLXRhYmxlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXRhYmxlLWNvbHVtbi1yZXNpemVyLWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGg6IDdweDtcblxuXHQvKiBUaGUgb2Zmc2V0IHVzZWQgZm9yIGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSByZXNpemVyIGVsZW1lbnQsIHNvIHRoYXQgaXQgaXMgcGxhY2VkIGV4YWN0bHkgYWJvdmUgdGhlIGNlbGwgYm9yZGVyLlxuXHQgICBUaGUgdmFsdWUgaXM6IG1pbnVzIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSByZXNpemVyIGRlY3JlYXNlZCBhZGRpdGlvbmFseSBieSB0aGUgaGFsZiB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciAoMC41cHgpLiAqL1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldDogY2FsYyh2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCkgKiAtMC41IC0gMC41cHgpO1xufVxuXG4uY2stY29udGVudCAudGFibGUgLmNrLXRhYmxlLXJlc2l6ZWQge1xuXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4uY2stY29udGVudCAudGFibGUgdGQsXG4uY2stY29udGVudCAudGFibGUgdGgge1xuXHQvKiBUbyBwcmV2ZW50IHRleHQgb3ZlcmZsb3dpbmcgYmV5b25kIGl0cyBjZWxsIHdoZW4gY29sdW1ucyBhcmUgcmVzaXplZCBieSByZXNpemUgaGFuZGxlclxuXHQoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9wdWxsLzE0Mzc5I2lzc3VlY29tbWVudC0xNTg5NDYwOTc4KS4gKi9cblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRoIHtcblx0LyogVGhlIHJlc2l6ZXIgZWxlbWVudCBpcyBwbGFjZWQgaW5zaWRlIGVhY2ggY2VsbCwgc28gaXQgbXVzdCBiZSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNlbGwuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHJpZ2h0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHR3aWR0aDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpO1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb2x1bW4tcmVzaXplX2Rpc2FibGVkIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBUaGUgcmVzaXplciBlbGVtZW50cywgd2hpY2ggYXJlIGV4dGVuZGVkIHRvIGFuIGV4dHJlbWVseSBoaWdoIGhlaWdodCwgYnJlYWsgdGhlIGRyYWcgJiBkcm9wIGZlYXR1cmUgaW4gQ2hyb21lLiBUbyBtYWtlIGl0IHdvcmsgYWdhaW4sXG4gICBhbGwgcmVzaXplcnMgbXVzdCBiZSBoaWRkZW4gd2hpbGUgdGhlIHRhYmxlIGlzIGRyYWdnZWQuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGVbZHJhZ2dhYmxlXSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyOmhvdmVyLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcl9fYWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItdGFibGUtY29sdW1uLXJlc2l6ZXItaG92ZXIpO1xuXHRvcGFjaXR5OiAwLjI1O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZVtkaXI9cnRsXSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0bGVmdDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0cmlnaHQ6IHVuc2V0O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC10YWJsZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcbn1cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4LWJhc2lzOiAwO1xuXHRcdFx0YWxpZ24tY29udGVudDogYmFzZWxpbmU7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdFx0fVxuXG4uY2stY29udGVudCAudGFibGUudGFibGUtc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stY29udGVudC10YWJsZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC50YWJsZS50YWJsZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stY29udGVudC10YWJsZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC50YWJsZS50YWJsZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXG4uY2stY29udGVudCAudGFibGUudGFibGUtc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC50YWJsZS50YWJsZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUudGFibGUtc3R5bGUtYWxpZ24tY2VudGVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS50YWJsZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stY29udGVudC10YWJsZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUudGFibGUtc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtdGFibGUtc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLnRhYmxlLXN0eWxlLWJsb2NrLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLnRhYmxlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1mb3JtLWRlZmF1bHQtd2lkdGg6IDM0MHB4O1xufVxuXG4uY2suY2stZm9ybSB7XG5cdHBhZGRpbmc6IDAgMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cblxuLmNrLmNrLWZvcm0uY2stZm9ybV9kZWZhdWx0LXdpZHRoIHtcblx0XHR3aWR0aDogdmFyKC0tY2stZm9ybS1kZWZhdWx0LXdpZHRoKTtcblx0fVxuXG4uY2suY2stZm9ybTpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG4uY2suY2stZm9ybSAuY2suY2staW5wdXQtdGV4dCxcblx0LmNrLmNrLWZvcm0gLmNrLmNrLWlucHV0LW51bWJlciB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG5cbi5jay5jay1mb3JtIC5jay5jay1kcm9wZG93biB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1mb3JtIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuLmNrLmNrLWZvcm0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cbi8qIERlZmF1bHQgYGNrLXJlc3BvbnNpdmUtZm9ybWAgY3VzdG9taXphdGlvbiB3aGVuIGl0IGxpZXMgbmV4dCB0byBgY2stZm9ybWAgY2xhc3MgKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0IHtcblx0XHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0ID4gLmNrIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0XHRcdFx0fVxuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCAuY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0fVxuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd19sYXJnZS1ib3R0b20tcGFkZGluZyB7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuLyogRW5kIG9mIGBjay1yZXNwb25zaXZlLWZvcm1gIGN1c3RvbWl6YXRpb24gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG5cbi5jay5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLXNhdmUsXG5cdFx0LmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYmFja2dyb3VuZC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblxuLyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xuXG4vKiBGYWxsYmFjayBmb3IgdGFibGUgZGltZW5zaW9uIG9wZXJhdG9yICovXG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3c6bm90KC5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93KSA+ICo6bm90KC5jay1sYWJlbCwgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvcikge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0LyogQWxsb3cgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHN0YXR1cyAoZXJyb3IpIGJhbGxvb25zLiAqL1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwxMDAlKTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIHN0YXR1cyBzdGF5cyBvbiB0b3Agb2Ygb3RoZXIgZm9ybSBlbGVtZW50cy4gKi9cblx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgKTtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIC01MCUgKTtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWlucHV0LWNvbG9yIHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gaW5wdXQuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgPiBkaXYuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblxuXHRcdC8qIFRoaXMgZHJvcGRvd24gaGFzIG5vIGFycm93IGJ1dCBhIGNvbG9yIHByZXZpZXcgaW5zdGVhZC4gKi9cblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgPiBkaXYuY2suY2stZHJvcGRvd24gPiAuY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdC8qIFJlc29sdmluZyBpc3N1ZSB3aXRoIG1pc2FsaWduZWQgYnV0dG9ucyBvbiBTYWZhcmkgKHNlZSAjMTA1ODkpICovXG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR9XG5cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGhpZGVzIGFuIGVsZW1lbnQgaW4gRE9NLlxuICovXG5cbi5jay1oaWRkZW4ge1xuXHQvKiBPdmVycmlkZSBzZWxlY3RvciBzcGVjaWZpY2l0eS4gT3RoZXJ3aXNlLCBhbGwgZWxlbWVudHMgd2l0aCBzb21lIGRpc3BsYXlcblx0c3R5bGUgZGVmaW5lZCB3aWxsIG92ZXJyaWRlIHRoaXMgb25lLCB3aGljaCBpcyBub3QgYSBkZXNpcmVkIHJlc3VsdC4gKi9cblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay16LWRlZmF1bHQ6IDE7XG5cdC0tY2stei1wYW5lbDogY2FsYyggdmFyKC0tY2stei1kZWZhdWx0KSArIDk5OSApO1xuXHQtLWNrLXotZGlhbG9nOiA5OTk5O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB0aGF0IGRpc2FibGVzIGFsbCB0cmFuc2l0aW9ucyBvZiB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQsXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQgKiB7XG5cdHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIDEwKHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAxMCAvIDEzKTtcblx0Lyogd2hlcmUgLTAuMihweCkgaXMgdGhlIGxldHRlciBzcGFjaW5nIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktbGV0dGVyLXNwYWNpbmc6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogLTAuMiAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctdmVydGljYWw6IDJweDtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbDogNHB4O1xuXHQtLWNrLXBvd2VyZWQtYnktdGV4dC1jb2xvcjogaHNsKDAsIDAlLCAzMSUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXG5cdC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGg6IDUzO1xuXHQtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodDogMTA7XG5cdC0tY2stcG93ZXJlZC1ieS1pY29uLXdpZHRoOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLXdpZHRoKSAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodCkgLyAxMyk7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24ge1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1cyk7XG5cblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kKTtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpIC0gMSApO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSBhIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0b3BhY2l0eTogLjY2O1xuXHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoODAlKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0KTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSAuY2stcG93ZXJlZC1ieV9fbGFiZWwge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3IpO1xuXG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi13aWR0aCk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieTpob3ZlciBhIHtcblx0XHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbiB7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItcmFkaXVzKTtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJhY2tncm91bmQpO1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgLSAxICk7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb24gLmNrLmNrLWV2YWx1YXRpb24tYmFkZ2Uge1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWxpbmUtaGVpZ2h0KTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIC5jay5jay1ldmFsdWF0aW9uLWJhZGdlIC5jay1ldmFsdWF0aW9uLWJhZGdlX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IDAgMnB4O1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcik7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXJpYS1saXZlLWFubm91bmNlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTEwMDAwcHg7XG5cdHRvcDogLTEwMDAwcHg7XG59XG5cbi5jay5jay1hcmlhLWxpdmUtcmVnaW9uLWxpc3Qge1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXHR9XG5cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG4vKiBDZW50ZXIgdGhlIGljb24gaG9yaXpvbnRhbGx5IGluIGEgYnV0dG9uIHdpdGhvdXQgdGV4dC4gKi9cblxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpLCAgYS5jay5jay1idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSAge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdHdpZHRoOiAuOWVtO1xuXHRcdGhlaWdodDogLjllbTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1pY29uIHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbGxhcHNpYmxlLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY29sb3ItcGlja2VyLWhleC1pbnB1dCB7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuLmNvbG9yLXBpY2tlci1oZXgtaW5wdXQgLmNrLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHR9XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMCAwO1xuXHR3aWR0aDogdW5zZXQ7XG59XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdW5zZXQ7XG5cdH1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdH1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IC5jay1jb2xvci1waWNrZXJfX2hhc2gtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBjb2xvciBncmlkcy4gKi9cblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLCBbZGlyPVwicnRsXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHR9XG5cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0XHR9XG5cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIC5jay1idXR0b24tc2F2ZSxcblx0XHRcdC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdFx0ZmxleDogMVxuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkge1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblxuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5LmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWRpYWxvZyB7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2suY2stZGlhbG9nIC5jay5jay1mb3JtX19oZWFkZXIgIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxuXG4vKiBNb2RhbHMgc2hvdWxkIG5vdCBiZSBkcmFnZ2FibGUuICovXG5cbi5jay5jay1kaWFsb2c6bm90KC5jay1kaWFsb2dfbW9kYWwpIC5jay5jay1mb3JtX19oZWFkZXIgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXHRcdH1cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5LmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCAuY2suY2stZGlhbG9nIHtcblx0XHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2cgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1kcm9wZG93biB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHRcdG1heC13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWF4LXdpZHRoKTtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWwtdmlzaWJsZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tZSB7XG5cdFx0XHRib3R0b206IDEwMCU7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2UsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfcyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogVXNpbmcgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMTAwJSwgMCApIGNhdXNlcyBibHVycnkgZHJvcGRvd24gb24gQ2hyb21lIDY3LTc4KyBvbiBub24tcmV0aW5hIGRpc3BsYXlzLlxuXHRcdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwNTMuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdFx0bGVmdDogMHB4O1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zdyB7XG5cdFx0XHRyaWdodDogMHB4O1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3MsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX24ge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc213IHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLXdlc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNzUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc21lIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLWVhc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuXHRcdH1cblxuLypcbiAqIFRvb2xiYXIgZHJvcGRvd24gcGFuZWxzIHNob3VsZCBiZSBhbHdheXMgYWJvdmUgdGhlIFVJIChlZy4gb3RoZXIgZHJvcGRvd24gcGFuZWxzKSBmcm9tIHRoZSBlZGl0b3IncyBjb250ZW50LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc4NzRcbiAqL1xuLmNrLmNrLXRvb2xiYXIgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpICsgMSApO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3BsaXRidXR0b24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4uY2suY2stc3BsaXRidXR0b24gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246Zm9jdXMge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoOiA2MHZ3O1xufVxuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy81NTg2ICovXG5cdHdpZHRoOiBtYXgtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay10b29sYmFyLWRyb3Bkb3duLW1heC13aWR0aCk7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stYnV0dG9uOmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bWF4LWhlaWdodDogMzE0cHg7IC8qIFdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MsIHRoaXMgaXMgZXF1YWwgdG8gMTAgbWVudSBpdGVtcy4gKi9cblx0b3ZlcmZsb3cteTogYXV0bztcblx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LXBhbmVsKSArIDEpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcbn1cblxuLmNrLmNrLWZvcm1fX3Jvdy5jay1mb3JtX19yb3dfbGFyZ2UtdG9wLXBhZGRpbmcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG4uY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd19sYXJnZS1ib3R0b20tcGFkZGluZyB7XG5cdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cbi5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0IHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCA+ICo6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG4uY2suY2stZm9ybV9fcm93ID4gLmNrLmNrLWZvcm1fX3JvdyB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNrLmNrLWZvcm1fX2hlYWRlciBoMi5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staWNvbiB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay1saXN0IHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2suY2stbGlzdCAuY2stbGlzdF9faXRlbSxcblx0LmNrLmNrLWxpc3QgLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLyogTWFrZSBzdXJlIHRoYXQgd2hhdGV2ZXIgY2hpbGQgb2YgdGhlIGxpc3QgaXRlbSBnZXRzIGZvY3VzLCBpdCByZW1haW5zIG9uIHRoZVxuXHR0b3AuIFRoYW5rcyB0byB0aGF0LCBzdHlsZXMgbGlrZSBib3gtc2hhZG93LCBvdXRsaW5lLCBldGMuIGFyZSBub3QgbWFza2VkIGJ5XG5cdGFkamFjZW50IGxpc3QgaXRlbXMuICovXG5cbi5jay5jay1saXN0IC5jay1saXN0X19pdGVtID4gKjpmb2N1cyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gYXJyb3cgZG9lcyBub3QgZmxvYXQgb3ZlciBpdHMgY2hpbGRyZW4uICovXG5cdC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgLSAzKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3Zpc2libGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEJ1dHRvbnMgaW5zaWRlIGEgdG9vbGJhciBzaG91bGQgYmUgY2VudGVyZWQgd2hlbiByb3RhdG9yIGJhciBpcyB3aWRlci5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS11aS9pc3N1ZXMvNDk1XG4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19jb250ZW50IC5jay10b29sYmFyIHtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stZmFrZS1wYW5lbCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBGYWtlIHBhbmVscyBzaG91bGQgYmUgcGxhY2VkIHVuZGVyIG1haW4gYmFsbG9vbiBjb250ZW50LiAqL1xuXHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotcGFuZWwpIC0gMSk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXYge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHR6LWluZGV4OiAyO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0ei1pbmRleDogMTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7IC8qICMzMTUgKi9cblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHR9XG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3lfYm90dG9tLWxpbWl0IHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1hdXRvY29tcGxldGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdH1cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX24ge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX3Mge1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG4vKiBIaWRlIHRoZSBmaWx0ZXJlZCB2aWV3IHdoZW4gbm90aGluZyB3YXMgZm91bmQgKi9cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvOm5vdCguY2staGlkZGVuKSB+ICoge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGlnaGxpZ2h0ZWQtdGV4dCBtYXJrIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1kaWFsb2cpICsgMTAwICk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cblxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLXNwaW5uZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0ei1pbmRleDogMTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuXG4uY2suY2stdG9vbGJhciB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC1ncm93OiAxO1xuXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0Lypcblx0XHQgKiBBIGxlYWRpbmcgb3IgdHJhaWxpbmcgc2VwYXJhdG9yIG1ha2VzIG5vIHNlbnNlIChzZXBhcmF0ZXMgZnJvbSBub3RoaW5nIG9uIG9uZSBzaWRlKS5cblx0XHQgKiBGb3IgaW5zdGFuY2UsIGl0IGNhbiBoYXBwZW4gd2hlbiB0b29sYmFyIGl0ZW1zIChhbHNvIHNlcGFyYXRvcnMpIGFyZSBnZXR0aW5nIGdyb3VwZWQgb25lIGJ5IG9uZSBhbmRcblx0XHQgKiBtb3ZlZCB0byBhbm90aGVyIHRvb2xiYXIgaW4gdGhlIGRyb3Bkb3duLlxuXHRcdCAqL1xuXHR9XG5cbi5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3I6Zmlyc3QtY2hpbGQsXG5cdFx0LmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvcjpsYXN0LWNoaWxkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX3ZlcnRpY2FsID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZmxvYXRpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cbi5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aDogNzV2dztcblx0LS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldDogNXB4O1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsIHtcblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1tYXgtd2lkdGgpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyB7XG5cdFx0Ym90dG9tOiAxMDAlO1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0dG9wOiAxMDAlO1xuXHRcdGJvdHRvbTogYXV0bztcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2Uge1xuXHRcdGxlZnQ6IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdHJpZ2h0OiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRsZWZ0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRib3R0b206IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdHJpZ2h0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3Mge1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duIHtcblx0XHRib3R0b206IDBweDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzaXplcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxNSUpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0OiBoc2woMCwgMCUsIDk1JSk7XG5cblx0LS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG5cdC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodDogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAqIDIgKyAxMHB4KTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKiBUaGlzIGlzIG5lY2Nlc3NhcnkgZm9yIHR5cGUgYXJvdW5kIFVJIHRvIGJlIHBvc2l0aW9uZWQgcHJvcGVybHkuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaWNvbiBpbiBub3QgYSBzdWJqZWN0IHRvIGZvbnQtc2l6ZSBvciBsaW5lLWhlaWdodCB0byBhdm9pZFxuXHRcdFx0dW5uZWNlc3Nhcnkgc3BhY2luZyBhcm91bmQgaXQuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG59XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4vKiBDbGFzcyBhcHBsaWVkIGlmIHRoZSB3aWRnZXQgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gdGhlIHNpemUgbGFiZWwgKi9cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHR0b3A6IGNhbGModmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCkgKiAtMSk7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2std2lkZ2V0X3dpdGgtcmVzaXplciB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogVGhlIHdyYXBwZXIgaXRzZWxmIHNob3VsZCBub3QgaW50ZXJmZXJlIHdpdGggdGhlIHBvaW50ZXIgZGV2aWNlLCBvbmx5IHRoZSBoYW5kbGVzIHNob3VsZC4gKi9cblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0bGVmdDogMDtcblx0dG9wOiAwO1xufVxuXG4uY2stZm9jdXNlZCAuY2std2lkZ2V0X3dpdGgtcmVzaXplci5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFJlc2l6ZXJzIGFyZSB0aGUgb25seSBVSSBlbGVtZW50cyB0aGF0IHNob3VsZCBpbnRlcmZlcmUgd2l0aCBhIHBvaW50ZXIgZGV2aWNlLiAqL1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCxcblx0LmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAyKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHR0b3A6IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0bGVmdDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdC8qIFBsYWNlIGl0IGluIHRoZSBtaWRkbGUgb2YgdGhlIG91dGxpbmUgKi9cblx0XHRcdGJvdHRvbTogY2FsYygtMC41ICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0XHRyaWdodDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuXHRcdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuOlxuXHQgKiAtIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsXG5cdCAqIC0gb3IgdGhlIGJ1dHRvbiBpcyBiZWluZyBob3ZlcmVkIChyZWdhcmRsZXNzIG9mIHRoZSB3aWRnZXQgc3RhdGUpLlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOjphZnRlciwgLmNrIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXI6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMXB4O1xuXHRcdFx0bGVmdDogMXB4O1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuLypcblx0ICogV2hlbiB0aGUgd2lkZ2V0IGlzIGhvdmVyZWQgdGhlIFwiZmFrZSBjYXJldFwiIHdvdWxkIG5vcm1hbGx5IGJlIG5hcnJvd2VyIHRoYW4gdGhlXG5cdCAqIGV4dHJhIG91dGxpbmUgZGlzcGxheWVkIGFyb3VuZCB0aGUgd2lkZ2V0LiBMZXQncyBleHRlbmQgdGhlIFwiZmFrZSBjYXJldFwiIHRvIG1hdGNoXG5cdCAqIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSB3aWRnZXQuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHRcdHJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoZW4gaXQgc2hvdWxkIGJlIGRpc3BsYXllZCBiZWZvcmUgdGhlIHdpZGdldCAoYmFja3dhcmQga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHdpZGdldCAoZm9yd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZWFkLW9ubHkgbW9kZSBvZiB0aGUgZWRpdG9yLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgI2lzRW5hYmxlZCBwcm9wZXJ0eSBvZiB0aGUgV2lkZ2V0VHlwZUFyb3VuZCBwbHVnaW4uXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfZGlzYWJsZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzdHJpY3RlZCBlZGl0aW5nIG1vZGUgKGZlYXR1cmUpIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgZGl2LnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdGRpc3BsYXk6IGluaXRpYWw7XG5cdH1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9Y2tlZGl0b3I1LmNzcy5tYXAgKi8iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBSZXNldCAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2dsb2JhbHMvZ2xvYmFscy5jc3NcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYnV0dG9uL2xpc3RpdGVtYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sbGFwc2libGUvY29sbGFwc2libGUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2dhY3Rpb25zLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9saXN0ZHJvcGRvd24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9zcGxpdGJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3Rvb2xiYXJkcm9wZG93bi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51YnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51bGlzdGl0ZW1idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZWRpdG9ydWkvYWNjZXNzaWJpbGl0eWhlbHAuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9lZGl0b3J1aS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Zvcm1oZWFkZXIvZm9ybWhlYWRlci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2lucHV0L2lucHV0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbGVkZmllbGQvbGFiZWxlZGZpZWxkdmlldy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRpbnB1dC9sYWJlbGVkaW5wdXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9saXN0L2xpc3QuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVsaXN0aXRlbS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2JhbGxvb25wYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2JhbGxvb25yb3RhdG9yLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvZmFrZXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvc3RpY2t5cGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9mb3JtL2Zvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9yZXNwb25zaXZlLWZvcm0vcmVzcG9uc2l2ZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90b29sYmFyL2Jsb2NrdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIjtcblxuLyogRWRpdG9yICovXG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvY2xhc3NpY2VkaXRvci5jc3NcIjtcblxuLyogUGx1Z2lucyAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1ib29rbWFyay9ib29rbWFya3Rvb2xiYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1jb2RlLWJsb2NrL2NvZGVibG9jay5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1lbmdpbmUvcGxhY2Vob2xkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaGVhZGluZy9oZWFkaW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS9ob3Jpem9udGFsbGluZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWluc2VydC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS90ZXh0YWx0ZXJuYXRpdmVmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWltYWdlL2ltYWdlY3VzdG9tcmVzaXplZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmsuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5rdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmtmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua2ltYWdlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua3Byb3BlcnRpZXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5rcHJvdmlkZXJpdGVtcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saXN0L2xpc3Rwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpc3QvbGlzdHN0eWxlcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9tZWRpYWVtYmVkZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1tZW50aW9uL21lbnRpb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtcmVzdHJpY3RlZC1lZGl0aW5nL3Jlc3RyaWN0ZWRlZGl0aW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9jaGFyYWN0ZXJncmlkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9jaGFyYWN0ZXJpbmZvLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9zcGVjaWFsY2hhcmFjdGVycy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZWdyaWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncm91cC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL2NvbG9yaW5wdXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9pbnNlcnR0YWJsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlbGF5b3V0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlcHJvcGVydGllcy1leHBlcmltZW50YWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVmb3JtLWV4cGVyaW1lbnRhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9mb3Jtcm93LWV4cGVyaW1lbnRhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLWV4cGVyaW1lbnRhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXdpZGdldC93aWRnZXRyZXNpemUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHR5cGVhcm91bmQuY3NzXCI7XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi9fY29sb3JzLmNzc1wiO1xuQGltcG9ydCBcIi4vX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvbnRzLmNzc1wiO1xuQGltcG9ydCBcIi4vX3Jlc2V0LmNzc1wiO1xuQGltcG9ydCBcIi4vX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIi4vX3NwYWNpbmcuY3NzXCI7XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aW9uOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTA0LCA1MC4yJSwgNDIuNSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9jdXM6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMSwgMTAwJSwgNTglKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZS1mb2N1czpcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4yLCAxMDAlLCA1Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1lcnJvcjpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlczogXHRcdFx0XHRcdFx0MjE4LCA4MS44JSwgNTYuOSU7XG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2wodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSk7XG5cdC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2woMjEyLjQsIDg5LjMlLCA4OSUpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdzpcdFx0XHRcdFx0XHRcdGhzbGEoMjA5LCA5MCUsIDcyJSwuMyk7XG5cdC0tY2stY29sb3ItZm9jdXMtZXJyb3Itc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2xhKDksMTAwJSw1NiUsLjMpO1xuXHQtLWNrLWNvbG9yLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4yKTtcblx0LS1jay1jb2xvci1zaGFkb3ctaW5uZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIEJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdHRyYW5zcGFyZW50O1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0aHNsKDIxMiwgMTAwJSwgOTcuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEsIDE1JSwgOTUlKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tY29sb3I6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXG5cblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aW9uKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LS1jay1jb2xvci1idXR0b24tc2F2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEyMCwgMTAwJSwgMjclKTtcblx0LS1jay1jb2xvci1idXR0b24tY2FuY2VsOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRoc2woMCwgMCUsIDU3LjYlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDAsIDAlLCA0OSUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZDpcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kOlx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93Olx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIERyb3Bkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIERpYWxvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogXHRcdFx0XHRcdFx0dmFyKC0tY2stY3VzdG9tLWJvcmRlcik7XG5cblx0LyogLS0gSW5wdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1pbnB1dC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXI6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHQtLWNrLWNvbG9yLWlucHV0LXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk1JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0OiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDYlKTtcblxuXHQvKiAtLSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1czogXHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQ6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gUGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItdG9vbHRpcC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIEVuZ2luZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZW5naW5lLXBsYWNlaG9sZGVyLXRleHQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDQlKTtcblxuXHQvKiAtLSBVcGxvYWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZDpcdFx0IFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cblx0LyogLS0gTGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGluay1kZWZhdWx0Olx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyNDAsIDEwMCUsIDQ3JSk7XG5cdC0tY2stY29sb3ItbGluay1zZWxlY3RlZC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMSk7XG5cdC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbjpcdFx0XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4zKTtcblxuXHQvKiAtLSBTZWFyY2ggcmVzdWx0IGhpZ2hsaWdodCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRcdGhzbCg2MCwgMTAwJSwgNTAlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saWdodC1yZWQ6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMTAwJSwgOTAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEFuIG9wYWNpdHkgdmFsdWUgb2YgZGlzYWJsZWQgVUkgaXRlbS5cblx0ICovXG5cdC0tY2stZGlzYWJsZWQtb3BhY2l0eTogLjU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZm9udC1zaXplLWJhc2U6IDEzcHg7XG5cdC0tY2stbGluZS1oZWlnaHQtYmFzZTogMS44NDYxNTtcblx0LS1jay1mb250LWZhY2U6IEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgU2Fucy1TZXJpZjtcblxuXHQtLWNrLWZvbnQtc2l6ZS10aW55OiAwLjdlbTtcblx0LS1jay1mb250LXNpemUtc21hbGw6IDAuNzVlbTtcblx0LS1jay1mb250LXNpemUtbm9ybWFsOiAxZW07XG5cdC0tY2stZm9udC1zaXplLWJpZzogMS40ZW07XG5cdC0tY2stZm9udC1zaXplLWxhcmdlOiAxLjhlbTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogVGhpcyBpcyBzdXBlci1pbXBvcnRhbnQuIFRoaXMgaXMgKiptYW51YWxseSoqIGFkanVzdGVkIHNvIGEgYnV0dG9uIHdpdGhvdXQgYW4gaWNvblxuXHRpcyBuZXZlciBzbWFsbGVyIHRoYW4gYSBidXR0b24gd2l0aCBpY29uLCBhZGRpdGlvbmFsbHkgbWFraW5nIHN1cmUgdGhhdCB0ZXh0LWxlc3MgYnV0dG9uc1xuXHRhcmUgcGVyZmVjdCBzcXVhcmVzLiBUaGUgdmFsdWUgaXMgYWxzbyBzaGFyZWQgYnkgb3RoZXIgY29tcG9uZW50cyB3aGljaCBzaG91bGQgc3RheSBcImluLWxpbmVcIlxuXHR3aXRoIGJ1dHRvbnMuICovXG5cdC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQ6IDIuM2VtO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50LCBpZ25vcmluZyBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldCxcbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogc3RhdGljO1xuXG5cdC8qIERvIG5vdCBpbmNsdWRlIGluaGVyaXRhYmxlIHJ1bGVzIGhlcmUuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR0cmFuc2l0aW9uOiBub25lO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTA1ICovXG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyoqXG4gKiBSZXNldHMgYW4gZWxlbWVudCBBTkQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLXJlc2V0X2FsbCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0LyogVGhlc2UgYXJlIHJ1bGUgaW5oZXJpdGVkIGJ5IGFsbCBjaGlsZHJlbiBlbGVtZW50cy4gKi9cblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgdmFyKC0tY2stZm9udC1zaXplLWJhc2UpL3ZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpIHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBhdXRvO1xuXHRmbG9hdDogbm9uZTtcbn1cblxuLmNrLXJlc2V0X2FsbCB7XG5cdCYgLmNrLXJ0bCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdCYgaWZyYW1lOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHQvKiBGb3IgSUUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcblx0fVxuXG5cdCYgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0fVxuXG5cdCYgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInRleHRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cblxuXHQmIHRleHRhcmVhW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdCYgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cblx0JiBmaWVsZHNldDpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRib3JkZXI6IDJweCBncm9vdmUgaHNsKDI1NSwgNyUsIDg4JSk7XG5cdH1cblxuXHQmIGJ1dHRvbjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKTo6LW1vei1mb2N1cy1pbm5lciB7XG5cdFx0LyogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTUxNzc0NC9yZW1vdmUtZXh0cmEtYnV0dG9uLXNwYWNpbmctcGFkZGluZy1pbi1maXJlZm94ICovXG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDBcblx0fVxufVxuXG4vKipcbiAqIERlZmF1bHQgVUkgcnVsZXMgZm9yIFJUTCBsYW5ndWFnZXMuXG4gKi9cbi5ja1tkaXI9XCJydGxcIl0sXG4uY2tbZGlyPVwicnRsXCJdIC5jayB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cbjpyb290e1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IDJweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBpbm5lciBzaGFkb3cgKGkuZS4gaW5wdXQpLlxuXHQgKi9cblx0LS1jay1pbm5lci1zaGFkb3c6IDJweCAycHggM3B4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcikgaW5zZXQ7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBkcm9wIHNoYWRvdyAoaS5lLiBwYW5lbCkuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93OiAwIDFweCAycHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGFjdGl2ZSBzaGFkb3cgKGkuZS4gY29tbWVudCBvciBzdWdnZXN0aW9uKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3ctYWN0aXZlOiAwIDNweCA2cHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3BhY2luZy11bml0OiBcdFx0XHRcdFx0XHQwLjZlbTtcblx0LS1jay1zcGFjaW5nLWV4dHJhLWxhcmdlOlx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMik7XG5cdC0tY2stc3BhY2luZy1sYXJnZTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDEuNSk7XG5cdC0tY2stc3BhY2luZy1zdGFuZGFyZDogXHRcdFx0XHRcdHZhcigtLWNrLXNwYWNpbmctdW5pdCk7XG5cdC0tY2stc3BhY2luZy1tZWRpdW06IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjgpO1xuXHQtLWNrLXNwYWNpbmctbWVkaXVtLXNtYWxsOlx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC42NjcpO1xuXHQtLWNrLXNwYWNpbmctc21hbGw6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjUpO1xuXHQtLWNrLXNwYWNpbmctdGlueTogXHRcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4zKTtcblx0LS1jay1zcGFjaW5nLWV4dHJhLXRpbnk6IFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4xNik7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbi5jay5jay1hdXRvY29tcGxldGUge1xuXHQmID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0XHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0XHRtYXgtaGVpZ2h0OiAyMDBweDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRcdH1cblxuXHRcdCYuY2stc2VhcmNoX19yZXN1bHRzX3Mge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQvKiBQcmV2ZW50IGR1cGxpY2F0ZWQgYm9yZGVycyBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgdGhlIHJlc3VsdHMgcGFuZS4gKi9cblx0XHRcdG1hcmdpbi10b3A6IC0xcHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuQGRlZmluZS1taXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdC5jay1yb3VuZGVkLWNvcm5lcnMgJixcblx0Ji5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1ib3gtc2hhZG93ICRzaGFkb3dBLCAkc2hhZG93QjogMCAwIHtcblx0Ym94LXNoYWRvdzogJHNoYWRvd0EsICRzaGFkb3dCO1xufVxuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZHJvcC1zaGFkb3cge1xuXHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1kcm9wLXNoYWRvdyk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuQGRlZmluZS1taXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdC5jay1yb3VuZGVkLWNvcm5lcnMgJixcblx0Ji5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1ib3gtc2hhZG93ICRzaGFkb3dBLCAkc2hhZG93QjogMCAwIHtcblx0Ym94LXNoYWRvdzogJHNoYWRvd0EsICRzaGFkb3dCO1xufVxuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZHJvcC1zaGFkb3cge1xuXHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1kcm9wLXNoYWRvdyk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRAbWl4aW4gY2stYnV0dG9uLWNvbG9ycyAtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0O1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdC8qIEEgdmVyeSBpbXBvcnRhbnQgcGllY2Ugb2Ygc3R5bGluZy4gR28gdG8gdmFyaWFibGUgZGVjbGFyYXRpb24gdG8gbGVhcm4gbW9yZS4gKi9cblx0bWluLXdpZHRoOiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBOb3JtYWxpemUgdGhlIGhlaWdodCBvZiB0aGUgbGluZS4gUmVtb3ZpbmcgdGhpcyB3aWxsIGJyZWFrIGNvbnNpc3RlbnQgaGVpZ2h0XG5cdGFtb25nIHRleHQgYW5kIHRleHQtbGVzcyBidXR0b25zICh3aXRoIGljb25zKS4gKi9cblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQvKiBBdm9pZCBmbGlja2VyaW5nIHdoZW4gdGhlIGZvdWNzIGJvcmRlciBzaG93cyB1cC4gKi9cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgYm9yZGVyIC4ycyBlYXNlLWluLW91dDtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzE4OSAqL1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0JjphY3RpdmUsXG5cdCY6Zm9jdXMge1xuXHRcdEBtaXhpbiBjay1mb2N1cy1yaW5nO1xuXHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdH1cblxuXHQvKiBBbGxvdyBpY29uIGNvbG9yaW5nIHVzaW5nIHRoZSB0ZXh0IFwiY29sb3JcIiBwcm9wZXJ0eS4gKi9cblx0JiAuY2stYnV0dG9uX19pY29uIHtcblx0XHQmIHVzZSxcblx0XHQmIHVzZSAqIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cblx0XHQvKiBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCAuY2staWNvbidzIHZlcnRpY2FsIGFsaWduLiBPdGhlcndpc2UsIGJ1dHRvbnMgd2l0aCBhbmRcblx0XHR3aXRob3V0IGxhYmVscyAoYnV0IHdpdGggaWNvbnMpIGhhdmUgZGlmZmVyZW50IHNpemVzIGluIENocm9tZSAqL1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cblxuXHRcdG9wYWNpdHk6IC41O1xuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuXHQmLmNrLWRpc2FibGVkIHtcblx0XHQmOmFjdGl2ZSxcblx0XHQmOmZvY3VzIHtcblx0XHRcdC8qIFRoZSBkaXNhYmxlZCBidXR0b24gc2hvdWxkIGhhdmUgYSBzbGlnaHRseSBsZXNzIHZpc2libGUgc2hhZG93IHdoZW4gZm9jdXNlZC4gKi9cblx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdyk7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0b3BhY2l0eTogLjM7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHQmIC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuY2stYnV0dG9uX3dpdGgta2V5c3Ryb2tlIHtcblx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cblx0fVxuXG5cdC8qIEEgc3R5bGUgb2YgdGhlIGJ1dHRvbiB3aGljaCBpcyBjdXJyZW50bHkgb24sIGUuZy4gaXRzIGZlYXR1cmUgaXMgYWN0aXZlLiAqL1xuXHQmLmNrLW9uIHtcblx0XHRAbWl4aW4gY2stYnV0dG9uLWNvbG9ycyAtLWNrLWNvbG9yLWJ1dHRvbi1vbjtcblxuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHR9XG5cblx0Ji5jay1idXR0b24tc2F2ZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlKTtcblx0fVxuXG5cdCYuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHR9XG59XG5cbi8qIEEgc3R5bGUgb2YgdGhlIGJ1dHRvbiB3aGljaCBoYW5kbGVzIHRoZSBwcmltYXJ5IGFjdGlvbi4gKi9cbi5jay5jay1idXR0b24tYWN0aW9uLFxuYS5jay5jay1idXR0b24tYWN0aW9uIHtcblx0QG1peGluIGNrLWJ1dHRvbi1jb2xvcnMgLS1jay1jb2xvci1idXR0b24tYWN0aW9uO1xuXG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLXRleHQpO1xufVxuXG4uY2suY2stYnV0dG9uLWJvbGQsXG5hLmNrLmNrLWJ1dHRvbi1ib2xkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1mb2N1cy1yaW5nIHtcblx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1kaXNhYmxlZCB7XG5cdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1idXR0b24tY29sb3JzICRwcmVmaXgge1xuXHRiYWNrZ3JvdW5kOiB2YXIoJChwcmVmaXgpLWJhY2tncm91bmQpO1xuXG5cdCY6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoJChwcmVmaXgpLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG5cdCYuY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigkKHByZWZpeCktZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stZGlyICRkaXJlY3Rpb24ge1xuXHRbZGlyPVwiJChkaXJlY3Rpb24pXCJdICYge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLyogTm90ZTogVG8gYXZvaWQgcmVuZGVyaW5nIGlzc3VlcyAoYWxpYXNpbmcpIGJ1dCB0byBwcmVzZXJ2ZSB0aGUgcmVzcG9uc2l2ZSBuYXR1cmVcbm9mIHRoZSBjb21wb25lbnQsIGZsb2F0aW5n4oCTcG9pbnQgbnVtYmVycyBoYXZlIGJlZW4gdXNlZCB3aGljaCwgZm9yIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZVxuKHNlZTogLS1jay1mb250LXNpemUtYmFzZSksIHdpbGwgZ2VuZXJhdGUgc2ltcGxlIGludGVnZXJzLiAqL1xuOnJvb3Qge1xuXHQvKiAzNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGg6IDIuNjE1Mzg0NjE1NGVtO1xuXHQvKiAxNHB4IGF0IDEzcHggZm9udC1zaXplICovXG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZTogY2FsYygxLjA3NjkyMzA3NjllbSArIDFweCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbjogY2FsYyhcblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCkgLVxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpIC1cblx0XHQycHggLyogQm9yZGVyICovXG5cdCk7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3c6IDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLXNoYWRvdyk7XG59XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0LyogVW5saWtlIGEgcmVndWxhciBidXR0b24sIHRoZSBzd2l0Y2ggYnV0dG9uIHRleHQgY29sb3IgYW5kIGJhY2tncm91bmQgc2hvdWxkIG5ldmVyIGNoYW5nZS5cblx0ICogQ2hhbmdpbmcgdG9nZ2xlIHN3aXRjaCAoYmFja2dyb3VuZCwgb3V0bGluZSkgaXMgZW5vdWdoIHRvIGNhcnJ5IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVcblx0ICogc3RhdGUgb2YgdGhlIGVudGlyZSBjb21wb25lbnQgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEyNTE5KVxuXHQgKi9cblx0JiwgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUsICYuY2stb246aG92ZXIsICYuY2stb246Zm9jdXMsICYuY2stb246YWN0aXZlIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdC8qIFNlcGFyYXRlIHRoZSBsYWJlbCBmcm9tIHRoZSBzd2l0Y2ggKi9cblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdC8qIFNlcGFyYXRlIHRoZSBsYWJlbCBmcm9tIHRoZSBzd2l0Y2ggKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIHJpZ2h0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgdG9nZ2xlIGlzIGFsd2F5cyB0byB0aGUgbGVmdCBhcyBmYXIgYXMgcG9zc2libGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXG5cdFx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCA0MDBtcyBlYXNlLCBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgb3V0bGluZSAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kKTtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogY2FsYyguNSAqIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpKTtcblx0XHRcdH1cblxuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZCk7XG5cblx0XHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBpbm5lciBwYXJ0IG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQpO1xuXG5cdFx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLWlubmVyLWhvdmVyLXNoYWRvdyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1kaXNhYmxlZCAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0fVxuXG5cdC8qIE92ZXJyaWRpbmcgZGVmYXVsdCAuY2stYnV0dG9uOmZvY3VzIHN0eWxlcyArIGFuIG91dGxpbmUgYXJvdW5kIHRoZSB0b29nbGUgKi9cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgNXB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0XHRvdXRsaW5lLW9mZnNldDogMXB4O1xuXHRcdFx0b3V0bGluZTogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0fVxuXHR9XG5cblx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0Ji5jay1vbiB7XG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdC8qXG5cdFx0XHRcdCogTW92ZSB0aGUgdG9nZ2xlIHN3aXRjaCB0byB0aGUgcmlnaHQuIEl0IHdpbGwgYmUgYW5pbWF0ZWQuXG5cdFx0XHRcdCovXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIHZhciggLS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uICkgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIGNhbGMoIC0xICogdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblxuXHQmLFxuXHQmLmNrLW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0fVxuXG5cdCY6aGFzKC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIpIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIGAuY2stb25gIGNsYXNzIGFuZCBiYWNrZ3JvdW5kIHN0eWxpbmcgaXMgb3ZlcnJpZGRlbiBmb3IgYGNrLWJ1dHRvbmAgaW4gbWFueSBwbGFjZXMuXG5cdCAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrZ3JvdW5kIGlzIG5vdCBvdmVycmlkZGVuIGFuZCB1c2VzIHNpbWlsYXJcblx0ICogc2VsZWN0b3Igc3BlY2lmaWNpdHkgYXMgdGhlIG90aGVyIG92ZXJyaWRlcy5cblx0ICovXG5cdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCksXG5cdCYuY2stYnV0dG9uLmNrLW9uOmhvdmVyLFxuXHQmLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlKSxcblx0Ji5jay1vbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cblx0XHQmOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xsYXBzaWJsZS1hcnJvdy1zaXplOiBjYWxjKDAuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xufVxuXG4uY2suY2stY29sbGFwc2libGUge1xuXHQmID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRjb2xvcjogaW5oZXJpdDtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUsICY6bm90KDpmb2N1cyksICY6aG92ZXI6bm90KDpmb2N1cykge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHQmID4gLmNrLWljb24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stY29sbGFwc2libGUtYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdCYuY2stY29sbGFwc2libGVfY29sbGFwc2VkIHtcblx0XHQmID4gLmNrLmNrLWJ1dHRvbiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZTogMjRweDtcblxuXHQvKiBOb3QgdXNpbmcgZ2xvYmFsIGNvbG9ycyBoZXJlIGJlY2F1c2UgdGhlc2UgbWF5IGNoYW5nZSBidXQgc29tZSBjb2xvcnMgaW4gYSBwYWxsZXR0ZVxuXHQgKiByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50LiBGb3IgaW5zdGFuY2UsIHRoaXMgZW5zdXJlcyBubyBtYXR0ZXIgd2hhdCB0aGUgVUkgdGV4dCBjb2xvciBpcyxcblx0ICogdGhlIGNoZWNrIGljb24gd2lsbCBsb29rIGdvb2Qgb24gdGhlIGJsYWNrIGNvbG9yIHRpbGUuICovXG5cdC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uOiBoc2woMjEyLCA4MSUsIDQ2JSk7XG59XG5cbi5jay5jay1jb2xvci1ncmlkIHtcblx0Z3JpZC1nYXA6IDVweDtcblx0cGFkZGluZzogOHB4O1xufVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cblx0QG1peGluIGNrLW1lZGlhLWRlZmF1bHQtY29sb3JzIHtcblx0XHR3aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblxuXHRcdCYuY2stb24sXG5cdFx0Jjpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdCY6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHQmLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci10aWxlX2JvcmRlcmVkIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0Ji5jay1vbiB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdCY6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogSW4gaGlnaCBjb250cmFzdCBtb2RlLCB0aGUgY29sb3JzIGFyZSByZXBsYWNlZCB3aXRoIHRleHQgbGFiZWxzLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdCAqL1xuXHRAbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdFx0d2lkdGg6IHVuc2V0O1xuXHRcdGhlaWdodDogdW5zZXQ7XG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0Y3Vyc29yOiB1bnNldDtcblx0XHR0cmFuc2l0aW9uOiB1bnNldDtcblx0fVxuXG5cdCYgLmNrLmNrLWljb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWNvbG9yLWdyaWQtY2hlY2staWNvbik7XG5cdH1cblxuXHQmLmNrLW9uIHtcblx0XHQmIC5jay5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0QG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQmIHtcblx0XHRcdEBtaXhpbi1jb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG5AZGVmaW5lLW1peGluIGNrLW1lZGlhLWRlZmF1bHQtY29sb3JzIHtcblx0QG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0JiB7XG5cdFx0XHRAbWl4aW4tY29udGVudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stY29sb3Itc2VsZWN0b3Ige1xuXHQvKiBWaWV3IGZyYWdtZW50IHdpdGggY29sb3IgZ3JpZHMuICovXG5cdCYgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IHtcblx0XHQmIC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvcixcblx0XHQmIC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIC8gMikgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay5jay1pY29uIHtcblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiBsYWJlbC5jay5jay1jb2xvci1ncmlkX19sYWJlbCB7XG5cdFx0XHRmb250LXdlaWdodDogdW5zZXQ7XG5cdFx0fVxuXHR9XG5cblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGEgY29sb3IgcGlja2VyLiAqL1xuXHQmIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQge1xuXHRcdCYgLmNrLmNrLWNvbG9yLXBpY2tlciB7XG5cdFx0XHRwYWRkaW5nOiA4cHg7XG5cblx0XHRcdCYgLmhleC1jb2xvci1waWNrZXIge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0XHRtaW4td2lkdGg6IDE4MHB4O1xuXG5cdFx0XHRcdCY6OnBhcnQoc2F0dXJhdGlvbikge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6OnBhcnQoaHVlKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjo6cGFydChzYXR1cmF0aW9uLXBvaW50ZXIpLFxuXHRcdFx0XHQmOjpwYXJ0KGh1ZS1wb2ludGVyKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciB7XG5cdFx0XHRwYWRkaW5nOiAwIDhweCA4cHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKCAwLCAwJSwgMCUsIC41ICk7XG5cdC0tY2stZGlhbG9nLWRyb3Atc2hhZG93OiAwcHggMHB4IDZweCAycHggaHNsKDBkZWcgMCUgMCUgLyAxNSUpO1xuXHQtLWNrLWRpYWxvZy1tYXgtd2lkdGg6IDEwMHZ3O1xuXHQtLWNrLWRpYWxvZy1tYXgtaGVpZ2h0OiA5MHZoO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5IHtcblx0YW5pbWF0aW9uOiBjay1kaWFsb2ctZmFkZS1pbiAuM3M7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRpYWxvZyk7XG59XG5cbi5jay5jay1kaWFsb2cge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0LS1jay1kcm9wLXNoYWRvdzogdmFyKC0tY2stZGlhbG9nLWRyb3Atc2hhZG93KTtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZCk7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLWRpYWxvZy1tYXgtaGVpZ2h0KTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1kaWFsb2ctbWF4LXdpZHRoKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdCYgLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXIpO1xuXHR9XG59XG5cbi5jay1kaWFsb2ctc2Nyb2xsLWxvY2tlZCB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbkBrZXlmcmFtZXMgY2stZGlhbG9nLWZhZGUtaW4ge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZDogaHNsYSggMCwgMCUsIDAlLCAwICk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2cge1xuXHQmIC5jay5jay1kaWFsb2dfX2FjdGlvbnMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiA+ICogKyAqIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQmIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHQmIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1kaXNhYmxlZCAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdH1cblxuXHQmIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qICMyMyAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IDdlbTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG5cdFx0Ji5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdFx0Ji5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fYnV0dG9uX2xhYmVsLXdpZHRoX2F1dG8gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODY5OSAqL1xuXHRcdCYuY2stb2ZmOmFjdGl2ZSxcblx0XHQmLmNrLW9uOmFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgcGFuZWwgaXMgYXQgbGVhc3QgYXMgd2lkZSBhcyB0aGUgZHJvcC1kb3duJ3MgYnV0dG9uLiAqL1xuXHRtaW4td2lkdGg6IDEwMCU7XG5cblx0LyogRGlzYWJsZWQgY29ybmVyIGJvcmRlciByYWRpdXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stZHJvcGRvd25fX3BhbmVsX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbi5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCB7XG5cdC8qIERpc2FibGVkIHJhZGl1cyBvZiB0b3AtbGVmdCBib3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoZSBidXR0b24gYmVsb25naW5nIHRvIHRoZSBmaXJzdC9sYXN0IGNoaWxkIG9mIHRoZSBsaXN0IGdvZXMgd2VsbCB3aXRoIHRoZVxuXHRib3JkZXIgcmFkaXVzIG9mIHRoZSBlbnRpcmUgcGFuZWwuICovXG5cdCYgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdCY6Zmlyc3QtY2hpbGQgPiAuY2stYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQgPiAuY2stYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5MiUpO1xuXHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXI6IGhzbCgwLCAwJSwgNzAlKTtcbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0Lypcblx0ICogTm90ZTogY2stcm91bmRlZCBhbmQgY2stZGlyIG1peGlucyBkb24ndCBnbyB0b2dldGhlciAoYmVjYXVzZSB0aGV5IGJvdGggdXNlIEBuZXN0KS5cblx0ICovXG5cdCY6aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbixcblx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cblxuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYWN0aW9uIGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHQvKiBJdCdzIGEgdGV4dC1sZXNzIGJ1dHRvbiBhbmQgc2luY2UgdGhlIGljb24gaXMgcG9zaXRpb25lZCBhYnNvbHV0ZWx5IGluIHN1Y2ggc2l0dWF0aW9uLFxuXHRcdGl0IG11c3QgZ2V0IHNvbWUgYXJiaXRyYXJ5IG1pbi13aWR0aC4gKi9cblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cblxuXHRcdCYgc3ZnIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0XHR9XG5cdH1cblxuXHQvKiBNYWtlIHN1cmUgdGhlIGRpdmlkZXIgc3RyZXRjaGVzIDEwMCUgaGVpZ2h0IG9mIHRoZSBidXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTA5MzYgKi9cblx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KDpmb2N1cykge1xuXHRcdGJvcmRlci10b3Atd2lkdGg6IDBweDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG5cdH1cblxuXHQvKiBEb24ndCByb3VuZCB0aGUgYm90dG9tIGxlZnQgYW5kIHJpZ2h0IGNvcm5lcnMgb2YgdGhlIGJ1dHRvbnMgd2hlbiBcIm9wZW5cIlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGlzIFwib3BlblwiICh0aGUgYXJyb3cgaXMgb24pIG9yIGJlaW5nIGhvdmVyZWQsIGl0IHNob3VsZCBnZXQgc29tZSBzdHlsaW5nXG5cdGFzIGEgd2hvbGUuIFRoZSBiYWNrZ3JvdW5kIG9mIGJvdGggYnV0dG9ucyBzaG91bGQgc3RhbmQgb3V0IGFuZCB0aGVyZSBzaG91bGQgYmUgYSB2aXN1YWxcblx0c2VwYXJhdGlvbiBiZXR3ZWVuIGJvdGggYnV0dG9ucy4gKi9cblx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuLFxuXHQmOmhvdmVyIHtcblx0XHQvKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaG92ZXJlZCBhcyBhIHdob2xlLCBub3QgYXMgaW5kaXZpZHVhbCBidXR0b25zLiAqL1xuXHRcdCYgPiAuY2stYnV0dG9uOm5vdCguY2stb24pOm5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cblx0XHQvKiBTcGxpdGJ1dHRvbiBzZXBhcmF0b3IgbmVlZHMgdG8gYmUgc2V0IHdpdGggdGhlIDo6YWZ0ZXIgcHNldWRvc2VsZWN0b3Jcblx0XHR0byBkaXNwbGF5IHByb3Blcmx5IHRoZSBib3JkZXJzIG9uIGZvY3VzICovXG5cdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGl2aWRlciBiZXR3ZWVuIHRoZSBidXR0b25zIGxvb2tzIGZpbmUgd2hlbiB0aGUgYnV0dG9uIGlzIGZvY3VzZWQgKi9cblx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0XHRsZWZ0OiAtMXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duIC5jay10b29sYmFyIHtcblx0Ym9yZGVyOiAwO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLypcbiAqIEFsbCBtZW51IGJ1dHRvbnMuXG4gKi9cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uIHtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdCY6bm90KC5jay1vbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0LyogU3BhY2luZyBpbiBidXR0b25zIHRoYXQgbWlzcyB0aGUgaWNvbi4gKi9cblx0Ji5jay1pY29uLXNwYWNpbmc6bm90KDpoYXMoLmNrLWJ1dHRvbl9faWNvbikpID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cblxuXHQmID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cblx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXG5cdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSBsZWZ0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSByaWdodCAoYWZ0ZXIgcm90YXRpb24pLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1kaXNhYmxlZCA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQmID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tZW51LW1lbnUtaXRlbS1taW4td2lkdGg6IDE4ZW07XG59XG5cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtIHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tZW51LW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIExpc3QgaXRlbSBidXR0b25zLlxuICovXG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbiB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lcixcblx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciAuY2stc3Bpbm5lciB7XG5cdFx0LyogVGhlc2Ugc3R5bGVzIGNvcnJlc3BvbmQgdG8gLmNrLWljb24gc28gdGhhdCB0aGUgc3Bpbm5lciBzZWFtbGVzc2x5IHJlcGxhY2VzIHRoZSBpY29uLiAqL1xuXHRcdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDIwcHg7XG5cdH1cblxuXHQmID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHQvKiBUaGVzZSBtYXJnaW5zIGFyZSB0aGUgc2FtZSBhcyBmb3IgLmNrLWljb24uICovXG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC8qXG5cdCAqIEhvdmVyZWQgaXRlbXMgYXV0b21hdGljYWxseSBnZXQgZm9jdXNlZC4gRGVmYXVsdCBmb2N1cyBzdHlsZXMgbG9vayBvZGRcblx0ICogd2hpbGUgbW92aW5nIGFjcm9zcyBhIGh1Z2UgbGlzdCBvZiBpdGVtcyBzbyBsZXQncyBnZXQgcmlkIG9mIHRoZW1cblx0ICovXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdCY6bm90KC5jay1vbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWVudS1tZW51LXBhbmVsLW1heC13aWR0aDogNzV2dztcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsIHtcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWVudS1tZW51LXBhbmVsLW1heC13aWR0aCk7XG5cblx0LyogUmVzZXQgYmFsbG9vbiBzdHlsaW5nICovXG5cdCY6OmFmdGVyLFxuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQvKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cblx0Ji5jay1iYWxsb29uLXBhbmVsX2VzLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfd3MsXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfZW4sXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9uZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93bixcblx0Ji5jay1iYWxsb29uLXBhbmVsX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGg6IDYwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LWhlaWdodDogNDAwcHg7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3I6IGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMGRlZyAwJSA5Mi45NCUpO1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cta2JkLXNoYWRvdy1jb2xvcjogaHNsKDBkZWcgMCUgNjElKTtcbn1cblxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC13aWR0aCk7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LWhlaWdodCk7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHR1c2VyLXNlbGVjdDogdGV4dDtcblxuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG5cblx0KiB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0fVxuXG5cdC8qIEhpZGUgdGhlIG1haW4gbGFiZWwgb2YgdGhlIGNvbnRlbnQgY29udGFpbmVyLiAqL1xuXHQmIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdCYgaDMge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdH1cblxuXHQmIGg0IHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDFlbTtcblx0fVxuXG5cdCYgcCxcblx0JiBoMyxcblx0JiBoNCxcblx0JiB0YWJsZSB7XG5cdFx0bWFyZ2luOiAxZW0gMDtcblx0fVxuXG5cdCYgZGwge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblxuXHRcdCYgZHQsICYgZGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcblx0XHRcdHBhZGRpbmc6IC40ZW0gMDtcblx0XHR9XG5cblx0XHQmIGR0IHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXHRcdH1cblxuXHRcdCYgZGQge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cblxuXHQmIGtiZCwgJiBjb2RlIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1jb2RlLWJhY2tncm91bmQtY29sb3IpO1xuXHRcdHBhZGRpbmc6IC40ZW07XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0fVxuXG5cdCYgY29kZSB7XG5cdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0fVxuXG5cdCYga2JkIHtcblx0XHRtaW4td2lkdGg6IDEuOGVtO1xuXHRcdGJveC1zaGFkb3c6IDBweCAxcHggMXB4IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cta2JkLXNoYWRvdy1jb2xvcik7XG5cdFx0bWFyZ2luOiAwIDFweDtcblxuXHRcdCYgKyBrYmQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDJweDtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19idXR0b24uY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbjogaHNsKDAsIDAlLCA4NSUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0Ji5jay1mb2N1c2VkIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1pbm5lci1zaGFkb3cpO1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQmW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdCZbZGlyPVwicnRsXCJdIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTE2ICovXG5cdCYgPiAqOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg0NyAqL1xuXHQmID4gKjpsYXN0LWNoaWxkIHtcblx0XHQvKlxuXHRcdCAqIFRoaXMgdmFsdWUgc2hvdWxkIG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgbWFyZ2lucyBvZiB0aGUgYmxvY2sgZWxlbWVudHMgKGxpa2UgLm1lZGlhIG9yIC5pbWFnZSlcblx0XHQgKiB0byBhdm9pZCBhIGNvbnRlbnQganVtcGluZyB3aGVuIHRoZSBmYWtlIHNlbGVjdGlvbiBjb250YWluZXIgc2hvd3MgdXAgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS5cblx0XHQgKi9cblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY1MTcgKi9cblx0Ji5jay1ibHVycmVkIDo6c2VsZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbik7XG5cdH1cbn1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTEgKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X25cIl0ge1xuXHQmOjphZnRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfc1wiXSB7XG5cdCY6OmFmdGVyIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWZvcm0taGVhZGVyLWhlaWdodDogMy4zODRlbTtcbn1cblxuLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1mb3JtLWhlYWRlci1oZWlnaHQpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQvKiBUbyBwcmV2ZW50IHNocmlua2luZyB3aGVuIHBsYWNlZCBpbiBmbGV4Ym94LiAqL1xuXHRmbGV4LXNocmluazogMDtcblxuXHQmID4gLmNrLWljb24ge1xuXHRcdG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuXHQmIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHQvKiBEZWZhdWx0cyB0byAxNXB4LiAqL1xuXHRcdC0tY2stZm9udC1zaXplLWJhc2U6IDEuMTUzZW07XG5cblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXG5cdC8qIFBhZGRpbmcgd2hlbiBiYWNrIGJ1dHRvbiBpcyBoaWRkZW4gKi9cblx0JjpoYXMoLmNrLWJ1dHRvbi1iYWNrLmNrLWhpZGRlbikge1xuXHRcdHBhZGRpbmctaW5saW5lOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdC8qIFBhZGRpbmcgd2hlbiBiYWNrIGJ1dHRvbiBpcyB2aXNpYmxlICovXG5cdCY6aGFzKC5jay1idXR0b24tYmFjazpub3QoLmNrLWhpZGRlbikpIHtcblx0XHRwYWRkaW5nLWlubGluZTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmID4gLmNrLWJ1dHRvbi1iYWNrIHtcblx0XHRtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pY29uLXNpemU6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKSk7XG5cdC0tY2staWNvbi1mb250LXNpemU6IC44MzMzMzUwNjk0ZW07XG59XG5cbi5jay5jay1pY29uIHtcblx0d2lkdGg6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblxuXHQvKiBNdWx0aXBsaWVkIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUgaW4gXCJweFwiIHNob3VsZCBnaXZlIFNWRyBcInZpZXdwb3J0XCIgZGltZW5zaW9ucyAqL1xuXHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRjdXJzb3I6IGluaGVyaXQ7XG5cblx0JiAqIHtcblx0XHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblx0fVxuXG5cdC8qIEFsbG93cyBkeW5hbWljIGNvbG9yaW5nIG9mIGFuIGljb24gYnkgaW5oZXJpdGluZyBpdHMgY29sb3IgZnJvbSB0aGUgcGFyZW50LiAqL1xuXHQmLmNrLWljb25faW5oZXJpdC1jb2xvciB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHQmICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRcdCY6bm90KFtmaWxsXSkge1xuXHRcdFx0XHQvKiBOZWVkZWQgYnkgRkYuICovXG5cdFx0XHRcdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxOGVtO1xuXG5cdC8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovXG5cdC0tY2staW5wdXQtdGV4dC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xufVxuXG4uY2suY2staW5wdXQge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cblx0LyogVGhpcyBpcyBpbXBvcnRhbnQgdG8gc3RheSBvZiB0aGUgc2FtZSBoZWlnaHQgYXMgc3Vycm91bmRpbmcgYnV0dG9ucyAqL1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4xcyBlYXNlLWluLW91dCwgYm9yZGVyIC4xcyBlYXNlLWluLW91dDtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG5cblx0JltyZWFkb25seV0ge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgcmVhZC1vbmx5IGlucHV0IHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZXJyb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyKTtcblx0XHRhbmltYXRpb246IGNrLWlucHV0LXNoYWtlIC4zcyBlYXNlIGJvdGg7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93KTtcblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay1pbnB1dC1zaGFrZSB7XG5cdDIwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuXHR9XG5cblx0NDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcblx0fVxuXG5cdDYwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuXHR9XG5cblx0ODAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbjogLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjI0LCAwLjk1KTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXk6IGNhbGMoMC42ICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0LS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dG9wOiAwcHg7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cdFx0XHRcdC8qIEJ5IGRlZmF1bHQsIGRpc3BsYXkgdGhlIGxhYmVsIHNjYWxlZCBkb3duIGFib3ZlIHRoZSBmaWVsZC4gKi9cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCAtNnB4KSBzY2FsZSguNzUpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSksIC02cHgpIHNjYWxlKC43NSk7XG5cdFx0XHR9XG5cblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMCBjYWxjKC41ICogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0LyogUHJldmVudCBvdmVyZmxvdyB3aGVuIHRoZSBsYWJlbCBpcyBsb25nZXIgdGhhbiB0aGUgaW5wdXQgKi9cblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0XHR0cmFuc2Zvcm0gdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pLFxuXHRcdFx0XHRwYWRkaW5nIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0YmFja2dyb3VuZCB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbik7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1lcnJvciB7XG5cdFx0JiA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWlucHV0Om5vdChbcmVhZG9ubHldKSArIC5jay5jay1sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdC8qIExldCB0aGUgaW5mbyB3cmFwIHRvIHRoZSBuZXh0IGxpbmUgdG8gYXZvaWQgc3RyZXRjaGluZyB0aGUgbGF5b3V0IGhvcml6b250YWxseS5cblx0XHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG5cdFx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1c19lcnJvciB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0LyogRGlzYWJsZWQgZmllbGRzIGFuZCBmaWVsZHMgdGhhdCBoYXZlIG5vIGZvY3VzIHNob3VsZCBmYWRlIG91dC4gKi9cblx0Ji5jay1kaXNhYmxlZCA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXHR9XG5cblx0LyogRmllbGRzIHRoYXQgYXJlIGRpc2FibGVkIG9yIG5vdCBmb2N1c2VkIGFuZCB3aXRob3V0IGEgcGxhY2Vob2xkZXIgc2hvdWxkIGhhdmUgZnVsbC1zaXplZCBsYWJlbHMuICovXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdCYuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC0xICogdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXgpKSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0XHR9XG5cblx0XHQvKiBDb21wZW5zYXRlIGZvciB0aGUgZGVmYXVsdCB0cmFuc2xhdGUgcG9zaXRpb24uICovXG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkpO1xuXG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC8qLS0tLS0tIERyb3Bkb3duVmlldyBpbnRlZ3JhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8qIE1ha2Ugc3VyZSBkcm9wZG93bicgYmFja2dyb3VuZCBjb2xvciBpbiBhbnkgb2YgZHJvcGRvd24ncyBzdGF0ZSBkb2VzIG5vdCBjb2xsaWRlIHdpdGggbGFiZWxlZCBmaWVsZC4gKi9cblx0JiA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdC8qIFdoZW4gdGhlIGRyb3Bkb3duIGlzIFwiZW1wdHlcIiwgdGhlIGxhYmVsZWQgZmllbGQgbGFiZWwgcmVwbGFjZXMgaXRzIGxhYmVsLiAqL1xuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQvKiBNYWtlIHN1cmUgdGhlIGxhYmVsIG9mIHRoZSBlbXB0eSwgdW5mb2N1c2VkIGlucHV0IGRvZXMgbm90IGNvdmVyIHRoZSBkcm9wZG93biBhcnJvdy4gKi9cblx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biArIC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkgLSB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0fVxuXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2Z1bGwtd2lkdGgge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1c19lcnJvciB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbGlzdCB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXG5cdC8qIEEgc3BhY2luZyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGxpc3QgKi9cblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgMDtcbn1cblxuLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogQWxtb3N0IGFzIHdpZGUgYXMgbWVudSBiYXIgaXRlbXMuICovXG5cdG1pbi13aWR0aDogMTVlbTtcblxuXHQmID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtaGVhZGluZy9pc3N1ZXMvNjMgKi9cblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dCk7XG5cblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQtZm9jdXMpO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmZvY3VzOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG5cblx0LyogSXQncyB1bm5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIGJhY2tncm91bmQvdGV4dCBvZiBhIHN3aXRjaCB0b2dnbGU7IGl0IGhhcyBkaWZmZXJlbnQgd2F5c1xuXHRvZiBjb252ZXlpbmcgaXRzIHN0YXRlIChsaWtlIHRoZSBzd2l0Y2hlcikgKi9cblx0JiA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0XHQmLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblxuXHRcdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBMaXN0cyBjb21lIHdpdGggYW4gaW5uZXIgdmVydGljYWwgcGFkZGluZy4gRG9uJ3QgZHVwbGljYXRlIGl0LiAqL1xuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuXG5cdC8qIFRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGJvcmRlciB3aGVuIGl0J3Mgbm90IHRoZSBmaXJzdCBpdGVtLiAqL1xuXHQqOm5vdCguY2staGlkZGVuKSB+ICYge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cblxuXHQmID4gLmNrLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbn1cblxuLmNrLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIEdpdmUgdGhlIHNlcGFyYXRvciBzb21lIGFpciAqL1xuXHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIDA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGdhcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblx0d2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdC8qXG5cdCAqIEFsbCBtZW51IGJ1dHRvbnMuXG5cdCAqL1xuXHQmID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0JiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cblx0XHQmLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogVG9wLWxldmVsIG1lbnUgYnV0dG9ucyBvbmx5LlxuXHQgKi9cblx0Ji5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogdW5zZXQ7XG5cdFx0XHRsaW5lLWhlaWdodDogdW5zZXQ7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBUb3AtbGV2ZWwgYnV0dG9ucyBkb24ndCB1c2UgZWxsaXBzaXMgYW5kIG92ZXJmbG93OiBoaWRkZW4gY2xpcHMgZGVzY2VuZGVycy5cblx0XHRcdCAqICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTc0MjIuXG5cdFx0XHQgKi9cblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdWItbWVudSBidXR0b25zLlxuXHQgKi9cblx0Jjpub3QoLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCkgLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHQmID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgcmlnaHQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIGxlZnQgKi9cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSBsZWZ0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSByaWdodCAoYWZ0ZXIgcm90YXRpb24pLiAqL1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLWRpc2FibGVkID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLmNrLW1lbnUtYmFyX19tZW51X19pdGVtIHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LWl0ZW0tbWluLXdpZHRoKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKlxuXHQgKiBMaXN0IGl0ZW0gYnV0dG9ucy5cblx0ICovXG5cdCYgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lcixcblx0XHQmID4gLmNrLXNwaW5uZXItY29udGFpbmVyIC5jay1zcGlubmVyIHtcblx0XHRcdC8qIFRoZXNlIHN0eWxlcyBjb3JyZXNwb25kIHRvIC5jay1pY29uIHNvIHRoYXQgdGhlIHNwaW5uZXIgc2VhbWxlc3NseSByZXBsYWNlcyB0aGUgaWNvbi4gKi9cblx0XHRcdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDIwcHg7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHQvKiBUaGlzIGVuc3VyZXMgbWFyZ2lucyBjb3JyZXNwb25kaW5nIHRvIHRoZSAuY2staWNvbi4gKi9cblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2staWNvbi1mb250LXNpemUpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aCk7XG5cblx0LyogQ29ybmVyIGJvcmRlciByYWRpdXMgY29uc2lzdGVudCB3aXRoIHRoZSBidXR0b24uICovXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbixcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93bixcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuXG4uY2suY2stbWVudS1iYXIge1xuXHQmIC5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0LyogRml4IHRydW5jYXRlZCBzaGFkb3dzIGR1ZSB0byByZW5kZXJpbmcgb3JkZXIuICovXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OiAyO1xuXG5cdFx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGg6IDFweDtcblx0LS1jay1iYWxsb29uLWFycm93LW9mZnNldDogMnB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0OiAxMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aDogOHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3c6IDAgMnB4IDJweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcCk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3cge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd19uXCJdIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCk7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfc1wiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfZVwiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd193XCJdIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIDA7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X24ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbncge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25lIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2Uge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWUge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogMjUlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NtdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHQvKiBMZXQncyBrZWVwIHNpbWlsYXIgYXBwZWFyYW5jZSB0byBgY2stdG9vbGJhcmAuICovXG5cdCYgPiAqIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogR2l2ZXMgY291bnRlciBtb3JlIGJyZWF0aCB0aGFuIGJ1dHRvbnMuICovXG5cdCYgLmNrLWJhbGxvb24tcm90YXRvcl9fY291bnRlciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIFdlIG5lZWQgdG8gdXNlIHNtYWxsZXIgbWFyZ2luIGJlY2F1c2Ugb2YgcHJldmlvdXMgYnV0dG9uJ3MgcmlnaHQgbWFyZ2luLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxufVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCB7XG5cblx0LyogRGlzYWJsZSBkZWZhdWx0IGFubm90YXRpb24gc2hhZG93IGluc2lkZSByb3RhdG9yIHdpdGggZmFrZSBwYW5lbHMuICovXG5cdCYgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsOiA2cHg7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogNnB4O1xufVxuXG4vKiBMZXQncyB1c2UgYC5jay1iYWxsb29uLXBhbmVsYCBhcHBlYXJhbmNlLiBTZWU6IGJhbGxvb25wYW5lbC5jc3MuICovXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpICogMik7XG5cdG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCkgKiAyKTtcbn1cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAzICkge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpICogMyk7XG5cdG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCkgKiAzKTtcbn1cblxuLyogSWYgYmFsbG9vbiBpcyBwb3NpdGlvbmVkIGFib3ZlIGVsZW1lbnQsIHdlIG5lZWQgdG8gbW92ZSBmYWtlIHBhbmVsIHRvIHRoZSB0b3AuICovXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuLmNrLmNrLXN0aWNreS1wYW5lbCB7XG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRcdGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2stdmVydGljYWwtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0Jjpmb2N1cyB7XG5cdFx0LyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy80NzczICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHQmID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0JiA+IDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGNhbGMoLjggKiB2YXIoLS1jay1pbnB1dC13aWR0aCkpO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHRcdFx0JiAuY2staW5wdXQtdGV4dCxcblx0XHRcdCYgLmNrLWlucHV0LW51bWJlciB7XG5cdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExldCB0aGUgbG9uZyBlcnJvciBtZXNzYWdlcyB3cmFwIGluIHRoZSBuYXJyb3cgZm9ybS4gKi9cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fZXJyb3Ige1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qIFN0eWxlcyBmb3IgdHdvIGxhc3QgYnV0dG9ucyBpbiB0aGUgZm9ybSAoc2F2ZSZjYW5jZWwsIGVkaXQmdW5saW5rLCBldGMuKS4gKi9cblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSxcblx0XHQmID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmc6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSk7XG59XG5cbi5jay5jay1zZWFyY2gge1xuXHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0JiAuY2staW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ji5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXG5cdFx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0Jjpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIDIgKiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXG5cdFx0XHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSB7XG5cdFx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKSAtIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogYXV0bztcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdCY6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2stc2VhcmNoX19pbmZvIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0XHQmICoge1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gc3BhbjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDE4cHg7XG59XG5cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRhbmltYXRpb246IDEuNXMgaW5maW5pdGUgY2stc3Bpbm5lci1yb3RhdGUgbGluZWFyO1xuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcblx0fVxufVxuXG4uY2suY2stc3Bpbm5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuQGtleWZyYW1lcyBjay1zcGlubmVyLXJvdGF0ZSB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBUaGlzIGZpeGVzIGEgcHJvYmxlbSBpbiBGaXJlZm94IHdoZW4gdGhlIGluaXRpYWwgaGVpZ2h0IG9mIHRoZSBjb21wbGVtZW50IGRvZXMgbm90IG1hdGNoIHRoZSBudW1iZXIgb2Ygcm93cy5cbiAqIFRoaXMgYnVnIGlzIGVzcGVjaWFsbHkgdmlzaWJsZSB3aGVuIHJvd3M9MS5cbiAqL1xuLmNrLXRleHRhcmVhIHtcblx0b3ZlcmZsb3cteDogaGlkZGVuXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b246IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHQtLWNrLWJsb2NrLXRvb2xiYXItYnV0dG9uLXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpO1xufVxuXG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b24pO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWJsb2NrLXRvb2xiYXItc2l6ZSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay10b29sYmFyIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0JiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRtaW4td2lkdGg6IDFweDtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0XHQvKlxuXHRcdCAqIFRoZXNlIG1hcmdpbnMgbWFrZSB0aGUgc2VwYXJhdG9ycyBsb29rIGJldHRlciBpbiBiYWxsb29uIHRvb2xiYXJzICh3aGVuIGFsaWduZWQgd2l0aCB0aGUgXCJ0aXBcIikuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc0OTMuXG5cdFx0ICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmIC5jay10b29sYmFyX19saW5lLWJyZWFrIHtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHQmID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspIHtcblx0XHRcdC8qICgjMTEpIFNlcGFyYXRlIHRvb2xiYXIgaXRlbXMuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdC8qIERvbid0IGRpc3BsYXkgYSBzZXBhcmF0b3IgYWZ0ZXIgYW4gZW1wdHkgaXRlbXMgY29udGFpbmVyLCBmb3IgaW5zdGFuY2UsXG5cdFx0d2hlbiBhbGwgaXRlbXMgd2VyZSBncm91cGVkICovXG5cdFx0JjplbXB0eSArIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspLFxuXHQmID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdC8qIE1ha2Ugc3VyZSBpdGVtcyB3cmFwcGVkIHRvIHRoZSBuZXh0IGxpbmUgaGF2ZSB2LXNwYWNpbmcgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl92ZXJ0aWNhbCB7XG5cdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aC4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdFx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIHNwYW4gdGhlIGhvcml6b250YWwgc3BhY2UuICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBoYXZlIG5vIG1hcmdpbi4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aCBzbyByb3VuZGVkIGNvcm5lcnMgYXJlIHBvaW50bGVzcy4gKi9cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3Qge1xuXHRcdC8qIE5vIHNwYWNpbmcgYXJvdW5kIGl0ZW1zLiAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKiB7XG5cdFx0XHQvKiBDb21wYWN0IHRvb2xiYXIgaXRlbXMgaGF2ZSBubyBzcGFjaW5nIGJldHdlZW4gdGhlbS4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogXCJNaWRkbGVcIiBjaGlsZHJlbiBzaG91bGQgaGF2ZSBubyByb3VuZGVkIGNvcm5lcnMuICovXG5cdFx0XHQmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0Lypcblx0XHQgKiBEcm9wZG93biBidXR0b24gaGFzIGFzeW1tZXRyaWMgcGFkZGluZyB0byBmaXQgdGhlIGFycm93LlxuXHRcdCAqIFRoaXMgYnV0dG9uIGhhcyBubyBhcnJvdyBzbyBsZXQncyByZXZlcnQgdGhhdCBwYWRkaW5nIGJhY2sgdG8gbm9ybWFsLlxuXHRcdCAqL1xuXHRcdCYgPiAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdH1cblx0fVxuXG5cdC8qIEEgZHJvcC1kb3duIGNvbnRhaW5pbmcgdGhlIG5lc3RlZCB0b29sYmFyIHdpdGggY29uZmlndXJlZCBpdGVtcy4gKi9cblx0JiAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24ge1xuXHRcdC8qIFByZXZlbnQgZW1wdHkgc3BhY2UgaW4gdGhlIHBhbmVsIHdoZW4gdGhlIGRyb3Bkb3duIGxhYmVsIGlzIHZpc2libGUgYW5kIGxvbmcgYnV0IHRoZSB0b29sYmFyIGhhcyBmZXcgaXRlbXMuICovXG5cdFx0JiA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bWF4LXdpZHRoOiA3ZW07XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0LmNrLXRvb2xiYXItY29udGFpbmVyICYge1xuXHRcdGJvcmRlcjogMDtcblx0fVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG4vKlxuICogU3R5bGVzIGZvciBSVEwgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIsXG4uY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0ge1xuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHQmOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQvKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgbGFzdCBjaGlsZC4gKi9cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cdH1cblxuXHQvKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuXHQmLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG59XG5cbi8qXG4gKiBTdHlsZXMgZm9yIExUUiB0b29sYmFycy5cbiAqXG4gKiBOb3RlOiBJbiBzb21lIGNhc2VzIChlLmcuIGEgZGVjb3VwbGVkIGVkaXRvciksIHRoZSB0b29sYmFyIGhhcyBpdHMgb3duIFwiZGlyXCJcbiAqIGJlY2F1c2UgaXRzIHBhcmVudCBpcyBub3QgY29udHJvbGxlZCBieSB0aGUgZWRpdG9yIGZyYW1ld29yay5cbiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhcixcbi5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSB7XG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cdH1cblxuXHQvKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogU29tZSBzcGFjaW5nIGJldHdlZW4gdGhlIGl0ZW1zIGFuZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgZ3JvdXBlZCBpdGVtcyBkcm9wZG93bi4gKi9cblx0Ji5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCB7XG5cdC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGg6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LW9mZnNldDogMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aDogNHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0OiA0cHg7XG5cdC0tY2stdG9vbHRpcC10ZXh0LXBhZGRpbmc6IDRweDtcblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQpO1xuXG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXG5cdCYgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10b29sdGlwLXRleHQpO1xuXHR9XG5cblx0Ji5jay10b29sdGlwX211bHRpLWxpbmUgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nKSAwO1xuXHRcdG1heC13aWR0aDogMjAwcHg7XG5cdH1cblxuXHQvKiBSZXNldCBiYWxsb29uIHBhbmVsIHN0eWxlcyAqL1xuXHRib3gtc2hhZG93OiBub25lO1xuXG5cdC8qIEhpZGUgdGhlIGRlZmF1bHQgc2hhZG93IG9mIHRoZSAuY2stYmFsbG9vbi1wYW5lbCB0aXAgKi9cblx0Jjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2stZWRpdG9yX190b3Age1xuXHQmIC5jay1zdGlja3ktcGFuZWwge1xuXHRcdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cblx0XHRcdCYuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stbWVudS1iYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIE5vdGU6IFVzZSBjay1lZGl0b3JfX21haW4gdG8gbWFrZSBzdXJlIHRoZXNlIHN0eWxlcyBkb24ndCBhcHBseSB0byBvdGhlciBlZGl0b3IgdHlwZXMgKi9cbi5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTEzICovXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6bm90KC5jay1mb2N1c2VkKSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1ib29rbWFyay1pY29uLWhvdmVyLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHQtLWNrLWJvb2ttYXJrLWljb24tc2VsZWN0ZWQtZmlsbC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcblx0LS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1jdXJ2ZTogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcbn1cblxuLmNrIC5jay1ib29rbWFyayB7XG5cdCYuY2std2lkZ2V0IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdCYgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdHRyYW5zaXRpb246IGZpbGwgdmFyKC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWN1cnZlKTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdCYgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHQuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYm9va21hcmtfX2ljb24ge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHQvKiBUbyBtYWtlIGl0IGFsaWduIHdpdGggdGV4dCBiYXNlbGluZS4gKi9cblx0XHRcdHRvcDogLTAuMWVtO1xuXG5cdFx0XHQmIC5jay1pY29uIHtcblx0XHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBib29rbWFyayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWJvb2ttYXJrLXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb24pO1xufVxuXG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtYm9va21hcmstc2VsZWN0aW9uX2NvbGxhcHNlZCB7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xuXHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1ib29rbWFyay1mb3JtLXdpZHRoOiAzNDBweDtcbn1cblxuQG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0OnJvb3Qge1xuXHRcdC0tY2stYm9va21hcmstZm9ybS13aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLmNrLmNrLWJvb2ttYXJrLWZvcm0ge1xuXHR3aWR0aDogdmFyKC0tY2stYm9va21hcmstZm9ybS13aWR0aCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLWJvb2ttYXJrLWJhbGxvb24ge1xuXHQmIC5jay5jay10b29sYmFyIHtcblx0XHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stYm9va21hcmstdG9vbGJhcl9fcHJldmlldyB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblx0bWluLXdpZHRoOiAzZW07XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuQGRlZmluZS1taXhpbiBjay11bnNlbGVjdGFibGUge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGg6IDEycHg7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQ6IDhweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0Lypcblx0ICogVmVydGljYWwgZHJvcCB0YXJnZXQgKGluIHRleHQpLlxuXHQgKi9cblx0JiAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHtcblx0XHQmIHNwYW4ge1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHRcdC8qIFRoZSB0cmlhbmdsZSBhYm92ZSB0aGUgbWFya2VyICovXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHRoYXQgaXQgYSBkcm9wIHRhcmdldC5cblx0ICovXG5cdCYgLmNrLXdpZGdldC5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcmFuZ2Uge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cblx0JiAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyB7XG5cdFx0em9vbTogMC42O1xuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRoZWlnaHQ6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGxlZnQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDogY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHJpZ2h0OiAtMXB4O1xuXG5cdFx0XHRib3JkZXItd2lkdGg6Y2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA0NiUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kKTtcblxuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRsaW5lLWhlaWdodDogMTZweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2suY2stY29kZS1ibG9jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGxhbmd1YWdlcyBhdmFpbGFibGUuIFVzZSBzY3JvbGwgdG8gcHJldmVudCBhIDEwZTZweCBkcm9wZG93bi4gKi9cblx0bWF4LWhlaWdodDogMjUwcHg7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuLmNrLmNrLXBsYWNlaG9sZGVyLCAuY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0QG1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBuZWVkZWQgZm9yIEVkZ2Ugb24gV2luZG93cyB0byB1c2UgdGhlIHJpZ2h0IGNvbG9yIGZvciB0aGUgcGxhY2Vob2xkZXIgY29udGVudCAoOjpiZWZvcmUpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHQgKi9cblx0XHRmb3JjZWQtY29sb3ItYWRqdXN0OiBwcmVzZXJ2ZS1wYXJlbnQtY29sb3I7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGN1cnNvcjogdGV4dDtcblxuXHRcdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItZW5naW5lLXBsYWNlaG9sZGVyLXRleHQpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBJbiB0aGUgaGlnaCBjb250cmFzdCBtb2RlIHRoZXJlIGlzIG5vIHRlbGxpbmcgYmV0d2VlbiByZWd1bGFyIGFuZCBwbGFjZWhvbGRlciB0ZXh0LiBVc2luZ1xuXHRcdFx0ICogaXRhbGljIHRleHQgdG8gYWRkcmVzcyB0aGF0IGlzc3VlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0XHQgKi9cblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblxuXHRcdFx0Lypcblx0XHRcdCAqIFdpdGhvdXQgdGhpcyBtYXJnaW4sIHRoZSBjYXJldCB3aWxsIG5vdCBzaG93IHVwIGFuZCBibGluayB3aGVuIHRoZSB1c2VyIHB1dHMgdGhlIHNlbGVjdGlvblxuXHRcdFx0ICogaW4gdGhlIHBsYWNlaG9sZGVyIChFZGdlIG9uIFdpbmRvd3MpLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0XHQgKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0d2lkdGg6IDQwMHB4O1xuXG5cdC8qXG5cdCAqIFRoZSA8Zm9ybT4gbmVlZHMgdGFiaW5kZXg9XCItMVwiIGZvciBwcm9wZXIgRXNjIGhhbmRsaW5nIGFmdGVyIGJlaW5nIGNsaWNrZWRcblx0ICogYnV0IHRoZSBzaWRlIGVmZmVjdCBpcyB0aGF0IHRoaXMgY3JlYXRlcyBhIG5hc3R5IGZvY3VzIG91dGxpbmUgaW4gc29tZSBicm93c2Vycy5cblx0ICovXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuXHQvKiBHZW5lcmljIHN0eWxlcyBmb3IgdGhlIGZvcm0gaW5wdXRzIGFuZCBhY3Rpb25zLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyxcblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG5cblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQmID4gKiArICoge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0JiA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1pbi13aWR0aDogNTBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgaW5wdXRzIGFyZWEuICovXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIHtcblx0XHQvKiBUbyBkaXNwbGF5IGFsbCBjb250cm9scyBpbiBsaW5lIHdoZW4gdGhlcmUncyBhbiBlcnJvciB1bmRlciB0aGUgaW5wdXQgKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdCYgPiAuY2stYnV0dG9uLXByZXYgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1idXR0b24tbmV4dCA+IC5jay1pY29uIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0fVxuXG5cdFx0JiAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblxuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtcmVwbGFjZSB7XG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBhY3Rpb25zIGFyZWEuICovXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApO1xuXG5cdFx0JiA+IC5jay1idXR0b24tZmluZCB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0LyogQmVlZiB0aGUgZmluZCBidXR0b24gdXAgYSBsaXR0bGUuIEl0J3MgdGhlIG1haW4gYWN0aW9uIGJ1dHRvbiBpbiB0aGUgZm9ybSAqL1xuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRcdHdpZHRoOiAzMDBweDtcblxuXHRcdC8qIERvbid0IGxldCB0aGUgZm9ybSBvdmVyZmxvdyBmcm9tIHRoZSBkaWFsb2cgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtY29tbWVyY2lhbC9pc3N1ZXMvNTkxMykgKi9cblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGlucHV0cyBhcmVhLiAqL1xuXHRcdCYuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cblx0XHQmLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdCYgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBSZXNpemUgZHJvcGRvd24ncyBidXR0b24gbGFiZWwuICovXG4uY2suY2stZHJvcGRvd24uY2staGVhZGluZy1kcm9wZG93biB7XG5cdCYgLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cblxuXHQmIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aDogY2FsYygxMDAlIC0gMS41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtaGVpZ2h0OiAxMGVtO1xuXHQtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcblx0LS1jay1odG1sLWVtYmVkLWNvbnRlbnQtbWluLWhlaWdodDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcjogaHNsKDBkZWcgMCUgNDUlKTtcbn1cblxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdCY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSBkYXNoZWQgdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0fVxuXG5cdC8qIEhUTUwgZW1iZWQgd2lkZ2V0IGl0c2VsZiBzaG91bGQgcmVzcGVjdCBVSSBsYW5ndWFnZSBkaXJlY3Rpb24gKi9cblx0JltkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQvKiAtLS0tLSBFbWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSk7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXTo6YmVmb3JlIHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdC8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsIGJ1dCBpdCBvbmx5IGNvbGxpZGVzIGluIExUUiBsYW5ndWFnZXMgKi9cblx0JltkaXI9XCJsdHJcIl0gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogNTBweDtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgJi5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stYmx1cnJlZCkgJi5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlICY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOmhvdmVyOjpiZWZvcmUge1xuXHRcdHRvcDogMHB4O1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19jb250ZW50LXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5cblx0LyogVGhlIHN3aXRjaCBtb2RlIGJ1dHRvbiB3cmFwcGVyLiAqL1xuXHQmIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIHtcblx0XHR0b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdCYgLmNrLWJ1dHRvbi5yYXctaHRtbC1lbWJlZF9fc2F2ZS1idXR0b24ge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX2NhbmNlbC1idXR0b24ge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0cmlnaHQ6IGF1dG87XG5cdH1cblxuXHQvKiBUaGUgZWRpdCBzb3VyY2UgZWxlbWVudC4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX3NvdXJjZSB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWhlaWdodCk7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aCk7XG5cdFx0cmVzaXplOiBub25lO1xuXHRcdG1pbi13aWR0aDogMDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdFx0dGFiLXNpemU6IDQ7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpOyAvKiBTYWZhcmkgbmVlZHMgdGhpcy4gKi9cblxuXHRcdC8qIEhUTUwgY29kZSBpcyBkaXJlY3Rpb27igJNhZ25vc3RpYy4gKi9cblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGRpcmVjdGlvbjogbHRyO1xuXG5cdFx0JltkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXG5cdFx0XHQvKiBTYWZhcmkgbmVlZHMgdGhpcyBmb3IgdGhlIHByb3BlciB0ZXh0IGNvbG9yIGluIGRpc2FibGVkIGlucHV0IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzIwKS4gKi9cblx0XHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcik7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXG5cdC8qIFRoZSBwcmV2aWV3IGRhdGEgY29udGFpbmVyLiAqL1xuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LW1pbi1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXG5cdFx0LyogRGlzYWJsZSBhbGwgbW91c2UgaW50ZXJhY3Rpb24gYXMgbG9uZyBhcyB0aGUgZWRpdG9yIGlzIG5vdCByZWFk4oCTb25seS4gKi9cblx0XHQuY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLXJlYWQtb25seSkgJiB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHQmID4gKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoOiAyNTBweDtcbn1cblxuLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxMDAlO1xuXG5cdCYgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cge1xuXHRcdGdyaWQtY29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmIC5jay1idXR0b24tc2F2ZSxcblx0XHQmIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSB7XG5cdCYgPiAuY2suY2stYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay1jb2xsYXBzaWJsZSB7XG5cdFx0Jjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdG1pbi13aWR0aDogdmFyKC0tY2staW1hZ2UtaW5zZXJ0LWluc2VydC1ieS11cmwtd2lkdGgpO1xuXHR9XG5cblx0LyogVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHRoZXJlIGFyZSBubyBvdGhlciBpbnRlZ3JhdGlvbnMgY29uZmlndXJlZCB0aGFuIGluc2VydCBieSBVUkwgKi9cblx0JiA+IC5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb246IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZDogaHNsKDEyMCwgMTAwJSwgMjclKTtcblxuXHQvKiBNYXRjaCB0aGUgaWNvbiBzaXplIHdpdGggdGhlIGxpbmtlZCBpbWFnZSBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgbGluayBpbWFnZSBmZWF0dXJlLiAqL1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemU6IDIwO1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoOiAycHg7XG5cdC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZTogY2xhbXAoMHB4LCAxMDAlIC0gNTBweCwgMXB4KTtcbn1cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0b3BhY2l0eTogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZCk7XG5cdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93LCBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcywgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXMsIDUwMG1zO1xuXG5cdC8qIFRvIG1ha2UgYW5pbWF0aW9uIHNjYWxhYmxlLiAqL1xuXHRmb250LXNpemU6IGNhbGMoMXB4ICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIEhpZGUgY29tcGxldGVkIHVwbG9hZCBpY29uIGFmdGVyIDMgc2Vjb25kcy4gKi9cblx0YW5pbWF0aW9uLWRlbGF5OiAwbXMsIDMwMDBtcztcblxuXHQvKlxuXHQgKiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdCAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHQgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IGNhbGModmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblxuXHQvKiBUaGlzIGlzIGNoZWNrIGljb24gZWxlbWVudCBtYWRlIGZyb20gYm9yZGVyLXdpZHRoIG1peGVkIHdpdGggYW5pbWF0aW9ucy4gKi9cblx0Jjo6YWZ0ZXIge1xuXHRcdC8qIEJlY2F1c2Ugb2YgYm9yZGVyIHRyYW5zZm9ybWF0aW9uIHdlIG5lZWQgdG8gXCJoYXJkIGNvZGVcIiBsZWZ0IHBvc2l0aW9uLiAqL1xuXHRcdGxlZnQ6IDI1JTtcblxuXHRcdHRvcDogNTAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHdpZHRoOiAwO1xuXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxMzVkZWcpO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuXHRcdGJvcmRlci10b3A6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXG5cdFx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWNoZWNrO1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcblxuXHRcdC8qICMxMDk1LiBXaGlsZSByZXNldCBpcyBub3QgcHJvdmlkaW5nIHByb3BlciBib3gtc2l6aW5nIGZvciBwc2V1ZG9lbGVtZW50cywgd2UgbmVlZCB0byBoYW5kbGUgaXQuICovXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0d2lkdGg6IDAuM2VtO1xuXHRcdFx0aGVpZ2h0OiAwLjQ1ZW07XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdyB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjayB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQzMyUge1xuXHRcdHdpZHRoOiAwLjNlbTtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwLjQ1ZW07XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOiBoc2woMCwgMCUsIDcwJSk7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplOiAzMnB4O1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW86IDIuODtcbn1cblxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG5cblx0Ji5pbWFnZS1pbmxpbmUge1xuXHRcdHdpZHRoOiBjYWxjKCAyICogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKSAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pICk7XG5cdH1cblxuXHQmIGltZyB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIGlzIGFuIGFyYml0cmFyeSBhc3BlY3QgZm9yIGEgMXgxIHB4IEdJRiB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLiBOb3QgdG9vIHRhbGwsIG5vdCB0b28gc2hvcnQuXG5cdFx0ICogVGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgdGhpcyBudW1iZXIgZXhjZXB0IHRoYXQgaXQgc2hvdWxkIG1ha2UgdGhlIGltYWdlIHBsYWNlaG9sZGVyIGxvb2sgbGlrZVxuXHRcdCAqIGEgcmVhbCBpbWFnZSBkdXJpbmcgdGhpcyBzaG9ydCBwZXJpb2QgYWZ0ZXIgdGhlIHVwbG9hZCBzdGFydGVkIGFuZCBiZWZvcmUgdGhlIGltYWdlIHdhcyByZWFkIGZyb20gdGhlXG5cdFx0ICogZmlsZSBzeXN0ZW0gKGFuZCBhIHJpY2ggcHJldmlldyB3YXMgbG9hZGVkKS5cblx0XHQgKi9cblx0XHRhc3BlY3QtcmF0aW86IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXHR9XG59XG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyKTtcblx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRhbmltYXRpb246IGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIgMXMgbGluZWFyIGluZmluaXRlO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2UsXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0LyogU2hvd2luZyBhbmltYXRpb24uICovXG5cdFx0Ji5jay1hcHBlYXIge1xuXHRcdFx0YW5pbWF0aW9uOiBmYWRlSW4gNzAwbXM7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXHQmIC5pbWFnZSAuY2stcHJvZ3Jlc3MtYmFyLFxuXHQmIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0d2lkdGg6IDA7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAxMDBtcztcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS13aWR0aDogMzQwcHg7XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdDpyb290IHtcblx0XHQtLWNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS13aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSB7XG5cdCYuY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHR3aWR0aDogdmFyKC0tY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtLXdpZHRoKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0td2lkdGg6IDM0MHB4O1xufVxuXG5AbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHQ6cm9vdCB7XG5cdFx0LS1jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0td2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0ge1xuXHQmLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWltYWdlLWN1c3RvbS1yZXNpemUtZm9ybS13aWR0aCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIENsYXNzIGFkZGVkIHRvIHNwYW4gZWxlbWVudCBzdXJyb3VuZGluZyBjdXJyZW50bHkgc2VsZWN0ZWQgbGluay4gKi9cbi5jayAuY2stbGlua19zZWxlY3RlZCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cblx0LyogR2l2ZSBsaW5rZWQgaW5saW5lIGltYWdlcyBzb21lIG91dGxpbmUgdG8gbGV0IHRoZSB1c2VyIGtub3cgdGhleSBhcmUgYWxzbyBwYXJ0IG9mIHRoZSBsaW5rLiAqL1xuXHQmIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cdH1cbn1cblxuLypcbiAqIENsYXNzZXMgdXNlZCBieSB0aGUgXCJmYWtlIHZpc3VhbCBzZWxlY3Rpb25cIiBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRlbnQgd2hlbiBhbiBpbnB1dFxuICogaW4gdGhlIGxpbmsgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1saW5rLXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb24pO1xufVxuXG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWxpbmstYm9va21hcmstaWNvbi1zaXplOiBjYWxjKCB2YXIoLS1jay1pY29uLXNpemUpICogMC43KTsgLyogMC43ID0gMTQvMjAgY2F1c2UgZGVmYXVsdCB0aGUgaWNvbiBzaXplIGlzIDIwcHggKi9cbn1cblxuLmNrLmNrLXRvb2xiYXIuY2stbGluay10b29sYmFyIHtcblx0JiA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3IHtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1saW5rLWRlZmF1bHQpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdCYgLmNrLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG5cdFx0LyogTWF0Y2ggdGhlIGJveCBtb2RlbCBvZiB0aGUgbGluayBlZGl0b3IgZm9ybSdzIGlucHV0IHNvIHRoZSBiYWxsb29uXG5cdFx0ZG9lcyBub3QgY2hhbmdlIHdpZHRoIHdoZW4gbW92aW5nIGJldHdlZW4gYWN0aW9ucyBhbmQgdGhlIGZvcm0uICovXG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdH1cblxuXHQmLFxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cblxuXHQmLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLmNrLWljb24uY2stYnV0dG9uX19pY29uIHtcblx0XHR3aWR0aDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmOmhhcyggLmNrLWljb24gKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkgKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDM0MHB4O1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSB0ZXh0IGluc2lkZSB0aGUgbGluayBwcm92aWRlcnMgbGlzdCBidXR0b24uICovXG5cdC0tY2stbGluay1wcm92aWRlci1saXN0LWl0ZW0tdGV4dC1oZWlnaHQ6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpO1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSBsaW5rIHByb3ZpZGVycyBsaXN0IGl0ZW0gY29udGFpbmVkIHBhZGRpbmdzLiAqL1xuXHQtLWNrLWxpbmstcHJvdmlkZXItbGlzdC1pdGVtLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS10ZXh0LWhlaWdodCkgKyB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSArIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcbn1cblxuQG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0OnJvb3Qge1xuXHRcdC0tY2stbGluay1wYW5lbC13aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLyogR2VuZXJpYyBjbGFzcyB0aGF0IHdyYXBzIGVhY2ggbGluayBiYWxsb29uIHZpZXcuICovXG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0ge1xuXHR3aWR0aDogdmFyKC0tY2stbGluay1wYW5lbC13aWR0aCk7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXG5cdCYuY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3Qge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0XHQvKiBUaGUgbGlzdCBzaG91bGQgYmUgc2Nyb2xsYWJsZSB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gNCBpdGVtcy4gKi9cblx0XHQmOmhhcyguY2stbGlzdF9faXRlbTpudGgtY2hpbGQobiArIDUpKSB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdC8qIFNjcm9sbCBzaG91bGQgYXBwZWFyIHdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiA1IGl0ZW0gb24gdGhlIGxpc3QuXG5cdFx0XHQqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIC0gaXMgYSBmb3JtIHBhZGRpbmcuXG5cdFx0XHQqIDFweCAtIGlzIGEgYm9yZGVyIHdpZHRoLiAqL1xuXHRcdFx0bWF4LWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS1oZWlnaHQpICogNCArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpICsgMXB4KTtcblx0XHR9XG5cblx0XHQmIC5jay1saW5rX19idXR0b24ge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLiAqL1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZTogMjA7XG5cdC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlOiBjbGFtcCgwcHgsIDEwMCUgLSA1MHB4LCAxcHgpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cblx0JiBmaWd1cmUuaW1hZ2UgPiBhLFxuXHQmIGEgc3Bhbi5pbWFnZS1pbmxpbmUge1xuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0XHRcdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIHVwbG9hZCBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgaW1hZ2UgdXBsb2FkIGZlYXR1cmUuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXHRcdFx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMCUsIC40KTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJhV1YzUW05NFBTSXdJREFnTWpBZ01qQWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeExqQTNOeUF4TlNBdU9Ua3hMVEV1TkRFMllTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9TNDRObXd0TVM0eE5EZ2dNUzQyTkdFdU56UTRMamMwT0NBd0lEQWdNUzB1TWpFM0xqSXdOaUExTGpJMU1TQTFMakkxTVNBd0lEQWdNUzA0TGpVd015MDFMamsxTlM0M05ERXVOelF4SURBZ01DQXhJQzR4TWkwdU1qYzBiREV1TVRRM0xURXVOak01WVM0M05TNDNOU0F3SURFZ01TQXhMakl5T0M0NE5rdzBMamt6TXlBeE1DNDNiQzR3TURZdU1EQXpZVE11TnpVZ015NDNOU0F3SURBZ01DQTJMakV6TWlBMExqSTVOR3d1TURBMkxqQXdOSHB0TlM0ME9UUXROUzR6TXpWaExqYzBPQzQzTkRnZ01DQXdJREV0TGpFeUxqSTNOR3d0TVM0eE5EY2dNUzQyTXpsaExqYzFMamMxSURBZ01TQXhMVEV1TWpJNExTNDRObXd1T0RZdE1TNHlNMkV6TGpjMUlETXVOelVnTUNBd0lEQXROaTR4TkRRdE5DNHpNREZzTFM0NE5pQXhMakl5T1dFdU56VXVOelVnTUNBd0lERXRNUzR5TWprdExqZzJiREV1TVRRNExURXVOalJoTGpjME9DNDNORGdnTUNBd0lERWdMakl4TnkwdU1qQTJJRFV1TWpVeElEVXVNalV4SURBZ01DQXhJRGd1TlRBeklEVXVPVFUxZW0wdE5DNDFOak10TWk0MU16SmhMamMxTGpjMUlEQWdNQ0F4SUM0eE9EUWdNUzR3TkRWc0xUTXVNVFUxSURRdU5UQTFZUzQzTlM0M05TQXdJREVnTVMweExqSXlPUzB1T0Rac015NHhOVFV0TkM0MU1EWmhMamMxTGpjMUlEQWdNQ0F4SURFdU1EUTFMUzR4T0RSNklpOCtQQzl6ZG1jK1wiKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTRweDtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXG5cdFx0XHQvKlxuXHRcdFx0KiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdFx0XHQqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHRcdFx0Ki9cblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR3aWR0aDogY2FsYyh2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplKSk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWxpbmstcHJvcGVydGllcy13aWR0aDogMzQwcHg7XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWxpbmstcHJvcGVydGllcy13aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLmNrLmNrLWxpbmstcHJvcGVydGllcyB7XG5cdHdpZHRoOiB2YXIoLS1jay1saW5rLXByb3BlcnRpZXMtd2lkdGgpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1saW5rLXByb3ZpZGVycy13aWR0aDogMzQwcHg7XG5cdC0tY2stbGluay1saXN0LXZpZXctbWF4LWhlaWdodDogMjQwcHg7XG5cdC0tY2stbGluay1saXN0LXZpZXctaWNvbi1zaXplOiBjYWxjKCB2YXIoLS1jay1pY29uLXNpemUpICogMC44KTsgLyogMC44ID0gMTYvMjAgY2F1c2UgZGVmYXVsdCB0aGUgaWNvbiBzaXplIGlzIDIwcHggKi9cbn1cblxuQG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0OnJvb3Qge1xuXHRcdC0tY2stbGluay1wcm92aWRlcnMtd2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5jay5jay1saW5rLXByb3ZpZGVycyB7XG5cdHdpZHRoOiB2YXIoLS1jay1saW5rLXByb3ZpZGVycy13aWR0aCk7XG5cblx0JiAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5cdCYgPiAuY2stbGluay1wcm92aWRlcnNfX2xpc3Qge1xuXHRcdG1heC1oZWlnaHQ6IG1pbiggdmFyKC0tY2stbGluay1saXN0LXZpZXctbWF4LWhlaWdodCksIDQwdmggKTtcblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHQmID4gLmNrLWljb24ge1xuXHRcdFx0XHR3aWR0aDogdmFyKC0tY2stbGluay1saXN0LXZpZXctaWNvbi1zaXplKTtcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1saW5rLWxpc3Qtdmlldy1pY29uLXNpemUpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay1saW5rX19lbXB0eS1saXN0LWluZm8ge1xuXHRcdHBhZGRpbmc6IGNhbGMoIDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIHtcblx0LyogV2hlbiB0aGVyZSBhcmUgbm8gbGlzdCBzdHlsZXMgYW5kIHRoZXJlIGlzIG5vIGNvbGxhcHNpYmxlLiAqL1xuXHQmLmNrLWxpc3QtcHJvcGVydGllc193aXRob3V0LXN0eWxlcyB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmID4gKiB7XG5cdFx0XHRtaW4td2lkdGg6IDE0ZW07XG5cblx0XHRcdCYgKyAqIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogV2hlbiB0aGUgbnVtYmVyZWQgbGlzdCBwcm9wZXJ0eSBmaWVsZHMgKHN0YXJ0IGF0LCByZXZlcnNlZCkgc2hvdWxkIGJlIGRpc3BsYXllZCxcblx0ICogbW9yZSBob3Jpem9udGFsIHNwYWNlIGlzIG5lZWRlZC4gUmVjb25maWd1cmUgdGhlIHN0eWxlIGdyaWQgdG8gY3JlYXRlIHRoYXQgc3BhY2UuXG5cdCAqL1xuXHQmLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMge1xuXHRcdCYgPiAuY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCggNCwgYXV0byApO1xuXHRcdH1cblxuXHRcdC8qIFdoZW4gbGlzdCBzdHlsZXMgYXJlIHJlbmRlcmVkIGFuZCBwcm9wZXJ0eSBmaWVsZHMgYXJlIGluIGEgY29sbGFwc2libGUuICovXG5cdFx0JiA+IC5jay1jb2xsYXBzaWJsZSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdFx0XHQmID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiB7XG5cdFx0XHRcdCYgPiAqIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRcdCYgKyAqIHtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fc3RhcnQtaW5kZXggLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy10aW55KSk7XG5cblx0XHQmOmFjdGl2ZSwgJjpob3ZlciB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZTogNDRweDtcbn1cblxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3Qge1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCggMywgYXV0byApO1xuXHRyb3ctZ2FwOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0JiAuY2stYnV0dG9uIHtcblx0XHQvKiBNYWtlIHRoZSBidXR0b24gbG9vayBsaWtlIGEgdGh1bWJuYWlsICh0aGUgaWNvbiBcInRha2VzIGl0IGFsbFwiKS4gKi9cblx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0Lypcblx0XHQgKiBCdXR0b25zIGFyZSBhbGlnbmVkIGJ5IHRoZSBncmlkIHNvIGRpc2FibGUgZGVmYXVsdCBidXR0b24gbWFyZ2lucyB0byBub3QgY29sbGlkZSB3aXRoIHRoZVxuXHRcdCAqIGdhcHMgaW4gdGhlIGdyaWQuXG5cdFx0ICovXG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIGJ1dHRvbiBib3JkZXIgKHdoaWNoIGlzIGRpc3BsYXllZCBvbiBmb2N1cywgQlRXKSBkb2VzIG5vdCBzdGVhbCBwaXhlbHNcblx0XHQgKiBmcm9tIHRoZSBidXR0b24gZGltZW5zaW9ucyBhbmQsIGFzIGEgcmVzdWx0LCBkZWNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgaWNvblxuXHRcdCAqICh3aGljaCBiZWNvbWVzIGJsdXJyeSBhcyBpdCBzY2FsZXMgZG93bikuXG5cdFx0ICovXG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplOiAzZW07XG5cblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dDogaHNsKDAsIDAlLCA0NiUpO1xuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xufVxuXG4uY2stbWVkaWFfX3dyYXBwZXIge1xuXHRtYXJnaW46IDAgYXV0bztcblxuXHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdHBhZGRpbmc6IGNhbGMoIDMgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSApO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci1pY29uLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci1pY29uLXNpemUpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG5cdFx0XHQmIC5jay1pY29uIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQpO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyKTtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJvcGVuLnNwb3RpZnkuY29tXCJdIHtcblx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDM4MHB4O1xuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZ29vZ2xlLmNvbS9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuZ29vZ2xlLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmFwcC5nb28uZ2xcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5UQXVNemM0SWlCb1pXbG5hSFE5SWpJMU5DNHhOamNpSUhacFpYZENiM2c5SWpBZ01DQTJOaTR5TkRZZ05qY3VNalE0SWo0OFp5QjBjbUZ1YzJadmNtMDlJblJ5WVc1emJHRjBaU2d0TVRjeUxqVXpNU0F0TWpFNExqUTFOU2tnYzJOaGJHVW9Mams0TURFeUtTSStQSEpsWTNRZ2NuazlJalV1TWpNNElpQnllRDBpTlM0eU16Z2lJSGs5SWpJek1TNHpPVGtpSUhnOUlqRTNOaTR3TXpFaUlHaGxhV2RvZEQwaU5qQXVNRGs1SWlCM2FXUjBhRDBpTmpBdU1EazVJaUJtYVd4c1BTSWpNelJoTmpZNElpQndZV2x1ZEMxdmNtUmxjajBpYldGeWEyVnljeUJ6ZEhKdmEyVWdabWxzYkNJdlBqeHdZWFJvSUdROUlrMHlNRFl1TkRjM0lESTJNQzQ1YkMweU9DNDVPRGNnTWpndU9UZzNZVFV1TWpFNElEVXVNakU0SURBZ01DQXdJRE11TnpnZ01TNDJNV2cwT1M0Mk1qRmpNUzQyT1RRZ01DQXpMakU1TFM0M09UZ2dOQzR4TkRZdE1pNHdNemQ2SWlCbWFXeHNQU0lqTldNNE9HTTFJaTgrUEhCaGRHZ2daRDBpVFRJeU5pNDNORElnTWpJeUxqazRPR010T1M0eU5qWWdNQzB4Tmk0M056Y2dOeTR4TnkweE5pNDNOemNnTVRZdU1ERTBMakF3TnlBeUxqYzJNaTQyTmpNZ05TNDBOelFnTWk0d09UTWdOeTQ0TnpVdU5ETXVOekF6TGpneklERXVOREE0SURFdU1Ua2dNaTR4TURjdU16TXpMalV3TWk0Mk5TQXhMakF3TlM0NU5TQXhMalV3T0M0ek5ETXVORGMzTGpZM015NDVOVGN1T1RnNElERXVORFFnTVM0ek1TQXhMamMyT1NBeUxqVWdNeTQxTURJZ015NDJNemNnTlM0eE5qZ3VOemt6SURFdU1qYzFJREV1TmpneklESXVOalFnTWk0ME5qWWdNeTQ1T1NBeUxqTTJNeUEwTGpBNU5DQTBMakF3TnlBNExqQTVNaUEwTGpZZ01UTXVPVEUwZGk0d01USmpMakU0TWk0ME1USXVOVEUyTGpZMk5pNDROemt1TmpZM0xqUXdNeTB1TURBeExqYzJPQzB1TXpFMExqa3pMUzQzT1RrdU5qQXpMVFV1TnpVMklESXVNak00TFRrdU56STVJRFF1TlRnMUxURXpMamM1TkM0M09ESXRNUzR6TlNBeExqWTNNeTB5TGpjeE5TQXlMalEyTlMwekxqazVJREV1TVRNM0xURXVOalkySURJdU16STRMVE11TkNBekxqWXpPQzAxTGpFMk9TNHpNVFV0TGpRNE1pNDJORFV0TGprMk1pNDVPRGd0TVM0ME16a3VNeTB1TlRBekxqWXhOeTB4TGpBd05pNDVOUzB4TGpVd09DNHpOVGt0TGpjdU56WXRNUzQwTURRZ01TNHhPUzB5TGpFd055QXhMalF5TmkweUxqUXdNaUF5TFRVdU1URTBJREl1TURBMExUY3VPRGMxSURBdE9DNDRORFF0Tnk0MU1URXRNVFl1TURFMExURTJMamMzTmkweE5pNHdNVFI2SWlCbWFXeHNQU0lqWkdRMFlqTmxJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanhsYkd4cGNITmxJSEo1UFNJMUxqVTJOQ0lnY25nOUlqVXVPREk0SWlCamVUMGlNak01TGpBd01pSWdZM2c5SWpJeU5pNDNORElpSUdacGJHdzlJaU00TURKa01qY2lJSEJoYVc1MExXOXlaR1Z5UFNKdFlYSnJaWEp6SUhOMGNtOXJaU0JtYVd4c0lpOCtQSEJoZEdnZ1pEMGlUVEU1TUM0ek1ERWdNak0zTGpJNE0yTXROQzQyTnlBd0xUZ3VORFUzSURNdU9EVXpMVGd1TkRVM0lEZ3VOakEyY3pNdU56ZzJJRGd1TmpBM0lEZ3VORFUzSURndU5qQTNZek11TURReklEQWdOQzQ0TURZdExqazFPQ0EyTGpNek55MHlMalV4TmlBeExqVXpMVEV1TlRVM0lESXVNRGczTFRNdU9URXpJREl1TURnM0xUWXVNamtnTUMwdU16WXlMUzR3TWpNdExqY3lNaTB1TURZMExURXVNRGM1YUMwNExqSTFOM1l6TGpBME0yZzBMamcxWXkwdU1UazNMamMxT1MwdU5UTXhJREV1TkRVdE1TNHdOVGdnTVM0NU9EWXRMamswTWk0NU5UZ3RNaTR3TWpnZ01TNDFORGd0TXk0NU1ERWdNUzQxTkRndE1pNDROellnTUMwMUxqSXdPQzB5TGpNM01pMDFMakl3T0MwMUxqSTVPU0F3TFRJdU9USTJJREl1TXpNeUxUVXVNams1SURVdU1qQTRMVFV1TWprNUlERXVNems1SURBZ01pNDJNVGd1TkRBM0lETXVOVGcwSURFdU1qa3piREl1TXpneExUSXVNemhqTUMwdU1EQXlMUzR3TURNdExqQXdOQzB1TURBMExTNHdNRFV0TVM0MU9EZ3RNUzQxTWpRdE15NDJNaTB5TGpJeE5TMDFMamsxTlMweUxqSXhOWHB0TkM0ME15QTFMalkyYkM0d01ETXVNREEyZGkwdU1EQXplaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRTFMakU0TkNBeU5URXVPVEk1YkMwM0xqazRJRGN1T1RjNUlESTRMalEzTnlBeU9DNDBOelZqTGpJNE55MHVOalE1TGpRME9TMHhMak0yTmk0ME5Ea3RNaTR4TWpOMkxUTXhMakUyTldNdExqUTJPUzQyTnpVdExqa3pOQ0F4TGpNME9TMHhMak00TWlBeUxqQXdOUzB1TnpreUlERXVNamMxTFRFdU5qZ3lJREl1TmpRdE1pNDBOalVnTXk0NU9TMHlMak0wTnlBMExqQTJOUzB6TGprNE1pQTRMakF6T0MwMExqVTROU0F4TXk0M09UUXRMakUyTWk0ME9EVXRMalV5Tnk0M09UZ3RMamt6TGpjNU9TMHVNell6TFM0d01ERXRMalk1TnkwdU1qVTFMUzQ0TnprdExqWTJOM1l0TGpBeE1tTXRMalU1TXkwMUxqZ3lNaTB5TGpJek55MDVMamd5TFRRdU5pMHhNeTQ1TVRRdExqYzRNeTB4TGpNMUxURXVOamN6TFRJdU56RTFMVEl1TkRZMkxUTXVPVGt0TVM0eE16Y3RNUzQyTmpZdE1pNHpNamN0TXk0MExUTXVOak0zTFRVdU1UWTViQzB1TURBeUxTNHdNRE42SWlCbWFXeHNQU0lqWXpOak0yTXpJaTgrUEhCaGRHZ2daRDBpVFRJeE1pNDVPRE1nTWpRNExqUTVOV3d0TXpZdU9UVXlJRE0yTGprMU0zWXVPREV5WVRVdU1qSTNJRFV1TWpJM0lEQWdNQ0F3SURVdU1qTTRJRFV1TWpNNGFERXVNREUxYkRNMUxqWTJOaTB6TlM0Mk5qWmhNVE0yTGpJM05TQXhNell1TWpjMUlEQWdNQ0F3TFRJdU56WTBMVE11T1NBek55NDFOelVnTXpjdU5UYzFJREFnTUNBd0xTNDVPRGt0TVM0ME5HTXRMakk1T1MwdU5UQXpMUzQyTVRZdE1TNHdNRFl0TGprMUxURXVOVEE0TFM0d09ETXRMakUyTWkwdU1UYzJMUzR6TWpZdExqSTJOQzB1TkRnNWVpSWdabWxzYkQwaUkyWmtaR00wWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRXhMams1T0NBeU5qRXVNRGd6YkMwMkxqRTFNaUEyTGpFMU1TQXlOQzR5TmpRZ01qUXVNalkwYUM0M09ERmhOUzR5TWpjZ05TNHlNamNnTUNBd0lEQWdOUzR5TXprdE5TNHlNemgyTFRFdU1EUTFlaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OEwyYytQQzl6ZG1jKyk7XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZDogaHNsKDIyMCwgNDYlLCA0OCUpO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NDhjM1puSUhkcFpIUm9QU0l4TURJMGNIZ2lJR2hsYVdkb2REMGlNVEF5TkhCNElpQjJhV1YzUW05NFBTSXdJREFnTVRBeU5DQXhNREkwSWlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaVBpQWdJQ0FnSUNBZ1BIUnBkR3hsUGtacGJHd2dNVHd2ZEdsMGJHVStJQ0FnSUR4a1pYTmpQa055WldGMFpXUWdkMmwwYUNCVGEyVjBZMmd1UEM5a1pYTmpQaUFnSUNBOFpHVm1jejQ4TDJSbFpuTStJQ0FnSUR4bklHbGtQU0pRWVdkbExURWlJSE4wY205clpUMGlibTl1WlNJZ2MzUnliMnRsTFhkcFpIUm9QU0l4SWlCbWFXeHNQU0p1YjI1bElpQm1hV3hzTFhKMWJHVTlJbVYyWlc1dlpHUWlQaUFnSUNBZ0lDQWdQR2NnYVdROUltWk1iMmR2WDFkb2FYUmxJaUJtYVd4c1BTSWpSa1pHUmtaRklqNGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOT1RZM0xqUTROQ3d3SUV3MU5pNDFNVGNzTUNCRE1qVXVNekEwTERBZ01Dd3lOUzR6TURRZ01DdzFOaTQxTVRjZ1REQXNPVFkzTGpRNE15QkRNQ3c1T1RndU5qazBJREkxTGpJNU55d3hNREkwSURVMkxqVXlNaXd4TURJMElFdzFORGNzTVRBeU5DQk1OVFEzTERZeU9DQk1OREUwTERZeU9DQk1OREUwTERRM015Qk1OVFEzTERRM015Qk1OVFEzTERNMU9TNHdNamtnUXpVME55d3lNall1TnpZM0lEWXlOeTQzTnpNc01UVTBMamMwTnlBM05EVXVOelUyTERFMU5DNDNORGNnUXpnd01pNHlOamtzTVRVMExqYzBOeUE0TlRBdU9EUXlMREUxT0M0NU5UVWdPRFkxTERFMk1DNDRNellnVERnMk5Td3lPVGtnVERjNE15NHpPRFFzTWprNUxqQXpOeUJETnpFNUxqTTVNU3d5T1RrdU1ETTNJRGN3Tnl3ek1qa3VOVEk1SURjd055d3pOelF1TWpjeklFdzNNRGNzTkRjeklFdzROakF1TkRnM0xEUTNNeUJNT0RRd0xqVXdNU3cyTWpnZ1REY3dOeXcyTWpnZ1REY3dOeXd4TURJMElFdzVOamN1TkRnMExERXdNalFnUXprNU9DNDJPVGNzTVRBeU5DQXhNREkwTERrNU9DNDJPVGNnTVRBeU5DdzVOamN1TkRnMElFd3hNREkwTERVMkxqVXhOU0JETVRBeU5Dd3lOUzR6TURNZ09UazRMalk1Tnl3d0lEazJOeTQwT0RRc01DSWdhV1E5SWtacGJHd3RNU0krUEM5d1lYUm9QaUFnSUNBZ0lDQWdQQzluUGlBZ0lDQThMMmMrUEM5emRtYyspO1xuXHRcdH1cblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMjIwLCAxMDAlLCA5MCUpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTEzNWRlZyxoc2woMjQ2LCAxMDAlLCAzOSUpLGhzbCgzMDIsIDEwMCUsIDM2JSksaHNsKDAsIDEwMCUsIDQ4JSkpO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NDhjM1puSUhkcFpIUm9QU0kxTURSd2VDSWdhR1ZwWjJoMFBTSTFNRFJ3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJRFV3TkNBMU1EUWlJSFpsY25OcGIyNDlJakV1TVNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWlCNGJXeHVjenA0YkdsdWF6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M5NGJHbHVheUkrSUNBZ0lDQWdJQ0E4ZEdsMGJHVStaMng1Y0dndGJHOW5iMTlOWVhreU1ERTJQQzkwYVhSc1pUNGdJQ0FnUEdSbGMyTStRM0psWVhSbFpDQjNhWFJvSUZOclpYUmphQzQ4TDJSbGMyTStJQ0FnSUR4a1pXWnpQaUFnSUNBZ0lDQWdQSEJ2YkhsbmIyNGdhV1E5SW5CaGRHZ3RNU0lnY0c5cGJuUnpQU0l3SURBdU1UVTVJRFV3TXk0NE5ERWdNQzR4TlRrZ05UQXpMamcwTVNBMU1ETXVPVFFnTUNBMU1ETXVPVFFpUGp3dmNHOXNlV2R2Ymo0Z0lDQWdQQzlrWldaelBpQWdJQ0E4WnlCcFpEMGlaMng1Y0dndGJHOW5iMTlOWVhreU1ERTJJaUJ6ZEhKdmEyVTlJbTV2Ym1VaUlITjBjbTlyWlMxM2FXUjBhRDBpTVNJZ1ptbHNiRDBpYm05dVpTSWdabWxzYkMxeWRXeGxQU0psZG1WdWIyUmtJajRnSUNBZ0lDQWdJRHhuSUdsa1BTSkhjbTkxY0MweklqNGdJQ0FnSUNBZ0lDQWdJQ0E4YldGemF5QnBaRDBpYldGemF5MHlJaUJtYVd4c1BTSjNhR2wwWlNJK0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4MWMyVWdlR3hwYm1zNmFISmxaajBpSTNCaGRHZ3RNU0krUEM5MWMyVStJQ0FnSUNBZ0lDQWdJQ0FnUEM5dFlYTnJQaUFnSUNBZ0lDQWdJQ0FnSUR4bklHbGtQU0pEYkdsd0xUSWlQand2Wno0Z0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NalV4TGpreU1Td3dMakUxT1NCRE1UZ3pMalV3TXl3d0xqRTFPU0F4TnpRdU9USTBMREF1TkRRNUlERTBPQzR3TlRRc01TNDJOelVnUXpFeU1TNHlOQ3d5TGpnNU9DQXhNREl1T1RJM0xEY3VNVFUzSURnMkxqa3dNeXd4TXk0ek9EVWdRemN3TGpNek55d3hPUzQ0TWpJZ05UWXVNamc0TERJNExqUXpOaUEwTWk0eU9ESXNOREl1TkRReElFTXlPQzR5Tnpjc05UWXVORFEzSURFNUxqWTJNeXczTUM0ME9UWWdNVE11TWpJMkxEZzNMakEyTWlCRE5pNDVPVGdzTVRBekxqQTROaUF5TGpjek9Td3hNakV1TXprNUlERXVOVEUyTERFME9DNHlNVE1nUXpBdU1qa3NNVGMxTGpBNE15QXdMREU0TXk0Mk5qSWdNQ3d5TlRJdU1EZ2dRekFzTXpJd0xqUTVOeUF3TGpJNUxETXlPUzR3TnpZZ01TNDFNVFlzTXpVMUxqazBOaUJETWk0M016a3NNemd5TGpjMklEWXVPVGs0TERRd01TNHdOek1nTVRNdU1qSTJMRFF4Tnk0d09UY2dRekU1TGpZMk15dzBNek11TmpZeklESTRMakkzTnl3ME5EY3VOekV5SURReUxqSTRNaXcwTmpFdU56RTRJRU0xTmk0eU9EZ3NORGMxTGpjeU15QTNNQzR6TXpjc05EZzBMak16TnlBNE5pNDVNRE1zTkRrd0xqYzNOU0JETVRBeUxqa3lOeXcwT1RjdU1EQXlJREV5TVM0eU5DdzFNREV1TWpZeElERTBPQzR3TlRRc05UQXlMalE0TkNCRE1UYzBMamt5TkN3MU1ETXVOekVnTVRnekxqVXdNeXcxTURRZ01qVXhMamt5TVN3MU1EUWdRek15TUM0ek16Z3NOVEEwSURNeU9DNDVNVGNzTlRBekxqY3hJRE0xTlM0M09EY3NOVEF5TGpRNE5DQkRNemd5TGpZd01TdzFNREV1TWpZeElEUXdNQzQ1TVRRc05EazNMakF3TWlBME1UWXVPVE00TERRNU1DNDNOelVnUXpRek15NDFNRFFzTkRnMExqTXpOeUEwTkRjdU5UVXpMRFEzTlM0M01qTWdORFl4TGpVMU9TdzBOakV1TnpFNElFTTBOelV1TlRZMExEUTBOeTQzTVRJZ05EZzBMakUzT0N3ME16TXVOall6SURRNU1DNDJNVFlzTkRFM0xqQTVOeUJETkRrMkxqZzBNeXcwTURFdU1EY3pJRFV3TVM0eE1ESXNNemd5TGpjMklEVXdNaTR6TWpVc016VTFMamswTmlCRE5UQXpMalUxTVN3ek1qa3VNRGMySURVd015NDROREVzTXpJd0xqUTVOeUExTURNdU9EUXhMREkxTWk0d09DQkROVEF6TGpnME1Td3hPRE11TmpZeUlEVXdNeTQxTlRFc01UYzFMakE0TXlBMU1ESXVNekkxTERFME9DNHlNVE1nUXpVd01TNHhNRElzTVRJeExqTTVPU0EwT1RZdU9EUXpMREV3TXk0d09EWWdORGt3TGpZeE5pdzROeTR3TmpJZ1F6UTROQzR4Tnpnc056QXVORGsySURRM05TNDFOalFzTlRZdU5EUTNJRFEyTVM0MU5Ua3NOREl1TkRReElFTTBORGN1TlRVekxESTRMalF6TmlBME16TXVOVEEwTERFNUxqZ3lNaUEwTVRZdU9UTTRMREV6TGpNNE5TQkROREF3TGpreE5DdzNMakUxTnlBek9ESXVOakF4TERJdU9EazRJRE0xTlM0M09EY3NNUzQyTnpVZ1F6TXlPQzQ1TVRjc01DNDBORGtnTXpJd0xqTXpPQ3d3TGpFMU9TQXlOVEV1T1RJeExEQXVNVFU1SUZvZ1RUSTFNUzQ1TWpFc05EVXVOVFVnUXpNeE9TNHhPRFlzTkRVdU5UVWdNekkzTGpFMU5DdzBOUzQ0TURjZ016VXpMamN4T0N3ME55NHdNVGtnUXpNM09DNHlPQ3cwT0M0eE16a2dNemt4TGpZeE9TdzFNaTR5TkRNZ05EQXdMalE1Tml3MU5TNDJPVE1nUXpReE1pNHlOVFVzTmpBdU1qWXpJRFF5TUM0Mk5EY3NOalV1TnpJeUlEUXlPUzQwTmpJc056UXVOVE00SUVNME16Z3VNamM0TERnekxqTTFNeUEwTkRNdU56TTNMRGt4TGpjME5TQTBORGd1TXpBM0xERXdNeTQxTURRZ1F6UTFNUzQzTlRjc01URXlMak00TVNBME5UVXVPRFl4TERFeU5TNDNNaUEwTlRZdU9UZ3hMREUxTUM0eU9ESWdRelExT0M0eE9UTXNNVGMyTGpnME5pQTBOVGd1TkRVc01UZzBMamd4TkNBME5UZ3VORFVzTWpVeUxqQTRJRU0wTlRndU5EVXNNekU1TGpNME5TQTBOVGd1TVRrekxETXlOeTR6TVRNZ05EVTJMams0TVN3ek5UTXVPRGMzSUVNME5UVXVPRFl4TERNM09DNDBNemtnTkRVeExqYzFOeXd6T1RFdU56YzRJRFEwT0M0ek1EY3NOREF3TGpZMU5TQkRORFF6TGpjek55dzBNVEl1TkRFMElEUXpPQzR5Tnpnc05ESXdMamd3TmlBME1qa3VORFl5TERReU9TNDJNakVnUXpReU1DNDJORGNzTkRNNExqUXpOeUEwTVRJdU1qVTFMRFEwTXk0NE9UWWdOREF3TGpRNU5pdzBORGd1TkRZMklFTXpPVEV1TmpFNUxEUTFNUzQ1TVRZZ016YzRMakk0TERRMU5pNHdNaUF6TlRNdU56RTRMRFExTnk0eE5DQkRNekkzTGpFMU9DdzBOVGd1TXpVeUlETXhPUzR4T1RFc05EVTRMall3T1NBeU5URXVPVEl4TERRMU9DNDJNRGtnUXpFNE5DNDJOU3cwTlRndU5qQTVJREUzTmk0Mk9EUXNORFU0TGpNMU1pQXhOVEF1TVRJekxEUTFOeTR4TkNCRE1USTFMalUyTVN3ME5UWXVNRElnTVRFeUxqSXlNaXcwTlRFdU9URTJJREV3TXk0ek5EVXNORFE0TGpRMk5pQkRPVEV1TlRnMkxEUTBNeTQ0T1RZZ09ETXVNVGswTERRek9DNDBNemNnTnpRdU16YzVMRFF5T1M0Mk1qRWdRelkxTGpVMk5DdzBNakF1T0RBMklEWXdMakV3TkN3ME1USXVOREUwSURVMUxqVXpOQ3cwTURBdU5qVTFJRU0xTWk0d09EUXNNemt4TGpjM09DQTBOeTQ1T0N3ek56Z3VORE01SURRMkxqZzJMRE0xTXk0NE56Y2dRelExTGpZME9Dd3pNamN1TXpFeklEUTFMak01TVN3ek1Ua3VNelExSURRMUxqTTVNU3d5TlRJdU1EZ2dRelExTGpNNU1Td3hPRFF1T0RFMElEUTFMalkwT0N3eE56WXVPRFEySURRMkxqZzJMREUxTUM0eU9ESWdRelEzTGprNExERXlOUzQzTWlBMU1pNHdPRFFzTVRFeUxqTTRNU0ExTlM0MU16UXNNVEF6TGpVd05DQkROakF1TVRBMExEa3hMamMwTlNBMk5TNDFOak1zT0RNdU16VXpJRGMwTGpNM09TdzNOQzQxTXpnZ1F6Z3pMakU1TkN3Mk5TNDNNaklnT1RFdU5UZzJMRFl3TGpJMk15QXhNRE11TXpRMUxEVTFMalk1TXlCRE1URXlMakl5TWl3MU1pNHlORE1nTVRJMUxqVTJNU3cwT0M0eE16a2dNVFV3TGpFeU15dzBOeTR3TVRrZ1F6RTNOaTQyT0Rjc05EVXVPREEzSURFNE5DNDJOVFVzTkRVdU5UVWdNalV4TGpreU1TdzBOUzQxTlNCYUlpQnBaRDBpUm1sc2JDMHhJaUJtYVd4c1BTSWpSa1pHUmtaR0lpQnRZWE5yUFNKMWNtd29JMjFoYzJzdE1pa2lQand2Y0dGMGFENGdJQ0FnSUNBZ0lEd3ZaejRnSUNBZ0lDQWdJRHh3WVhSb0lHUTlJazB5TlRFdU9USXhMRE16Tmk0d05UTWdRekl3TlM0MU5ETXNNek0yTGpBMU15QXhOamN1T1RRM0xESTVPQzQwTlRjZ01UWTNMamswTnl3eU5USXVNRGdnUXpFMk55NDVORGNzTWpBMUxqY3dNaUF5TURVdU5UUXpMREUyT0M0eE1EWWdNalV4TGpreU1Td3hOamd1TVRBMklFTXlPVGd1TWprNExERTJPQzR4TURZZ016TTFMamc1TkN3eU1EVXVOekF5SURNek5TNDRPVFFzTWpVeUxqQTRJRU16TXpVdU9EazBMREk1T0M0ME5UY2dNams0TGpJNU9Dd3pNell1TURVeklESTFNUzQ1TWpFc016TTJMakExTXlCYUlFMHlOVEV1T1RJeExERXlNaTQzTVRVZ1F6RTRNQzQwTnpRc01USXlMamN4TlNBeE1qSXVOVFUyTERFNE1DNDJNek1nTVRJeUxqVTFOaXd5TlRJdU1EZ2dRekV5TWk0MU5UWXNNekl6TGpVeU5pQXhPREF1TkRjMExETTRNUzQwTkRRZ01qVXhMamt5TVN3ek9ERXVORFEwSUVNek1qTXVNelkzTERNNE1TNDBORFFnTXpneExqSTROU3d6TWpNdU5USTJJRE00TVM0eU9EVXNNalV5TGpBNElFTXpPREV1TWpnMUxERTRNQzQyTXpNZ016SXpMak0yTnl3eE1qSXVOekUxSURJMU1TNDVNakVzTVRJeUxqY3hOU0JhSWlCcFpEMGlSbWxzYkMwMElpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTkRFMkxqWXlOeXd4TVRjdU5qQTBJRU0wTVRZdU5qSTNMREV6TkM0eklEUXdNeTR3T1RJc01UUTNMamd6TkNBek9EWXVNemsyTERFME55NDRNelFnUXpNMk9TNDNNREVzTVRRM0xqZ3pOQ0F6TlRZdU1UWTJMREV6TkM0eklETTFOaTR4TmpZc01URTNMall3TkNCRE16VTJMakUyTml3eE1EQXVPVEE0SURNMk9TNDNNREVzT0RjdU16Y3pJRE00Tmk0ek9UWXNPRGN1TXpjeklFTTBNRE11TURreUxEZzNMak0zTXlBME1UWXVOakkzTERFd01DNDVNRGdnTkRFMkxqWXlOeXd4TVRjdU5qQTBJaUJwWkQwaVJtbHNiQzAxSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUR3dlp6NDhMM04yWno0PSk7XG5cdFx0fVxuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDMwMiwgMTAwJSwgOTQlKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdC8qIFVzZSBncmFkaWVudCB0byBjb250cmFzdCB3aXRoIGZvY3VzZWQgd2lkZ2V0IChja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQjMjIpLiAqL1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggdG8gcmlnaHQsIGhzbCgyMDEsIDg1JSwgNzAlKSwgaHNsKDIwMSwgODUlLCAzNSUpICk7XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0OGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJbGRvYVhSbElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCNFBTSXdjSGdpSUhrOUlqQndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEUXdNQ0EwTURBaUlITjBlV3hsUFNKbGJtRmliR1V0WW1GamEyZHliM1Z1WkRwdVpYY2dNQ0F3SURRd01DQTBNREE3SWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNDhjM1I1YkdVZ2RIbHdaVDBpZEdWNGRDOWpjM01pUGk1emREQjdabWxzYkRvalJrWkdSa1pHTzMwOEwzTjBlV3hsUGp4d1lYUm9JR05zWVhOelBTSnpkREFpSUdROUlrMDBNREFzTWpBd1l6QXNNVEV3TGpVdE9Ea3VOU3d5TURBdE1qQXdMREl3TUZNd0xETXhNQzQxTERBc01qQXdVemc1TGpVc01Dd3lNREFzTUZNME1EQXNPRGt1TlN3ME1EQXNNakF3ZWlCTk1UWXpMalFzTXpBMUxqVmpPRGd1Tnl3d0xERXpOeTR5TFRjekxqVXNNVE0zTGpJdE1UTTNMakpqTUMweUxqRXNNQzAwTGpJdE1DNHhMVFl1TW1NNUxqUXROaTQ0TERFM0xqWXRNVFV1TXl3eU5DNHhMVEkxWXkwNExqWXNNeTQ0TFRFM0xqa3NOaTQwTFRJM0xqY3NOeTQyWXpFd0xUWXNNVGN1TmkweE5TNDBMREl4TGpJdE1qWXVOMk10T1M0ekxEVXVOUzB4T1M0MkxEa3VOUzB6TUM0MkxERXhMamRqTFRndU9DMDVMalF0TWpFdU15MHhOUzR5TFRNMUxqSXRNVFV1TW1NdE1qWXVOaXd3TFRRNExqSXNNakV1TmkwME9DNHlMRFE0TGpKak1Dd3pMamdzTUM0MExEY3VOU3d4TGpNc01URmpMVFF3TGpFdE1pMDNOUzQyTFRJeExqSXRPVGt1TkMwMU1DNDBZeTAwTGpFc055NHhMVFl1TlN3eE5TNDBMVFl1TlN3eU5DNHlZekFzTVRZdU55dzRMalVzTXpFdU5Td3lNUzQxTERRd0xqRmpMVGN1T1Mwd0xqSXRNVFV1TXkweUxqUXRNakV1T0MwMll6QXNNQzR5TERBc01DNDBMREFzTUM0Mll6QXNNak11TkN3eE5pNDJMRFF5TGpnc016Z3VOeXcwTnk0ell5MDBMREV1TVMwNExqTXNNUzQzTFRFeUxqY3NNUzQzWXkwekxqRXNNQzAyTGpFdE1DNHpMVGt1TVMwd0xqbGpOaTR4TERFNUxqSXNNak11T1N3ek15NHhMRFExTERNekxqVmpMVEUyTGpVc01USXVPUzB6Tnk0ekxESXdMall0TlRrdU9Td3lNQzQyWXkwekxqa3NNQzAzTGpjdE1DNHlMVEV4TGpVdE1DNDNRekV4TUM0NExESTVOeTQxTERFek5pNHlMRE13TlM0MUxERTJNeTQwTERNd05TNDFJaTgrUEM5emRtYyspO1xuXHRcdH1cblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMjAxLCAxMDAlLCA4NiUpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1jb2xvci1tZW50aW9uLWJhY2tncm91bmQ6IGhzbGEoMzQxLCAxMDAlLCAzMCUsIDAuMSk7XG5cdC0tY2stY29udGVudC1jb2xvci1tZW50aW9uLXRleHQ6IGhzbCgzNDEsIDEwMCUsIDMwJSk7XG59XG5cbi5jay1jb250ZW50IC5tZW50aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29udGVudC1jb2xvci1tZW50aW9uLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29udGVudC1jb2xvci1tZW50aW9uLXRleHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMik7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4zNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNCk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC41KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC42KTtcbn1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZS1pbi1vdXQgYmFja2dyb3VuZDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQ7XG5cdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdHRvIHJpZ2h0LFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDAlLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRoc2xhKDAsIDAlLCAwJSwgMCkgNnB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSBjYWxjKDEwMCUgLSA2cHgpLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMTAwJVxuXHQpIDE7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX3NlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0dG8gcmlnaHQsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdFx0KSAxO1xuXHR9XG5cblx0Ji5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX2NvbGxhcHNlZCB7XG5cdFx0LyogRW1wdHkgZXhjZXB0aW9uIHNob3VsZCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFzIGV4Y2VwdGlvbiB3aXRoIGF0IGxlYXN0IDEgY2hhciAqL1xuXHRcdHBhZGRpbmctbGVmdDogMWNoO1xuXHR9XG59XG5cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIFdlIGFsc28gaGF2ZSB0byBvdmVycmlkZSBhbGwgZWxlbWVudHMgaW5zaWRlIHRoZSByZXN0cmljdGVkIGVkaXRhYmxlIHRvIHByZXZlbnQgY3Vyc29yIHN3aXRjaGluZyBiZXR3ZWVuIGRlZmF1bHQgYW5kIHRleHRcblx0ZHVyaW5nIHRoZSBwb2ludGVyIG1vdmVtZW50LiAqL1xuXHQmICoge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG5cdCYgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHRcdGN1cnNvcjogdGV4dDtcblxuXHRcdCYgKiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplOiAyNHB4O1xufVxuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdCYgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdCY6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGdseXBoIGlzIHJlbmRlcmVkIGluIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQmID4gKiB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdH1cblxuXHQmIC5jay1jaGFyYWN0ZXItaW5mb19fbmFtZSB7XG5cdFx0bWF4LXdpZHRoOiAyODBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0JiAuY2stY2hhcmFjdGVyLWluZm9fX2NvZGUge1xuXHRcdG9wYWNpdHk6IC42O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24ge1xuXG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogMTYwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG5cdCYgPiAuY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGNhdGVnb3JpZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdFx0bWF4LWhlaWdodDogMjUwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdG1heC13aWR0aDogMTkwcHg7XG5cblx0XHQmID4gLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duX211bHRpcGxlLWFjdGl2ZSA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24td2lkdGg6IDEyMHB4O1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQ6IDgwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDkyLjElKTtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDcwJSk7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHQmIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQpO1xuXG5cdFx0LyogTGV0IGRlZmF1bHQgLmNrLWJ1dHRvbiA6Zm9jdXMgc3R5bGVzIGFwcGx5ICovXG5cdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG5cblx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0b3BhY2l0eTogLjk7XG5cblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdCYuY2stZGlzYWJsZWQge1xuXHRcdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRcdFx0XHRmaWx0ZXI6IHNhdHVyYXRlKC4zKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAtMXB4IDAgdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdFx0XHR6LWluZGV4OiAxOyAvKiBTdGF5IG9uIHRvcCBvZiB0aGUgcHJldmlldyB3aXRoIHRoZSBzaGFkb3cuICovXG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLW9uKSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuXG5cdFx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXAge1xuXHQmID4gLmNrLWxhYmVsIHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cblxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtbWF4LWhlaWdodDogNDcwcHg7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuQGltcG9ydCBcIi4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWlucHV0LWNvbG9yIHtcblx0JiA+IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgZm9jdXNlZCBpbnB1dCBpcyBhbHdheXMgb24gdG9wIG9mIHRoZSBkcm9wZG93biBidXR0b24gc28gaXRzXG5cdFx0ICAgb3V0bGluZSBhbmQgYm9yZGVyIGFyZSBuZXZlciBjcm9wcGVkIChhbHNvIHdoZW4gdGhlIGlucHV0IGlzIHJlYWQtb25seSkuICovXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiAwO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stZHJvcGRvd24ge1xuXHRcdCYgPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXG5cdFx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cblx0XHRcdFx0JiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRcdHRvcDogLTMwJTtcblx0XHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNTAlO1xuXHRcdFx0XHRcdHdpZHRoOiA4JTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBoc2woMCwgMTAwJSwgNTAlKTtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1mb3JtX19yb3cge1xuXHQvKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG5cdCYgPiAqOm5vdCguY2stbGFiZWwpIHtcblx0XHQmICsgKiB7XG5cdFx0XHRtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLWxhYmVsIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtaW4td2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmLmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiAuY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZzogMTBweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodDogMTFweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luOiAxcHg7XG59XG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duX19ncmlkIHtcblx0LyogVGhlIHdpZHRoIG9mIGEgY29udGFpbmVyIHNob3VsZCBtYXRjaCAxMCBpdGVtcyBpbiBhIHJvdyBzbyB0aGVyZSB3aWxsIGJlIGEgMTB4MTAgZ3JpZC4gKi9cblx0d2lkdGg6IGNhbGModmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCkgKiAxMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luKSAqIDIwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpICogMik7XG5cdHBhZGRpbmc6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgMDtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsLFxuLmNrW2Rpcj1ydGxdIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtaGVpZ2h0KTtcblx0bWFyZ2luOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbik7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0Ym9yZGVyLXJhZGl1czogMXB4O1xuXHRvdXRsaW5lOiBub25lO1xuXHR0cmFuc2l0aW9uOiBub25lO1xuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxuXHQmLmNrLW9uIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0ge1xuXHR3aWR0aDogMzIwcHg7XG5cblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19wYWRkaW5nLXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aWR0aDogMjUlO1xuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItdGFibGUtZm9jdXNlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjEyLCA5MCUsIDgwJSwgLjMpO1xuXHQtLWNrLXRhYmxlLWNvbnRlbnQtZGVmYXVsdC1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgODMlKTtcblx0LS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcjogaHNsKDAsIDAlLCA4MyUpO1xuXHQtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXN0eWxlOiBkYXNoZWQ7XG5cdC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtd2lkdGg6IDFweDtcbn1cblxuLmNrLXdpZGdldC50YWJsZSB7XG5cdC8qIERhc2hlZCBvdXRsaW5lIGZvciB0YWJsZSB3aXRob3V0IGFueSBib3JkZXIuICovXG5cdCYgdGFibGVbc3R5bGUqPVwiYm9yZGVyOm5vbmVcIl0sXG5cdCYgdGFibGVbc3R5bGUqPVwiYm9yZGVyLXN0eWxlOm5vbmVcIl0ge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXRhYmxlLWNvbnRlbnQtZGVmYXVsdC1ib3JkZXItY29sb3IpIDFweCBkYXNoZWQ7XG5cdH1cblxuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQvKipcblx0XHQgKiBXaGlsZSBzZXR0aW5nIG91dGxpbmUgaXMgZmluZSwgdGhlIGJvcmRlciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGhlcmVcblx0XHQgKiBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvciB3aGljaCBpcyBub3QgZXhwZWN0ZWQuXG5cdFx0ICogU28gZG8gbm90IHVzZSBgQG1peGluIGNrLWZvY3VzLXJpbmc7YCBoZXJlLCBvciBhbnkgb3RoZXIgYm9yZGVyIHN0eWxlcy5cblx0XHQgKiBTZWUgbW9yZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY5Nzlcblx0XHQgKi9cblx0XHQmLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHtcblx0XHRcdG91dGxpbmU6IHVuc2V0O1xuXG5cdFx0XHQmOm5vdCguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCkge1xuXHRcdFx0XHQmLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdFx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRcdC8qIEEgdmVyeSBzbGlnaHQgYmFja2dyb3VuZCB0byBoaWdobGlnaHQgdGhlIGZvY3VzZWQgY2VsbCAqL1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRhYmxlLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0XHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRcdFx0XHRvdXRsaW5lLW9mZnNldDogLTFweDsgLyogcHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQgLSBubyBJRSBzdXBwb3J0ICovXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLypcbkJ5IHVzaW5nIGA6d2hlcmVgIHdlIHNldCB0aGUgc3BlY2lmaWNpdHkgdG8gMCwgYnV0IHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGlubGluZSBzdHlsZXMgdGhhdCdzIHdoeSB3ZSBtdXN0IHVzZSBgIWltcG9ydGFudGAuXG5UaGlzIHdheSBpdCB3aWxsIGJlIGVhc2llciB0byBvdmVycmlkZSBpdCBpbiBjdXN0b20gdGhlbWVzIGlmIG5lZWRlZC5cbiovXG46d2hlcmUoLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stdGFibGUtc2hvdy1oaWRkZW4tYm9yZGVycyAuY2std2lkZ2V0LnRhYmxlKSB7XG5cdCYgOndoZXJlKCB0ZFtzdHlsZSo9XCJib3JkZXI6bm9uZVwiXSwgdGRbc3R5bGUqPVwiYm9yZGVyLXN0eWxlOm5vbmVcIl0sIHRoW3N0eWxlKj1cImJvcmRlcjpub25lXCJdLCB0aFtzdHlsZSo9XCJib3JkZXItc3R5bGU6bm9uZVwiXSApIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXN0eWxlKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS13aWR0aCkgdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtY29sb3IpICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmID4gOndoZXJlKCB0YWJsZVtzdHlsZSo9XCJib3JkZXItdG9wLXN0eWxlOm5vbmVcIl0gKSxcblx0JiA6d2hlcmUoIHRkW3N0eWxlKj1cImJvcmRlci10b3Atc3R5bGU6bm9uZVwiXSwgdGhbc3R5bGUqPVwiYm9yZGVyLXRvcC1zdHlsZTpub25lXCJdICkge1xuXHRcdGJvcmRlci10b3A6IHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXN0eWxlKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS13aWR0aCkgdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtY29sb3IpICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmID4gOndoZXJlKCB0YWJsZVtzdHlsZSo9XCJib3JkZXItcmlnaHQtc3R5bGU6bm9uZVwiXSApLFxuXHQmIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyLXJpZ2h0LXN0eWxlOm5vbmVcIl0sIHRoW3N0eWxlKj1cImJvcmRlci1yaWdodC1zdHlsZTpub25lXCJdICkge1xuXHRcdGJvcmRlci1yaWdodDogdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGUpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXdpZHRoKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuXG5cdCYgPiA6d2hlcmUoIHRhYmxlW3N0eWxlKj1cImJvcmRlci1ib3R0b20tc3R5bGU6bm9uZVwiXSApLFxuXHQmIDp3aGVyZSggdGRbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbS1zdHlsZTpub25lXCJdLCB0aFtzdHlsZSo9XCJib3JkZXItYm90dG9tLXN0eWxlOm5vbmVcIl0gKSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtc3R5bGUpIHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXdpZHRoKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuXG5cdCYgPiA6d2hlcmUoIHRhYmxlW3N0eWxlKj1cImJvcmRlci1sZWZ0LXN0eWxlOm5vbmVcIl0gKSxcblx0JiA6d2hlcmUoIHRkW3N0eWxlKj1cImJvcmRlci1sZWZ0LXN0eWxlOm5vbmVcIl0sIHRoW3N0eWxlKj1cImJvcmRlci1sZWZ0LXN0eWxlOm5vbmVcIl0gKSB7XG5cdFx0Ym9yZGVyLWxlZnQ6IHZhcigtLWNrLXRhYmxlLWJvcmRlci1ub25lLWhlbHBlci1saW5lLXN0eWxlKSB2YXIoLS1jay10YWJsZS1ib3JkZXItbm9uZS1oZWxwZXItbGluZS13aWR0aCkgdmFyKC0tY2stdGFibGUtYm9yZGVyLW5vbmUtaGVscGVyLWxpbmUtY29sb3IpICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemU6IDZweDtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aDogMTUwcHg7XG59XG5cbi5jay5jay10YWJsZS1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cge1xuXHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0JiA+IC5jay1sYWJlbCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1zdHlsZSxcblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2JvcmRlci13aWR0aCB7XG5cdFx0XHRcdHdpZHRoOiA4MHB4O1xuXHRcdFx0XHRtaW4td2lkdGg6IDgwcHg7XG5cdFx0XHRcdG1heC13aWR0aDogODBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X193aWR0aCxcblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X19oZWlnaHQge1xuXHRcdFx0XHRtYXJnaW46IDBcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSk7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHR9XG5cblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtZm9ybS1sYWJlbGVkLXZpZXctc3RhdHVzLWFwcGVhciAuMTVzIGVhc2UgYm90aDtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qIEhpZGUgdGhlIGVycm9yIGJhbGxvb24gd2hlbiB0aGUgZmllbGQgaXMgYmx1cnJlZC4gTWFrZXMgdGhlIGV4cGVyaWVuY2UgbXVjaCBtb3JlIGNsZWFyLiAqL1xuXHRcdCYgLmNrLWlucHV0LmNrLWVycm9yOm5vdCg6Zm9jdXMpICsgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdGFibGUtZm9ybS1sYWJlbGVkLXZpZXctc3RhdHVzLWFwcGVhciB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcblxuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0JiAuY2stdG9vbGJhcl9faXRlbXMgPiAqIHtcblx0XHRcdFx0XHR3aWR0aDogNDBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMDgsIDkwJSwgODAlLCAuMyk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB7XG5cdCYgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCxcblx0JiB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Y2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IHVuc2V0O1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQ0NiAqL1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0JiA6OnNlbGVjdGlvbixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdH1cblxuXHRcdC8qXG5cdFx0ICogVG8gcmVkdWNlIHRoZSBhbW91bnQgb2Ygbm9pc2UsIGFsbCB3aWRnZXRzIGluIHRoZSB0YWJsZSBzZWxlY3Rpb24gaGF2ZSBubyBvdXRsaW5lIGFuZCBubyBzZWxlY3Rpb24gaGFuZGxlLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85NDkxLlxuXHRcdCAqL1xuXHRcdCYgLmNrLXdpZGdldCB7XG5cdFx0XHRvdXRsaW5lOiB1bnNldDtcblxuXHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IDE2cHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLXdpZHRoOiAxMHB4O1xuXHQtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtdHlwZS1hcm91bmQtaWNvbi1oZWlnaHQ6IDhweDtcblx0LS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplOiAxMHB4O1xuXHQtLWNrLXRhYmxlLWxheW91dC1kZWZhdWx0LWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA4MyUpO1xuXG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHQmID4gdGFibGUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRcdC8qIFJlc2V0dGluZyBgYm9yZGVyLWNvbGxhcHNlYCBwcm9wZXJ0eSB0byB0aGUgdXNlciBhZ2VudCBzdHlsZXMuICovXG5cdFx0XHRib3JkZXItY29sbGFwc2U6IHJldmVydDtcblxuXHRcdFx0LyogVGhlIGRlZmF1bHQgdGFibGUgbGF5b3V0IHN0eWxlIGluIHRoZSBlZGl0aW5nIHZpZXcgd2hlbiB0aGUgYm9yZGVyIGlzIHVuc2V0LiAqL1xuXHRcdFx0Jjpub3QoXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyOlwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItdG9wXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1ib3R0b21cIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWxlZnRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXJpZ2h0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci13aWR0aFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItc3R5bGVcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWNvbG9yXCJdKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQge1xuXHRcdFx0Ym94LXNoYWRvdzogcmV2ZXJ0O1xuXHRcdFx0cGFkZGluZzogcmV2ZXJ0O1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHQvKiBUbyBtYWtlIHRoZSBjYXJldCB2aXNpYmxlLiAqL1xuXHRcdFx0dGV4dC1pbmRlbnQ6IDFweDtcblxuXHRcdFx0LyogUmVzZXRzIHRoZSBgbWluLXdpZHRoYCBzdHlsZSBhdHRyaWJ1dGUgdGhhdCB3YXMgYWRkZWQgYnkgdGhlIGNvbnRlbnQgdGFibGUgc3R5bGUuICovXG5cdFx0XHQmW3N0eWxlXj1cIndpZHRoOlwiXSxcblx0XHRcdCZbc3R5bGUqPVwiIHdpZHRoOlwiXSxcblx0XHRcdCZbc3R5bGUqPVwiO3dpZHRoOlwiXSxcblx0XHRcdCZbc3R5bGUqPVwiJ3dpZHRoOlwiXSB7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdH1cblxuXHRcdFx0LyogUmVtb3ZlIHRoZSBkZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZnJvbSB0aGUgZm9jdXNlZCB0YWJsZSBjZWxsLiAqL1xuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBUaGUgZGVmYXVsdCB0YWJsZSBsYXlvdXQgY2VsbCBzdHlsZSBpbiB0aGUgZWRpdGluZyB2aWV3IHdoZW4gdGhlIGJvcmRlciBpcyB1bnNldC5cblx0XHRcdEJ1dCBpdCBuZWVkIHRvIGJlIG1vcmUgc3RyaWN0IGNhdXNlIG9mIHN0eWxlIGF0dHJpYnV0ZXMgbGlrZSBgYm9yZGVyLWNvbGxhcHNlYCwgYGJvcmRlci1zcGFjaW5nYCwgZXRjLiAqL1xuXHRcdFx0Jjpub3QoXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyOlwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItdG9wXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1ib3R0b21cIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWxlZnRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXJpZ2h0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci13aWR0aFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItc3R5bGVcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWNvbG9yXCJdKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdC8qIFJlc2V0dGluZyBgYm9yZGVyLXdpZHRoYCBwcm9wZXJ0eSB0byB0aGUgdXNlciBhZ2VudCBzdHlsZXMuICovXG5cdFx0XHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRcdFx0b3V0bGluZTogdmFyKC0tY2stdGFibGUtbGF5b3V0LWRlZmF1bHQtYm9yZGVyLWNvbG9yKSAxcHggZGFzaGVkO1xuXHRcdFx0XHRvdXRsaW5lLW9mZnNldDogLTFweDtcblxuXHRcdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0XHRvdXRsaW5lOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpIDFweCBzb2xpZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvKiBSZXNldCB0aGUgYHdpZHRoYCBhbmQgYHRleHQtaW5kZW50YCBvZiB0aGUgYm9ndXMgcGFyYWdyYXBoIGJlY2F1c2UgPHRkPiBoYXMgMXB4IHRleHQgaW5kZW50LiAqL1xuXHRcdFx0JiA+IC5jay10YWJsZS1ib2d1cy1wYXJhZ3JhcGgge1xuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMXB4KTtcblx0XHRcdFx0dGV4dC1pbmRlbnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogV2lkZ2V0IHR5cGUgYXJvdW5kIG92ZXJyaWRlcy4gKi9cblx0XHQmLmNrLXdpZGdldCB7XG5cdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdFx0XHQtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogdmFyKC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cblx0XHRcdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0XHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSxcblx0XHRcdFx0XHQmLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdFx0XHRcdFx0XHQvKiBTYW1lIHZhbHVlIGFzIGlubGluZS1pbWFnZSB3aWRnZXQgYmVjYXVzZSBpdCBpcyBhZnRlciB0aGUgaW5saW5lLWltYWdlIGluIEhUTUwgc3RydWN0dXJlICovXG5cdFx0XHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0XHRcdFx0XHRsZWZ0OiBtaW4oMTAlLCAzMHB4KTtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgMCAxMDBweCAxMDBweDtcblxuXHRcdFx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAwIDAgMTAwcHggMTAwcHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHggMTAwcHggMCAwO1xuXG5cdFx0XHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4IDEwMHB4IDAgMDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmIHN2ZyB7XG5cdFx0XHRcdFx0XHR3aWR0aDogdmFyKC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLXdpZHRoKTtcblx0XHRcdFx0XHRcdGhlaWdodDogdmFyKC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLWhlaWdodCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0XHQtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZTogdmFyKC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKSk7XG5cdFx0XHRcdFx0LyogVmFsdWUgaW5jcmVhc2VkIGJ5IDEgYXMgaW4gc2VsZWN0ZWQgaW5saW5lLWltYWdlIHdpZGdldFxuXHRcdFx0XHRcdGJlY2F1c2UgaXQgaXMgYmVmb3JlIHRoZSBpbmxpbmUtaW1hZ2UgaW4gSFRNTCBzdHJ1Y3R1cmUuICovXG5cdFx0XHRcdFx0ei1pbmRleDogMztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvKiBTaG93IGZha2UgY2FyZXQgb24gYm9yZGVyIG5vdCBhYm92ZS4gKi9cblx0XHRcdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUge1xuXHRcdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdFx0XHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qIFNob3cgZmFrZSBjYXJldCBvbiBib3JkZXIgbm90IGJlbG93LiAqL1xuXHRcdFx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyIHtcblx0XHRcdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcblxuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0XHQmIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdGZsZXg6IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwge1xuXHRcdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0XHQmLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0XHR9XG5cblx0XHRcdCYuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyB7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cblx0XHRcdFx0JiA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogaW5pdGlhbDtcblxuXHRcdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemU6IDZweDtcblx0LS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aDogMTUwcHg7XG59XG5cbi5jay5jay10YWJsZS1mb3JtLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9leHBlcmltZW50YWwge1xuXHQtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aDogODBweDtcblxuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyB7XG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXdpZHRoIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0LS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGg6IGNhbGModmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKSAqIDIgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cblx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdG1heC13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0bGVmdDogLTAuNWNoO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aCk7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuXG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cblx0XHQmIC5jay1pbnB1dC5jay1lcnJvcjpub3QoOmZvY3VzKSArIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0LyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xuXHQmID4gKjpub3QoLmNrLWxhYmVsKSB7XG5cdFx0JiArICoge1xuXHRcdFx0bWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Ji5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xuXG5cdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fZXhwZXJpbWVudGFsIHtcblx0XHQtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aDogODBweDtcblxuXHRcdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19wYWRkaW5nLXJvdyB7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHR3aWR0aDogMjUlO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdFx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1zdHlsZSxcblx0XHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXdpZHRoIHtcblx0XHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdFx0XHRtaW4td2lkdGg6IDgwcHg7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiA4MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93X193aWR0aCxcblx0XHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRcdFx0JiA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogaW5pdGlhbDtcblxuXHRcdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX2V4cGVyaW1lbnRhbC1uby1jZWxsLXR5cGUge1xuXHRcdFx0JiAuY2stZm9ybV9fcm93IHtcblx0XHRcdFx0Ji5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRcdFx0LS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGg6IGNhbGModmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKSAqIDIgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cblx0XHRcdFx0XHR3aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvd19fd2lkdGgsXG5cdFx0XHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRcdG1heC13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kZWZhdWx0LWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRsZWZ0OiAtMC41Y2g7XG5cdFx0XHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdFx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5jay10YWJsZS1mb3JtX19jZWxsLXR5cGUtcm93IHtcblx0XHRcdFx0XHQtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aDogY2FsYyh2YXIoLS1jay10YWJsZS1mb3JtLWRlZmF1bHQtaW5wdXQtd2lkdGgpICogMiArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblxuXHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdG1heC13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0XHRcdCYgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRcdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9faG9yaXpvbnRhbC1hbGlnbm1lbnQtdG9vbGJhciB7XG5cdFx0XHRcdFx0XHRcdC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoOiBjYWxjKHZhcigtLWNrLXRhYmxlLWZvcm0tZGVmYXVsdC1pbnB1dC13aWR0aCkgKiAyICsgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1mb3JtLWRpbWVuc2lvbnMtaW5wdXQtd2lkdGgpO1xuXHRcdFx0XHRcdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLXRhYmxlLWZvcm0tZGltZW5zaW9ucy1pbnB1dC13aWR0aCk7XG5cdFx0XHRcdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtZm9ybS1kaW1lbnNpb25zLWlucHV0LXdpZHRoKTtcblx0XHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fdmVydGljYWwtYWxpZ25tZW50LXRvb2xiYXIge1xuXHRcdFx0XHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdG91dGxpbmUtd2lkdGg6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcyk7XG5cdG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxufVxuXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogVGhlIDpmb2N1cyBzdHlsZSBpcyBhcHBsaWVkIGJlZm9yZSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCBjbGFzcyBpcyByZW5kZXJlZCBpbiB0aGUgdmlldy5cblx0VGhlc2Ugc3R5bGVzIHNob3cgYSBkaWZmZXJlbnQgYm9yZGVyIGZvciBhIGJsaW5rIG9mIGFuIGV5ZSwgc28gYDpmb2N1c2AgbmVlZCB0byBoYXZlIHNhbWUgc3R5bGVzIGFwcGxpZWQuICovXG5cdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0XHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIEZvY3VzIGJvcmRlciBzaG91bGQgbm90IGJlIGFwcGxpZWQgdG8gdGFibGUgY2VsbHMgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICogSW4gb3RoZXIgd29yZHMgLSBpbiBzb21lIHNjZW5hcmlvcywgdGhlIHBhcnQgb2YgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGhhcyBmb2N1cyBjb2xvciBzdHlsZSwgd2hpY2ggaXMgbm90IGV4cGVjdGVkIGJlaGF2aW9yXG5cdFx0ICogYmVjYXVzZSBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yLlxuXHRcdCAqL1xuXHRcdCY6bm90KHRkLCB0aCkge1xuXHRcdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0fVxuXHR9XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBhZGRpbmc6IDRweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0LyogQmFja2dyb3VuZCBhbmQgb3BhY2l0eSB3aWxsIGJlIGFuaW1hdGVkIGFzIHRoZSBoYW5kbGVyIHNob3dzIHVwIG9yIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZC4gKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0LyogVHJhbnNpdGlvbjpcblx0XHQgICAqIGJhY2tncm91bmQtY29sb3IgZm9yIHRoZSAuY2std2lkZ2V0X3NlbGVjdGVkIHN0YXRlIGNoYW5nZSxcblx0XHQgICAqIHZpc2liaWxpdHkgZm9yIGhpZGluZyB0aGUgaGFuZGxlcixcblx0XHQgICAqIG9wYWNpdHkgZm9yIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbiB3aGVuIHRoZSBoYW5kbGVyIGRpc2FwcGVhcnMuICovXG5cdFx0dHJhbnNpdGlvbjpcblx0XHRcdGJhY2tncm91bmQtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLFxuXHRcdFx0dmlzaWJpbGl0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHRvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdC8qIE1ha2Ugb25seSB0b3AgY29ybmVycyByb3VuZC4gKi9cblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cblx0XHQvKiBQbGFjZSB0aGUgZHJhZyBoYW5kbGVyIG91dHNpZGUgdGhlIHdpZGdldCB3cmFwcGVyLiAqL1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cdFx0bGVmdDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHR0b3A6IDA7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKTtcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0XHQmIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdC8qIE5vdGU6IFRoZSBhbmltYXRpb24gaXMgbG9uZ2VyIG9uIHB1cnBvc2UuIFNpbXBseSBmZWVscyBiZXR0ZXIuICovXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cblx0XHQmOmhvdmVyIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXHQmOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHRcdCYgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQxNSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQge1xuXHQvKiBQcmV2ZW50IHRoZSA6aG92ZXIgb3V0bGluZSBmcm9tIHNob3dpbmcgdXAgYmVjYXVzZSBvZiB0aGUgdXNlZCBvdXRsaW5lLWNvbG9yIHRyYW5zaXRpb24uICovXG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkge1xuXHRcdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjYxXG5cdFx0ICpcblx0XHQgKiBMZWF2ZSB0aGUgdW5pdCBiZWNhdXNlIHRoaXMgY3VzdG9tIHByb3BlcnR5IGlzIHVzZWQgaW4gY2FsYygpIGJ5IG90aGVyIGZlYXR1cmVzLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjc3NVxuXHRcdCAqL1xuXHRcdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAwcHg7XG5cdH1cblxuXHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiogSGlkZSB0aGUgb3V0bGluZSBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4qL1xuLmNrIC5jay13aWRnZXQ6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkge1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogSGlkZSB0aGUgc2VsZWN0aW9uIGhhbmRsZSBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQgb2YgYWxsIHRoZSB3aWRnZXQgcGFyZW50cy4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsZSB0aGUgd2lkZ2V0IHdoZW4gaXQncyBzZWxlY3RlZCBidXQgdGhlIGVkaXRhYmxlIGl0IGJlbG9uZ3MgdG8gbG9zdCBmb2N1cy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQge1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCxcblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cblx0XHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcGFnaW5hdGlvbi12aWV3KSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCxcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcGFnaW5hdGlvbi12aWV3KSBibG9ja3F1b3RlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkIHtcblx0LyogRG8gbm90IGNyb3Agc2VsZWN0aW9uIGhhbmRsZXIgaWYgYSB3aWRnZXQgaXMgYSBmaXJzdC1jaGlsZCBpbiB0aGUgYmxvY2txdW90ZSBvciBpbiB0aGUgcm9vdCBlZGl0YWJsZS5cblx0SW4gZmFjdCwgYW55dGhpbmcgd2l0aCBvdmVyZmxvdzogaGlkZGVuLlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWJsb2NrLXF1b3RlL2lzc3Vlcy8yOFxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXdpZGdldC9pc3N1ZXMvNDRcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzY2ICovXG5cdG1hcmdpbi10b3A6IGNhbGMoMWVtICsgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stcmVzaXplci1zaXplOiAxMHB4O1xuXG5cdC8qIFNldCB0aGUgcmVzaXplciB3aXRoIGEgNTAlIG9mZnNldC4gKi9cblx0LS1jay1yZXNpemVyLW9mZnNldDogY2FsYyggKCB2YXIoLS1jay1yZXNpemVyLXNpemUpIC8gLTIgKSAtIDJweCk7XG5cdC0tY2stcmVzaXplci1ib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplcik7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUge1xuXHR3aWR0aDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRib3JkZXI6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoKSBzb2xpZCBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IDIwcHg7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3ZlcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGE6IDA7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGE6IC4zO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cblxuQGRlZmluZS1taXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXZpc2libGUge1xuXHRvcGFjaXR5OiAxO1xuXHRwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuQGRlZmluZS1taXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbiB7XG5cdG9wYWNpdHk6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cblx0JiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHR3aWR0aDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbik7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksIGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiBzdmcge1xuXHRcdFx0d2lkdGg6IDEwcHg7XG5cdFx0XHRoZWlnaHQ6IDhweDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzIGVhc2U7XG5cdFx0XHRtYXJnaW4tdG9wOiAxcHg7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCYgKiB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDEwO1xuXHRcdFx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblxuXHRcdFx0XHRmaWxsOiBub25lO1xuXHRcdFx0XHRzdHJva2U6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbik7XG5cdFx0XHRcdHN0cm9rZS13aWR0aDogMS41cHg7XG5cdFx0XHRcdHN0cm9rZS1saW5lY2FwOiByb3VuZDtcblx0XHRcdFx0c3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcblx0XHRcdH1cblxuXHRcdFx0JiBsaW5lIHtcblx0XHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogNztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBEaXNwbGF5IHRoZSBcInNvbmFyXCIgYXJvdW5kIHRoZSBidXR0b24gd2hlbiBob3ZlcmVkLlxuXHRcdFx0ICovXG5cdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIgMXMgZWFzZSBpbmZpbml0ZTtcblxuXHRcdFx0Lypcblx0XHRcdCAqIEFuaW1hdGUgYWN0aXZlIGJ1dHRvbidzIGljb24uXG5cdFx0XHQgKi9cblx0XHRcdCYgc3ZnIHtcblx0XHRcdFx0JiBwb2x5bGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmIGxpbmUge1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LXRpcC1kYXNoIDJzIGxpbmVhcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cblx0XHRcdFx0JiBzdmcge1xuXHRcdFx0XHRcdCYgcG9seWxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgbGluZSB7XG5cdFx0XHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU2hvdyB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBiZWluZyBob3ZlcmVkLlxuXHQgKi9cblx0Jjpob3ZlciB7XG5cdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi12aXNpYmxlO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIE5PVCBzZWxlY3RlZCAoYnV0IHRoZSBidXR0b25zIGFyZSB2aXNpYmxlXG5cdCAqIGFuZCBzdGlsbCBjYW4gYmUgaG92ZXJlZCkuXG5cdCAqL1xuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3Zlcik7XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbixcblx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmUpO1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbGEoMCwwJSwxMDAlLDApIDAlLCBoc2xhKDAsMCUsMTAwJSwuMykgMTAwJSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdC8qXG5cdFx0KiBTdHlsZXMgb2YgdGhlIHdpZGdldCB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCogRGVzcGl0ZSB0aGUgd2lkZ2V0IGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQgaW4gdGhlIG1vZGVsLCBpdHMgb3V0bGluZSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCovXG5cdFx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0XHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQqIFNob3cgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZC5cblx0XHQqL1xuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tdmlzaWJsZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZS4gQmVjYXVzZSBzb21lIHNwYWNlXG5cdCAqIGlzIGNvbnN1bWVkIGJ5IHRoZSBoYW5kbGUsIHRoZSBidXR0b24gbXVzdCBiZSBtb3ZlZCBzbGlnaHRseSB0byB0aGUgcmlnaHQgdG8gbGV0IGl0IGJyZWF0aGUuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWZha2UtY2FyZXQtcHVsc2UgbGluZWFyIDFzIGluZmluaXRlIG5vcm1hbCBmb3J3YXJkcztcblxuXHRcdC8qXG5cdFx0ICogVGhlIHNlbWktdHJhbnNwYXJlbnQtb3V0bGluZStiYWNrZ3JvdW5kIGNvbWJvIGltcHJvdmVzIHRoZSBjb250cmFzdFxuXHRcdCAqIHdoZW4gdGhlIGJhY2tncm91bmQgdW5kZXJuZWF0aCB0aGUgZmFrZSBjYXJldCBpcyBkYXJrLlxuXHRcdCAqL1xuXHRcdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0Lypcblx0XHQgKiBXaGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyB2aXNpYmxlIHdlIHNpbXVsYXRlIHRoYXQgdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWRcblx0XHQgKiAoZGVzcGl0ZSBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkKSwgc28gdGhlIG91dGxpbmUgY29sb3Igc2hvdWxkIGJlIGZvciB0aGVcblx0XHQgKiB1bnNlbGVjdGVkIHdpZGdldC5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCAqIEluIHRoaXMgc3RhdGUsIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zIHdvdWxkIGNvbGxpZGUgd2l0aCB0aGUgZmFrZSBjYXJldHMgc28gdGhleSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCAqL1xuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXHRcdH1cblxuXHRcdC8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHNlbGVjdGlvbiBoYW5kbGUuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIGhhbmRsZSBiZWNhdXNlIGl0IGludGVyc2VjdHMgd2l0aCB0aGUgY2FyZXQgKGFuZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5KS5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXNpemUgVUkuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIHJlc2l6ZSBVSSBiZWNhdXNlIGl0IGNyZWF0ZXMgdG9vIG11Y2ggbm9pc2UuIEl0IGNhbiBiZSB2aXNpYmxlIHdoZW4gdGhlIHVzZXJcblx0XHQgKiBob3ZlcnMgdGhlIHdpZGdldCwgdGhvdWdoLlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRcdG9wYWNpdHk6IDBcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlcyBmb3IgdGhlIFwiYmVmb3JlXCIgYnV0dG9uIHdoZW4gdGhlIHdpZGdldCBoYXMgYSBzZWxlY3Rpb24gaGFuZGxlIGluIGFuIFJUTCBlbnZpcm9ubWVudC5cbiAqIFRoZSBzZWxlY3Rpb24gaGFuZGxlciBpcyBhbGlnbmVkIHRvIHRoZSByaWdodCBzaWRlIG9mIHRoZSB3aWRnZXQgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBjcmVhdGVcbiAqIGFkZGl0aW9uYWwgc3BhY2UgZm9yIGl0IG5leHQgdG8gdGhlIFwiYmVmb3JlXCIgYnV0dG9uLlxuICovXG4uY2tbZGlyPVwicnRsXCJdIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYXMgYSBjaGlsZCBvZiBhIHNlbGVjdGVkXG4gKiBuZXN0ZWQgZWRpdGFibGUgKGUuZy4gbXVsaXQtY2VsbCB0YWJsZSBzZWxlY3Rpb24pLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83MjYzLlxuICovXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCB7XG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdCYgLmNrLXdpZGdldCB7XG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKlxuICogSGlkZSB0eXBlIGFyb3VuZCBidXR0b25zIG9mIGFsbCB3aWRnZXQgcGFyZW50cyB3aGVuIHRoZSB3aWRnZXQgaXMgYmVpbmcgaG92ZXJlZC5cbiAqL1xuLmNrIC5jay13aWRnZXQ6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkge1xuXHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRAbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1oaWRkZW47XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGJ1dCB0aGUgdXNlciBjbGlja2VkIG91dHNpZGUgb2YgdGhlIGVkaXRvciAoYmx1cnJlZCB0aGUgZWRpdG9yKS5cbiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpub3QoOmhvdmVyKSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZSk7XG5cblx0JiBzdmcgKiB7XG5cdFx0c3Ryb2tlOiBoc2woMCwwJSw2MCUpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2gge1xuXHQwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDEwO1xuXHR9XG5cdDIwJSwgMTAwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2gge1xuXHQwJSwgMjAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNztcblx0fVxuXHQ0MCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciB7XG5cdDAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAwIGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG5cdDUwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGEpKTtcblx0fVxuXHQxMDAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhKSk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDQ5JSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQ1MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0OTklIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGNvZGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuMyk7XG5cdHBhZGRpbmc6IC4xNWVtO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1jb2RlX3NlbGVjdGVkICB7XG5cdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDc4JSwgMC41KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBCYXNlZCBvbiBkZWZhdWx0IENLQm94IHRoZW1lIGNvbG9ycyAqL1xuXHQtLWNrLWltYWdlLXByb2Nlc3NpbmctaGlnaGxpZ2h0LWNvbG9yOiBoc2woMjIwLCAxMCUsIDk4JSk7XG5cdC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjIwLCAxMCUsIDkwJSk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2Uge1xuXHRcdCYuaW1hZ2UtcHJvY2Vzc2luZyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHRcdFx0OTBkZWcsXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKSxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcblxuXHRcdFx0XHRhbmltYXRpb246IGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIDJzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdH1cblxuXHRcdFx0JiBpbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2staW1hZ2UtcHJvY2Vzc2luZy1hbmltYXRpb24ge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0Lypcblx0ICogVmVydGljYWwgZHJvcCB0YXJnZXQgKGluIHRleHQpLlxuXHQgKi9cblx0JiAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdFx0JiBzcGFuIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IGJlaW5nIGRyYWdnZWQgKGl0cyBwcmV2aWV3KS5cblx0ICovXG5cdCYgLmNrLXdpZGdldDotd2Via2l0LWRyYWcge1xuXHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtbGluZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBwcmUge1xuXHRwYWRkaW5nOiAxZW07XG5cdGNvbG9yOiBoc2woMCwgMCUsIDIwLjglKTtcblx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc3JSk7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblxuXHQvKiBDb2RlIGJsb2NrIGFyZSBsYW5ndWFnZSBkaXJlY3Rpb27igJNhZ25vc3RpYy4gKi9cblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlyZWN0aW9uOiBsdHI7XG5cblx0dGFiLXNpemU6IDQ7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiBEb24ndCBsZXQgdGhlIGNvZGUgYmUgc3F1YXNoZWQgZS5nLiB3aGVuIGluIGEgdGFibGUgY2VsbC4gKi9cblx0bWluLXdpZHRoOiAyMDBweDtcblxuXHQmIGNvZGUge1xuXHRcdGJhY2tncm91bmQ6IHVuc2V0O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JltkYXRhLWxhbmd1YWdlXTo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1sYW5ndWFnZSk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1mb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBTYW5zLVNlcmlmO1xuXHQtLWNrLWNvbnRlbnQtZm9udC1zaXplOiBtZWRpdW07XG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1wcm9wZXJ0eS12YWx1ZS1kaXNhbGxvd2VkLWxpc3QgKi9cblx0LS1jay1jb250ZW50LWZvbnQtY29sb3I6ICMwMDA7XG5cdC0tY2stY29udGVudC1saW5lLWhlaWdodDogMS41O1xuXHQtLWNrLWNvbnRlbnQtd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmNrLWNvbnRlbnQge1xuXHRmb250LWZhbWlseTogdmFyKC0tY2stY29udGVudC1mb250LWZhbWlseSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUpO1xuXHRjb2xvcjogdmFyKC0tY2stY29udGVudC1mb250LWNvbG9yKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWNvbnRlbnQtbGluZS1oZWlnaHQpO1xuXHR3b3JkLWJyZWFrOiB2YXIoLS1jay1jb250ZW50LXdvcmQtYnJlYWspO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvciB7XG5cdC8qIEFsbCB0aGUgZWxlbWVudHMgd2l0aGluIGAuY2stZWRpdG9yYCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIGl0LlxuXHQgSWYgYW55IGVsZW1lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIHJlc3BlY3QgdG8gdGhlIDxib2R5PiwgZXRjLixcblx0IGl0IG11c3QgbGFuZCBvdXRzaWRlIG9mIHRoZSBgLmNrLWVkaXRvcmAgaW4gRE9NLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiAuY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9pc3N1ZXMvNjIgKi9cblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdCYgPiAuY2suY2stc2VhcmNoIHtcblx0XHRmbGV4OiAxO1xuXHR9XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBlbW9qaSBwaWNrZXIgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWVtb2ppLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cblxuZGl2LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZW1vamktcGlja2VyLWJhbGxvb24ge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoIC0tY2stei1kaWFsb2cgKSArIDEgKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0PiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cblx0XHQmLmNrLWVtb2ppX19jYXRlZ29yeS1pdGVtLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG5cblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplOiAyN3B4O1xufVxuXG4uY2suY2stZW1vamkge1xuXHQmIC5jay5jay1lbW9qaV9fdGlsZXMge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oMjY1cHgsIDQwdmgpO1xuXG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRcdCYgLmNrLWVtb2ppX19ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQmIC5jay1lbW9qaV9fdGlsZSB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtLmNrLWVtb2ppLXBpY2tlci1mb3JtIHtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cblx0Lypcblx0ICogYC5jay1mb3JtYCBvdmVycmlkZXMgc3R5bGluZyBvZiBhbGwgZHJvcGRvd25zIGJ5IGFkZGluZyBib3JkZXIgYXJvdW5kIHRoZW0uXG5cdCAqIFRoZSBib3JkZXIgaXMgbm90IG5lZWRlZCBpbiB0aGUgZW1vamkgcGlja2VyIGZvcm0gc28gdHJ5IHRvIHJlbW92ZSBpdCBrZWVwaW5nXG5cdCAqIHNwZWNpZmljaXR5IGhpZ2ggZW5vdWdoIHRvIG92ZXJyaWRlIHRoZSBmb3JtIHN0eWxpbmcuXG5cdCAqL1xuXHQmIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0PiAuY2suY2stZHJvcGRvd24ge1xuXG5cdFx0LmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0fVxuXG5cdFx0LmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IGluaXRpYWw7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbi5jay5jay1wbGFjZWhvbGRlcixcbi5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpO1xuXG5cdFx0LyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM0NjkuICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSMxOTg3LiAqL1xuLmNrLmNrLXJlYWQtb25seSAuY2stcGxhY2Vob2xkZXIge1xuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIEVsZW1lbnRzIG1hcmtlZCBieSB0aGUgUmVuZGVyZXIgYXMgaGlkZGVuIHNob3VsZCBiZSBpbnZpc2libGUgaW4gdGhlIGVkaXRvci4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHNwYW5bZGF0YS1jay11bnNhZmUtZWxlbWVudF0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWZpbmQtcmVzdWx0IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG59XG5cbi5jay1maW5kLXJlc3VsdF9zZWxlY3RlZCB7XG5cdGJhY2tncm91bmQ6IGhzbCgyOSwgMTAwJSwgNjAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMsIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdFx0Ji5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBcIkZPTlRfU0laRV9QUkVTRVRfVU5JVFNcIiBvYmplY3QgaW4gdGhlIFwiL3NyYy9mb250c2l6ZS91dGlscy5qc1wiIGZpbGUuICovXG5cbjpyb290IHtcblx0LS1jay1jb250ZW50LWZvbnQtc2l6ZS10aW55OiAwLjdlbTtcblx0LS1jay1jb250ZW50LWZvbnQtc2l6ZS1zbWFsbDogMC44NWVtO1xuXHQtLWNrLWNvbnRlbnQtZm9udC1zaXplLWJpZzogMS40ZW07XG5cdC0tY2stY29udGVudC1mb250LXNpemUtaHVnZTogMS44ZW07XG59XG5cbi8qIFN0eWxlcyBzaG91bGQgYmUgcHJlZml4ZWQgd2l0aCB0aGUgYC5jay1jb250ZW50YCBjbGFzcy5cblNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM2ICovXG4uY2stY29udGVudCB7XG5cdCYgLnRleHQtdGlueSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZS10aW55KTtcblx0fVxuXG5cdCYgLnRleHQtc21hbGwge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtc21hbGwpO1xuXHR9XG5cblx0JiAudGV4dC1iaWcge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtYmlnKTtcblx0fVxuXG5cdCYgLnRleHQtaHVnZSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWZvbnQtc2l6ZS1odWdlKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogSW5jcmVhc2Ugei1pbmRleCBvZiBldmVyeXRoaW5nIHRvIG1ha2Ugc3VyZSBub3RoaW5nIHN0aWNrcyBpbiBmcm9udCBvZiB0aGUgZWRpdG9yLlxuRGlzYWJsZSBzY3JvbGxiYXJzIHRoYXQgY2FuIGJlIHByZXNlbnQgZHVlIHRvIHRoZSByZXN0IG9mIHRoZSB3ZWJzaXRlIGNvbnRlbnQuICovXG5odG1sLmNrLWZ1bGxzY3JlZW4sXG5ib2R5LmNrLWZ1bGxzY3JlZW4ge1xuXHQtLWNrLXotZnVsbHNjcmVlbjogMTAwMDA7XG5cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQtLWNrLXotZGVmYXVsdDogY2FsYyh2YXIoLS1jay16LWZ1bGxzY3JlZW4pICsgMSk7XG5cdC0tY2stei1wYW5lbDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgOTk5KTtcblx0LS1jay16LWRpYWxvZzogMTAwMDAwO1xuXG5cdC8qIENLQm94IHdyYXBwZXJzIGhhdmUgei1pbmRleCBvZiA5OTk5LCBsZXQncyBidW1wIHRoZW0gb3ZlciB0aGUgZGlhbG9nJ3MgdG8gZW5zdXJlIHZpc2liaWxpdHkgbGlrZSBvdXRzaWRlIGZ1bGxzY3JlZW4gbW9kZS4gKi9cblx0JiAuY2tib3gtcmVzZXQ6bm90KCNuKT4uY2tib3gtLWRpYWxvZyB7XG5cdFx0LS1ja2JveC16LWluZGV4LXJvb3Q6IGNhbGModmFyKC0tY2stei1kaWFsb2cpICsgMSk7XG5cdH1cblxuXHQmIC5ja2JveDpub3QoI24pIC5ja2JveC1pbWctZWRpdG9yIHtcblx0XHQtLWNrYm94LXotaW5kZXgtcHJldmlldzogY2FsYyh2YXIoLS1jay16LWRpYWxvZykgKyAxKTtcblx0fVxuXG5cdCYgLmNrLXBhZ2luYXRpb24tdmlldy1saW5lIHtcblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZnVsbHNjcmVlbikgKyAxKTtcblx0fVxuXG5cdCYgLnBhZ2UtYnJlYWtfX2xhYmVsIHtcblx0XHQvKiBOZWVkcyB0byBiZSBoaWdoZXIgdGhhbiBmb3IgLmNrLXBhZ2luYXRpb24tdmlldy1saW5lIHRvIGJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGxpbmUuICovXG5cdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWZ1bGxzY3JlZW4pICsgMik7XG5cdH1cbn1cblxuLypcbkZ1bGxzY3JlZW4gbGF5b3V0OlxuXG48ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyXCI+XG5cdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX190b3Atd3JhcHBlciBjay1yZXNldF9hbGxcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fbWVudS1iYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJtZW51LWJhclwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX190b29sYmFyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwidG9vbGJhclwiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlLXdyYXBwZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fc2lkZWJhciBjay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJsZWZ0LXNpZGViYXJcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fZWRpdGFibGVcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJlZGl0YWJsZVwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19zaWRlYmFyIGNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJyaWdodC1zaWRlYmFyXCI+PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX3JpZ2h0LWVkZ2VcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJyaWdodC1lZGdlXCI+PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fYm90dG9tLXdyYXBwZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fYm9keS13cmFwcGVyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwiYm9keS13cmFwcGVyXCI+PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG4qL1xuXG4uY2suY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIHtcblx0LyogYHBvc2l0aW9uOiBmaXhlZGAgcHJldmVudHMgdGhlIG92ZXJzY3JvbGwgb24gbWFjb3MgdGhhdCB3b3VsZCBoYXBwZW4gd2l0aCBgcG9zaXRpb246IGFic29sdXRlYC4gKi9cblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZnVsbHNjcmVlbik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0JiAuY2suY2stcmV2aXNpb24taGlzdG9yeS11aV9fY2hhbmdlcy1uYXZpZ2F0aW9uIHtcblx0XHRtYXJnaW4tdG9wOiAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHR9XG59XG5cbi8qIElmIHRoZSBmdWxsc2NyZWVuIGNvbnRhaW5lciBpcyBub3QgZGlyZWN0bHkgaW4gdGhlIGJvZHksIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGl0J3MgcG9zaXRpb25lZCBhYnNvbHV0ZWx5LiAqL1xuOm5vdChib2R5PiAuY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyKS5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0JiAuY2stZnVsbHNjcmVlbl9fdG9wLXdyYXBwZXIge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDA7XG5cdH1cbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21lbnUtYmFyIC5jay5jay1tZW51LWJhciB7XG5cdGJvcmRlcjogbm9uZTtcbn1cblxuLmNrLmNrLWZ1bGxzY3JlZW5fX3Rvb2xiYXIgLmNrLXRvb2xiYXIge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiAwO1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZS13cmFwcGVyIHtcblx0LS1jay1mdWxsc2NyZWVuLWVkaXRvci10b3AtbWFyZ2luOiAyOHB4O1xuXHQtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLWJvdHRvbS1tYXJnaW46IDI4cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlIHtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbik7XG5cdGhlaWdodDogMTAwJTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItYm90dG9tLW1hcmdpbik7XG5cdH1cbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJvcmRlciBpcyB0YWtlbiBpbnRvIGFjY291bnQuICovXG5cdHdpZHRoOiBjYWxjKDIxMG1tICsgMnB4KTtcblx0LyogTWFrZSBzdXJlIHRoZSBib3JkZXIgaXMgdGFrZW4gaW50byBhY2NvdW50LiAqL1xuXHRtYXgtd2lkdGg6IGNhbGMoMjEwbW0gKyAycHgpO1xuXHRtaW4taGVpZ2h0OiAyOTdtbTtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0LyogUmVzZXQgbWFyZ2lucyB0aGF0IG1heSBiZSBwcmVzZW50IG9uIGVkaXRhYmxlLiBXZSBhZGQgdGhlbSBpbiBvdGhlciBwbGFjZXMuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMjBtbSAxMm1tO1xuXHRib3JkZXI6IDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcikgc29saWQ7XG5cdGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDNweCBoc2xhKDAsIDAlLCAwJSwgMC4wNzgpO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZSAuY2stc291cmNlLWVkaXRpbmctYXJlYSB7XG5cdHdpZHRoOiBjYWxjKDIxMG1tICsgMnB4KTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3NpZGViYXIge1xuXHR3aWR0aDogMjcwcHg7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciB7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWNrLXVzZXItYXZhdGFyLXNpemU6IDI4cHg7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0bWFyZ2luLXRvcDogMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0JiAuY2stYnV0dG9uLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci10b2dnbGUtYnV0dG9uIHtcblx0XHQtLWNrLWljb24tc2l6ZTogMjBweDtcblx0XHQtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0OiAwcHg7XG5cblx0XHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHR9XG5cblx0PiAuY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLXN0aWNreSB7XG5cdFx0LyogU2V0IG1pbmltYWwgd2lkdGggaWYgdGhlcmUgaXMgYW55IGl0ZW0gaW4gdGhlIHNpZGViYXIuICovXG5cdFx0bWluLXdpZHRoOiAyNzBweDtcblxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLS1jb2xsYXBzZWQge1xuXHRcdHdpZHRoOiA2NXB4O1xuXG5cdFx0PiA6bm90KC5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItdG9nZ2xlLWJ1dHRvbikge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2suY2stcHJlc2VuY2UtbGlzdC0tY29sbGFwc2VkIHtcblx0LS1jay11c2VyLWF2YXRhci1zaXplOiAzMnB4O1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay11c2VyIHtcblx0Zm9udC1zaXplOiAwLjg1ZW07XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIgLmNrLXByZXNlbmNlLWxpc3RfX3VzZXJzLWNvdW50ZXJfX3RleHQge1xuXHRmb250LXNpemU6IDAuODVlbTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci1pdGVtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cblx0LyogRmlyc3QgaGVhZGVyIHNob3VsZCBub3QgaGF2ZSB0b3AgcGFkZGluZy4gKi9cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci1oZWFkZXIge1xuXHQtLWNrLWZ1bGxzY3JlZW4tcHJlc2VuY2UtbGlzdC1oZWFkZXItZm9udC1zaXplOiAwLjg3NWVtO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZ1bGxzY3JlZW4tcHJlc2VuY2UtbGlzdC1oZWFkZXItZm9udC1zaXplKTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiB2YXIoLS1jay1kb2N1bWVudC1vdXRsaW5lLWl0ZW0tZGVmYXVsdC1jb2xvcik7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLS1zdGlja3kge1xuXHRwb3NpdGlvbjogc3RpY2t5O1xuXHR0b3A6IDA7XG5cblx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3ByZXNlbmNlLWxpc3Qge1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaXRlbS0tbm8tbWFyZ2luIHtcblx0bWFyZ2luOiAwO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay5jay1kb2N1bWVudC1vdXRsaW5lIHtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0cGFkZGluZy1yaWdodDogMDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2RvY3VtZW50LW91dGxpbmUtd3JhcHBlciB7XG5cdHBhZGRpbmctdG9wOiAwO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fc2lkZWJhci5jay1mdWxsc2NyZWVuX19yaWdodC1zaWRlYmFyIHtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbik7XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblxuXHQmOm5vdCguY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhci0tY29sbGFwc2VkKSA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0LyogU2V0IG1pbmltYWwgd2lkdGggaWYgdGhlcmUgaXMgYW55IGl0ZW0gaW4gdGhlIHNpZGViYXIuICovXG5cdFx0bWluLXdpZHRoOiAyNzBweDtcblx0fVxuXG5cdCYuY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhci0tY29sbGFwc2VkIHtcblx0XHR3aWR0aDogNjVweDtcblxuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWluLXdpZHRoOiA2NXB4O1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZnVsbHNjcmVlbl9fcmlnaHQtZWRnZSB7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cblx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDQ5NXB4O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXllbGxvdzogaHNsKDYwLCA5NyUsIDczJSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLWdyZWVuOiBoc2woMTIwLCA5MyUsIDY4JSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtbWFya2VyLXBpbms6IGhzbCgzNDUsIDk2JSwgNzMlKTtcblx0LS1jay1jb250ZW50LWhpZ2hsaWdodC1tYXJrZXItYmx1ZTogaHNsKDIwMSwgOTclLCA3MiUpO1xuXHQtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LXBlbi1yZWQ6IGhzbCgwLCA4NSUsIDQ5JSk7XG5cdC0tY2stY29udGVudC1oaWdobGlnaHQtcGVuLWdyZWVuOiBoc2woMTEyLCAxMDAlLCAyNyUpO1xufVxuXG5AZGVmaW5lLW1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgJGNvbG9yIHtcblx0LmNrLWNvbnRlbnQgLm1hcmtlci0kY29sb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LW1hcmtlci0kY29sb3IpO1xuXHR9XG59XG5cbkBkZWZpbmUtbWl4aW4gaGlnaGxpZ2h0LXBlbi1jb2xvciAkY29sb3Ige1xuXHQuY2stY29udGVudCAucGVuLSRjb2xvciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbnRlbnQtaGlnaGxpZ2h0LXBlbi0kY29sb3IpO1xuXG5cdFx0LyogT3ZlcnJpZGUgZGVmYXVsdCB5ZWxsb3cgYmFja2dyb3VuZCBvZiBgPG1hcms+YCBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbkBtaXhpbiBoaWdobGlnaHQtbWFya2VyLWNvbG9yIHllbGxvdztcbkBtaXhpbiBoaWdobGlnaHQtbWFya2VyLWNvbG9yIGdyZWVuO1xuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgcGluaztcbkBtaXhpbiBoaWdobGlnaHQtbWFya2VyLWNvbG9yIGJsdWU7XG5cbkBtaXhpbiBoaWdobGlnaHQtcGVuLWNvbG9yIHJlZDtcbkBtaXhpbiBoaWdobGlnaHQtcGVuLWNvbG9yIGdyZWVuO1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2staG9yaXpvbnRhbC1saW5lIHtcblx0LyogTmVjZXNzYXJ5IHRvIHJlbmRlciBwcm9wZXJseSBuZXh0IHRvIGZsb2F0ZWQgb2JqZWN0cywgZS5nLiBzaWRlIGltYWdlIGNhc2UuICovXG5cdGRpc3BsYXk6IGZsb3ctcm9vdDtcbn1cblxuLmNrLWNvbnRlbnQgaHIge1xuXHRtYXJnaW46IDE1cHggMDtcblx0aGVpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgODclKTtcblx0Ym9yZGVyOiAwO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdC8qIEdpdmUgdGhlIGVtYmVkIHNvbWUgYWlyLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG5cblx0LyogR2l2ZSB0aGUgaHRtbCBlbWJlZCBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMzMSkgKi9cblx0bWluLXdpZHRoOiAxNWVtO1xuXG5cdC8qIERvbid0IGluaGVyaXQgdGhlIHN0eWxlLCBlLmcuIHdoZW4gaW4gYSBibG9jayBxdW90ZS4gKi9cblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXG5cdC8qIC0tLS0tIEVtZWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQmOjpiZWZvcmUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgY29udGVudCBkb2VzIG5vdCBjb3ZlciB0aGUgbGFiZWwuICovXG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG5cdC8qIC0tLS0tIEVtZWJlZCBpbnRlcm5hbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LyogVGhlIHN3aXRjaCBtb2RlIGJ1dHRvbiB3cmFwcGVyLiAqL1xuXHQmIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXG5cdFx0LyogR2l2ZXMgc3BhY2luZyB0byB0aGUgc21hbGwgcmVuZGVyYWJsZSBlbGVtZW50cywgc28gdGhleSBhbHdheXMgY292ZXIgdGhlIHBsYWNlaG9sZGVyLiAqL1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDdweDtcblx0fVxuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LXBsYWNlaG9sZGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHR0b3A6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcbn1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0LyogTGVhdmUgc3BhY2UgZm9yIGxhYmVsICovXG5cdHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0bWluLXdpZHRoOiBjYWxjKDc2cHggKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KDpob3Zlcikge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLWh0bWwtb2JqZWN0LWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSBkYXNoZWQgdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLW9iamVjdC1lbWJlZC1sYWJlbCk7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDYwJSk7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXRpbnkpICsgdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuXG5cdC8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsLiAqL1xuXHQmIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cblxuXHQmIC5odG1sLW9iamVjdC1lbWJlZF9fY29udGVudCB7XG5cdFx0LyogRGlzYWJsZSB1c2VyIGludGVyYWN0aW9uIHdpdGggZW1iZWQgY29udGVudCAqL1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG59XG5cbmRpdi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRtYXJnaW46IDFlbSBhdXRvO1xufVxuXG5zcGFuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk3JSk7XG5cdC0tY2stY29udGVudC1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiBib3R0b207XG5cdHdvcmQtYnJlYWs6IG5vcm1hbDtcblx0b3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5cdGJyZWFrLWJlZm9yZTogYXZvaWQ7XG5cdGNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLWltYWdlLWNhcHRpb24tdGV4dCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbnRlbnQtY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXHRcdGNvbG9yOiB1bnNldDtcblx0fVxufVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlID4gZmlnY2FwdGlvbi5pbWFnZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodCAuNnMgZWFzZS1vdXQ7XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0JiB7XG5cdFx0XHRAbWl4aW4tY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdCYge1xuXHRcdFx0QG1peGluLWNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBQcmVzZXJ2ZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHJlc2l6ZWQgaW1hZ2UgYWZ0ZXIgaW50cm9kdWNpbmcgaW1hZ2UgaGVpZ2h0IGF0dHJpYnV0ZS4gKi9cbi5jay1jb250ZW50IGltZy5pbWFnZV9yZXNpemVkIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2VfcmVzaXplZCB7XG5cdG1heC13aWR0aDogMTAwJTtcblx0Lypcblx0VGhlIGA8ZmlndXJlPmAgZWxlbWVudCBmb3IgcmVzaXplZCBpbWFnZXMgbXVzdCBub3QgdXNlIGBkaXNwbGF5OnRhYmxlYCBhcyBicm93c2VycyBkbyBub3Qgc3VwcG9ydCBgbWF4LXdpZHRoYCBmb3IgaXQgd2VsbC5cblx0U2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwMTk2MDQvY2hyb21lLXNhZmFyaS1pZ25vcmluZy1tYXgtd2lkdGgtaW4tdGFibGUvMTQ0MjA2OTEjMTQ0MjA2OTEgZm9yIG1vcmUuXG5cdEZvcnR1bmF0ZWx5LCBzaW5jZSB3ZSBjb250cm9sIHRoZSB3aWR0aCwgdGhlcmUgaXMgbm8gcmlzayB0aGF0IHRoZSBpbWFnZSB3aWxsIGxvb2sgYmFkLlxuXHQqL1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHQmIGltZyB7XG5cdFx0LyogRm9yIHJlc2l6ZWQgaW1hZ2VzIGl0IGlzIHRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgdGhhdCBkZXRlcm1pbmVzIHRoZSBpbWFnZSB3aWR0aC4gKi9cblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdCYgPiBmaWdjYXB0aW9uIHtcblx0XHQvKiBUaGUgYDxmaWd1cmU+YCBlbGVtZW50IHVzZXMgYGRpc3BsYXk6YmxvY2tgLCBzbyBgPGZpZ2NhcHRpb24+YCBhbHNvIGhhcyB0by4gKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIFRoZSByZXNpemVkIGlubGluZSBpbWFnZSBuZXN0ZWQgaW4gdGhlIHRhYmxlIHNob3VsZCByZXNwZWN0IGl0cyBwYXJlbnQgc2l6ZS5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuICovXG5cdCYgdGQsXG5cdCYgdGgge1xuXHRcdCYgLmltYWdlLWlubGluZS5pbWFnZV9yZXNpemVkIGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdHdpZHRoOiA0ZW07XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcblx0LS1jay1jb250ZW50LWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZykgLyAyKTtcbn1cblxuLmNrLWNvbnRlbnQge1xuXHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2MzE3ICovXG5cdCYgLmltYWdlIHtcblx0XHQvKiBQcm92aWRlcyBhIG1pbmltYWwgc2lkZSBtYXJnaW4gZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBhbGlnbmVkIGltYWdlcywgc28gdGhhdCB0aGUgdXNlciBoYXMgYSB2aXN1YWwgZmVlZGJhY2tcblx0XHRjb25maXJtaW5nIHN1Y2Nlc3NmdWwgYXBwbGljYXRpb24gb2YgdGhlIHN0eWxlIGlmIGltYWdlIHdpZHRoIGV4Y2VlZHMgdGhlIGVkaXRvcidzIHNpemUuXG5cdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkzNDIgKi9cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZykpO1xuXHRcdH1cblxuXHRcdC8qIEFsbG93cyBkaXNwbGF5aW5nIG11bHRpcGxlIGZsb2F0aW5nIGltYWdlcyBpbiB0aGUgc2FtZSBsaW5lLlxuXHRcdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTgzI2lzc3VlY29tbWVudC04MDQ5ODgxMzIgKi9cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLXNpZGUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stY29udGVudC1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG5cdCYgLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stY29udGVudC1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG5cdCYgLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cblxuXHQvKiBTaW11bGF0ZXMgbWFyZ2luIGNvbGxhcHNpbmcgd2l0aCB0aGUgcHJlY2VkaW5nIHBhcmFncmFwaCwgd2hpY2ggZG9lcyBub3Qgd29yayBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLiAqL1xuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCxcblx0JiBwICsgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0LFxuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stY29udGVudC1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1jb250ZW50LWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1jb250ZW50LWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1jb250ZW50LWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogVGhlIGJ1dHRvbiBzaG91bGQgZGlzcGxheSBhcyBhIHJlZ3VsYXIgZHJvcC1kb3duIGlmIHRoZSBhY3Rpb24gYnV0dG9uXG5cdGlzIGZvcmNlZCB0byBmaXJlIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUgYXJyb3cgYnV0dG9uLiAqL1xuXHQmLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4ge1xuXHRcdCY6aG92ZXIsXG5cdFx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2UsXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblx0JiAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0JiAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKlxuXHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgbGlua2VkIGltYWdlIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBsaW5rIGltYWdlIGZlYXR1cmUuXG5cdCAqL1xuXHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHR6LWluZGV4OiAxO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCB7XG5cdCYgLmltYWdlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgaW1hZ2UuIENlbnRlciBpbWFnZSBieSBkZWZhdWx0LiAqL1xuXHRcdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdCBcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGNhcHRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgcHJvcGVybHkgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTg3MCkuICovXG5cdFx0bWluLXdpZHRoOiA1MHB4O1xuXG5cdFx0JiBpbWcge1xuXHRcdFx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSBtYXJnaW5zIGNhdXNlZCBieSBsaW5lLWhlaWdodCAoc2VlICM0NCkuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0LyogQ2VudGVyIHRoZSBpbWFnZSBpZiBpdHMgd2lkdGggaXMgc21hbGxlciB0aGFuIHRoZSBjb250ZW50J3Mgd2lkdGguICovXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBuZXZlciBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIChja2VkaXRvci9ja2VkaXRvcjUtdWkjNjcpLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiB0aGUgcGFyZW50IGNvbnRhaW5lciAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MzAwKS4gKi9cblx0XHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogS2VlcCBwcm9wb3J0aW9ucyBvZiB0aGUgYmxvY2sgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ1NDIuICovXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHQvKlxuXHRcdCAqIE5vcm1hbGx5LCB0aGUgLmltYWdlLWlubGluZSB3b3VsZCBoYXZlIFwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgYW5kIFwiaW1nIHsgd2lkdGg6IDEwMCUgfVwiICh0byBmb2xsb3cgdGhlIHdyYXBwZXIgd2hpbGUgcmVzaXppbmcpLlxuXHRcdCAqIFVuZm9ydHVuYXRlbHksIHRvZ2V0aGVyIHdpdGggXCJzcmNzZXRcIiwgaXQgZ2V0cyBhdXRvbWF0aWNhbGx5IHN0cmV0Y2hlZCB1cCB0byB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC5cblx0XHQgKiBUaGlzIHN0cmFuZ2UgYmVoYXZpb3IgZG9lcyBub3QgaGFwcGVuIHdpdGggaW5saW5lLWZsZXguXG5cdFx0ICovXG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cblx0XHQvKiBXaGlsZSBiZWluZyByZXNpemVkLCBkb24ndCBhbGxvdyB0aGUgaW1hZ2UgdG8gZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgZWRpdGluZyByb290LiAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIFRoaXMgaXMgcmVxdWlyZWQgYnkgU2FmYXJpIHRvIHJlc2l6ZSBpbWFnZXMgaW4gYSBzZW5zaWJsZSB3YXkuIFdpdGhvdXQgdGhpcywgdGhlIGJyb3dzZXIgYnJlYWtzIHRoZSByYXRpby4gKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCBpdCBtdXN0IGFjdCBhcyBhIGZsZXggY29udGFpbmVyIHRvIGxldCB0aGUgaW1nIHJlc2l6ZSBwcm9wZXJseSAqL1xuXHRcdCYgcGljdHVyZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCwgaXQgbXVzdCBhY3QgbGlrZSBhIHJlc2l6YWJsZSBpbWcuICovXG5cdFx0JiBwaWN0dXJlLFxuXHRcdCYgaW1nIHtcblx0XHRcdC8qIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciB0aGUgaW1nIHRvIHNwYW4gdGhlIGVudGlyZSAuaW1hZ2UtaW5saW5lIHdyYXBwZXIgYW5kIHRvIHJlc2l6ZSBwcm9wZXJseS4gKi9cblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtc2hyaW5rOiAxO1xuXG5cdFx0XHQvKiBQcmV2ZW50cyBvdmVyZmxvd2luZyB0aGUgZWRpdGluZyByb290IGJvdW5kYXJpZXMgd2hlbiBhbiBpbmxpbmUgaW1hZ2UgaXMgdmVyeSB3aWRlLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIEluaGVydGl0IHRoZSBjb250ZW50IHN0eWxlcyBwYWRkaW5nIG9mIHRoZSA8ZmlnY2FwdGlvbj4gaW4gY2FzZSB0aGUgaW50ZWdyYXRpb24gb3ZlcnJpZGVzIGB0ZXh0LWFsaWduOiBjZW50ZXJgXG5cdCAqIG9mIGAuaW1hZ2VgIChlLmcuIHRvIHRoZSBsZWZ0L3JpZ2h0KS4gVGhpcyBlbnN1cmVzIHRoZSBwbGFjZWhvbGRlciBzdGF5cyBhdCB0aGUgcGFkZGluZyBqdXN0IGxpa2UgdGhlIG5hdGl2ZVxuXHQgKiBjYXJldCBkb2VzLCBhbmQgbm90IGF0IHRoZSBlZGdlIG9mIDxmaWdjYXB0aW9uPi5cblx0ICovXG5cdCYgLmltYWdlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBpbWFnZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cblx0Lypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblx0JiAuaW1hZ2Uge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW5saW5lIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBNYWtlIHN1cmUgdGhlIG5hdGl2ZSBicm93c2VyIHNlbGVjdGlvbiBzdHlsZSBpcyBub3QgZGlzcGxheWVkLlxuXHRcdFx0ICogSW5saW5lIGltYWdlIHdpZGdldHMgaGF2ZSB0aGVpciBvd24gc3R5bGVzIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGUgYW5kXG5cdFx0XHQgKiBsZWF2aW5nIHRoaXMgdXAgdG8gdGhlIGJyb3dzZXIgaXMgYXNraW5nIGZvciBhIHZpc3VhbCBjb2xsaXNpb24uXG5cdFx0XHQgKi9cblx0XHRcdCYgOjpzZWxlY3Rpb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGlubGluZSBpbWFnZSBpZiB0aGUgaGVpZ2h0IGlzIHNldCBhbmQgdGhlIGltYWdlIGlzIHdpZGVyIHRoYW4gdGhlIGVkaXRvciB3aWR0aC5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQvKiBUaGUgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIGhhdmUgaXRzIG9yaWdpbmFsIHNpemUgaWYgbm90IHJlc2l6ZWQuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiBpbWcuaW1hZ2VfcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdHdpZHRoOiA0MDBweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHQmIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXcge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cdCYgZmlndXJlLmltYWdlID4gYSxcblx0JiBhIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHQmOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi8qIEdlbmVyaWMgY2xhc3MgdGhhdCB3cmFwcyBlYWNoIGxpbmsgYmFsbG9vbiB2aWV3LiAqL1xuLmNrLmNrLWxpbmstZm9ybSB7XG5cdCYgLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3Qge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHRcdCYgLmNrLWxpbmtfX2J1dHRvbiB7XG5cdFx0XHQmID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGlua19faXRlbXM6ZW1wdHkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay1wcm92aWRlcnMge1xuXHQmID4gLmNrLWxpbmstcHJvdmlkZXJzX19saXN0IHtcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdCYgPiAuY2staWNvbiB7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWxpc3QtYm9ndXMtcGFyYWdyYXBoIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1saXN0LW1hcmtlci1jb2xvcjogdmFyKC0tY2stY29udGVudC1mb250LWNvbG9yKTtcblx0LS1jay1jb250ZW50LWxpc3QtbWFya2VyLWZvbnQtZmFtaWx5OiB2YXIoLS1jay1jb250ZW50LWZvbnQtZmFtaWx5KTtcblx0LS1jay1jb250ZW50LWxpc3QtbWFya2VyLWZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUpO1xufVxuXG4uY2stY29udGVudCBsaSB7XG5cdC8qIE9waW5pb25hdGVkIGxpc3QgY29udGVudCBzdHlsaW5nOiBwcmV2ZW50cyBjb250ZW50IHNoaWZ0XG5cdCAqIHdoZW4gYSBsaXN0IGJlY29tZXMgbXVsdGktYmxvY2sgKEVudGVyICsgQmFja3NwYWNlIHNjZW5hcmlvKS5cblx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L3B1bGwvMTg4MDFcblx0ICovXG5cdCYgPiBwOmZpcnN0LW9mLXR5cGUge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQvKiBQcmV2ZW50cyBtYXJnaW5zIGZyb20gYXBwZWFyaW5nIHdoZW4gYSBib2d1cyBwYXJhZ3JhcGhcblx0ICogcmVjZWl2ZXMgbGluZSBoZWlnaHQgb3IgdGV4dCBhbGlnbm1lbnQuXG5cdCAqIEVuc3VyZXMgYSBjb25zaXN0ZW50IGV4cGVyaWVuY2Ugd2l0aCB0aGUgZmlyc3QgcGFyYWdyYXBoLlxuXHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xODgwMVxuXHQgKi9cblx0JiA+IHA6b25seS1vZi10eXBlIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWJvbGQ6Om1hcmtlciB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWl0YWxpYzo6bWFya2VyIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWNvbG9yOjptYXJrZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb250ZW50LWxpc3QtbWFya2VyLWNvbG9yKTtcblx0fVxuXG5cdCYuY2stbGlzdC1tYXJrZXItZm9udC1mYW1pbHk6Om1hcmtlciB7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWNrLWNvbnRlbnQtbGlzdC1tYXJrZXItZm9udC1mYW1pbHkpO1xuXHR9XG5cblx0Ji5jay1saXN0LW1hcmtlci1mb250LXNpemU6Om1hcmtlciB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1jb250ZW50LWxpc3QtbWFya2VyLWZvbnQtc2l6ZSk7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWZvbnQtc2l6ZS10aW55OjptYXJrZXIge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtdGlueSk7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWZvbnQtc2l6ZS1zbWFsbDo6bWFya2VyIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplLXNtYWxsKTtcblx0fVxuXG5cdCYuY2stbGlzdC1tYXJrZXItZm9udC1zaXplLWJpZzo6bWFya2VyIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWNvbnRlbnQtZm9udC1zaXplLWJpZyk7XG5cdH1cblxuXHQmLmNrLWxpc3QtbWFya2VyLWZvbnQtc2l6ZS1odWdlOjptYXJrZXIge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stY29udGVudC1mb250LXNpemUtaHVnZSk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IG9sIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuXG5cdCYgb2wge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW47XG5cblx0XHQmIG9sIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG5cblx0XHRcdCYgb2wge1xuXHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWxhdGluO1xuXG5cdFx0XHRcdCYgb2wge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQgdWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG5cblx0JiB1bCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG5cblx0XHQmIHVsIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuXG5cdFx0XHQmIHVsIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemU6IDE2cHg7XG59XG5cbkBkZWZpbmUtbWl4aW4gdG9kby1saXN0LWNoZWNrYm94IHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IHZhcigtLWNrLWNvbnRlbnQtdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSk7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0LyogTmVlZGVkIG9uIGlPUyAqL1xuXHRib3JkZXI6IDA7XG5cblx0LyogTFRSIHN0eWxlcyAqL1xuXHRsZWZ0OiAtMjVweDtcblx0bWFyZ2luLXJpZ2h0OiAtMTVweDtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdC8qIFJUTCBzdHlsZXMgKi9cblx0W2Rpcj1ydGxdJiB7XG5cdFx0bGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHQvKiBDYWxjdWxhdGUgdGljayBwb3NpdGlvbiwgc2l6ZSBhbmQgYm9yZGVyLXdpZHRoIHByb3BvcnRpb25hbCB0byB0aGUgY2hlY2ttYXJrIHNpemUuICovXG5cdFx0bGVmdDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMyApO1xuXHRcdHRvcDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLWNvbnRlbnQtdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdGhlaWdodDogY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gMi42ICk7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCBjYWxjKCB2YXIoLS1jay1jb250ZW50LXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stY29udGVudC10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG5cblx0JltjaGVja2VkXSB7XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQ6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDEyNiwgNjQlLCA0MSUpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvLWRvIGxpc3QgY29udGVudCBzdHlsZXMuXG4gKi9cbi5jay1jb250ZW50IC50b2RvLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXG5cdCYgbGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cblx0XHQmIC50b2RvLWxpc3Qge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdH1cblx0fVxuXG5cdCYgLnRvZG8tbGlzdF9fbGFiZWwge1xuXHRcdCYgPiBpbnB1dCB7XG5cdFx0XHRAbWl4aW4gdG9kby1saXN0LWNoZWNrYm94O1xuXHRcdH1cblxuXHRcdCYgLnRvZG8tbGlzdF9fbGFiZWxfX2Rlc2NyaXB0aW9uIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXG5cdFx0Ji50b2RvLWxpc3RfX2xhYmVsX3dpdGhvdXQtZGVzY3JpcHRpb24gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuICogVG8tZG8gbGlzdCBlZGl0aW5nIHZpZXcgc3R5bGVzLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwge1xuXHQvKlxuXHQgKiBUby1kbyBsaXN0IHNob3VsZCBiZSBpbnRlcmFjdGl2ZSBvbmx5IGR1cmluZyB0aGUgZWRpdGluZ1xuXHQgKiAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMjA5MCkuXG5cdCAqL1xuXHQmID4gaW5wdXQsXG5cdCYgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0Jjpob3Zlcjo6YmVmb3JlIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBEb2N1bWVudCBMaXN0cyAtIGVkaXRpbmcgdmlldyBoYXMgYW4gYWRkaXRpb25hbCBzcGFuIGFyb3VuZCBjaGVja2JveC5cblx0ICovXG5cdCYgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0QG1peGluIHRvZG8tbGlzdC1jaGVja2JveDtcblx0fVxuXG5cdCYudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIHtcblx0XHQmIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5tZWRpYSB7XG5cdC8qIERvbid0IGFsbG93IGZsb2F0ZWQgY29udGVudCBvdmVybGFwIHRoZSBtZWRpYS5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTMgKi9cblx0Y2xlYXI6IGJvdGg7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIG1lZGlhLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gMDtcblxuXHQvKiBNYWtlIHN1cmUgbWVkaWEgaXMgbm90IG92ZXJyaWRlbiB3aXRoIEJvb3RzdHJhcCBkZWZhdWx0IGBmbGV4YCB2YWx1ZS5cblx0U2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMzczLiAqL1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKiBHaXZlIHRoZSBtZWRpYSBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoIzQ0KSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stbWVkaWFfX3dyYXBwZXIge1xuXHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwge1xuXHRcdFx0LyogT3RoZXJ3aXNlIHRoZSBVUkwgd2lsbCBvdmVyZmxvdyB3aGVuIHRoZSBjb250ZW50IGlzIHZlcnkgbmFycm93LiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuZ29vZ2xlLmNvbVwiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0ge1xuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81OCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay1tZWRpYV9fd3JhcHBlciA+ICo6bm90KC5jay1tZWRpYV9fcGxhY2Vob2xkZXIpIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIHdoZW4gdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWQgKGUuZy4gdG8gYXZvaWQgb3BlbmluZyBsaW5rcyBieSBhY2NpZGVudCkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy8xOCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2stdmVydGljYWwtZm9ybSAuY2stYnV0dG9uIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMXB4O1xuXHRcdHRvcDogLTFweDtcblx0XHRib3R0b206IC0xcHg7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG5cdCY6Zm9jdXM6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0d2lkdGg6IDQwMHB4O1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIC5jay1pbnB1dCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLW1lZGlhLXBob25lIHtcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lbnRpb24tbGlzdC1tYXgtaGVpZ2h0OiAzMDBweDtcbn1cblxuLmNrLmNrLW1lbnRpb25zIHtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stbWVudGlvbi1saXN0LW1heC1oZWlnaHQpO1xuXG5cdG92ZXJmbG93LXk6IGF1dG87XG5cblx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBTYWZhcmlcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZW50aW9uL2lzc3Vlcy80MSAqL1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuXHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBTYWZhcmlcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZW50aW9uL2lzc3Vlcy80MSAqL1xuXHQmID4gLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cbn1cblxuZGl2LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stbWVudGlvbi1iYWxsb29uIHtcblx0ei1pbmRleDogY2FsYyggdmFyKCAtLWNrLXotZGlhbG9nICkgKyAxICk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQ6IDIwOCwgMCUsIDUxJTtcblx0LS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1vdXRsaW5lOiBoc2woMGRlZyAwJSA3NSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdzogaHNsKDBkZWcgMCUgMCUgLyAxMSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtcHJvZ3Jlc3MtYmFja2dyb3VuZDogaHNsKDAsMCUsNDAlKTtcbn1cblxuLmNrLmNrLW1pbmltYXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdCYsXG5cdCYgaWZyYW1lIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQmIGlmcmFtZSB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtb3V0bGluZSk7XG5cdFx0Ym94LXNoYWRvdzogMCAycHggNXB4IHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdyk7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0JiAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRvcDogMDtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4yICk7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2UtaW4tb3V0O1xuXG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMyApO1xuXHRcdH1cblxuXHRcdCYuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZyxcblx0XHQmLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDpoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC40ICk7XG5cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtcHJvZ3Jlc3MpIFwiJVwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1cHg7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDJweCA0cHg7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDtcblxuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAucGFnZS1icmVhayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y2xlYXI6IGJvdGg7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrX19sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0cGFkZGluZzogLjNlbSAuNmVtO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdGZvbnQtc2l6ZTogMC43NWVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAlKTtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym94LXNoYWRvdzogMnB4IDJweCAxcHggaHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXG5cdC8qIERpc2FibGUgdGhlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCB0aGUgbGFiZWwgdGV4dCBieSB0aGUgdXNlci4gKi9cblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogRG8gbm90IHNob3cgdGhlIHBhZ2UgYnJlYWsgZWxlbWVudCBpbnNpZGUgdGhlIHByaW50IHByZXZpZXcgd2luZG93LiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIEZyb20gdGltZSB0byB0aW1lIHBsYWNpbmcgcGFnZS1icmVhayBkaXJlY3RseSBhZnRlciBhIGJsb2NrIGVsZW1lbnQgd2l0aCBtYXJnaW4gY2F1c2VzIGFwcGVuZGluZyBhIG5ldyBibGFuayBwYWdlIGluIHBhZ2luYXRpb24gbW9kZS5cblx0ICogUmVtb3ZpbmcgbWFyZ2luLWJvdHRvbSBmcm9tIHRoZSBibG9jayBlbGVtZW50IGZpeGVzIHRoYXQgaXNzdWUgYW5kIHRoZSBtYXJnaW4gaXMgbm90IGJlaW5nIG1vdmVkIHRvIHRoZSBuZXh0IGJsYW5rIHBhZ2UuXG5cdCAqXG5cdCAqIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIHBhZ2luYXRpb24gcGx1Z2lucy5cblx0ICovXG5cdC5jay1jb250ZW50ICo6aGFzKCsgLnBhZ2UtYnJlYWspIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA0NiUpO1xufVxuXG5AZGVmaW5lLW1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+JCh0ZXh0KTwvdGV4dD48L3N2Zz5cIik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG59XG5cbkBkZWZpbmUtbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLXJ0bCAkdGV4dCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz4kKHRleHQpPC90ZXh0Pjwvc3ZnPlwiKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG59XG5cbkBkZWZpbmUtbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kICR0ZXh0IHtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZy10b3A6IDE1cHg7XG5cblx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHRbZGlyPWx0cl0gJiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQ7XG5cdH1cblx0W2Rpcj1ydGxdICYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtcnRsICR0ZXh0O1xuXHR9XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQ7XG5cdH1cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtcnRsICR0ZXh0O1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB7XG5cdCYgYWRkcmVzcyB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBBRERSRVNTO1xuXHR9XG5cblx0JiBhc2lkZSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBBU0lERTtcblx0fVxuXG5cdCYgYmxvY2txdW90ZSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBCTE9DS1FVT1RFO1xuXHR9XG5cblx0JiBkZXRhaWxzIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIERFVEFJTFM7XG5cdH1cblxuXHQmIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBESVY7XG5cdH1cblxuXHQmIGZvb3RlciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBGT09URVI7XG5cdH1cblxuXHQmIGgxIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEgxO1xuXHR9XG5cblx0JiBoMiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIMjtcblx0fVxuXG5cdCYgaDMge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDM7XG5cdH1cblxuXHQmIGg0IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEg0O1xuXHR9XG5cblx0JiBoNSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBINTtcblx0fVxuXG5cdCYgaDYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDY7XG5cdH1cblxuXHQmIGhlYWRlciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIRUFERVI7XG5cdH1cblxuXHQmIG1haW4ge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgTUFJTjtcblx0fVxuXG5cdCYgbmF2IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIE5BVjtcblx0fVxuXG5cdCYgcHJlIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFBSRTtcblx0fVxuXG5cdCYgb2wge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgT0w7XG5cdH1cblxuXHQmIHVsIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFVMO1xuXHR9XG5cblx0JiBwIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFA7XG5cdH1cblxuXHQmIHNlY3Rpb24ge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgU0VDVElPTjtcblx0fVxuXG5cdCYgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEZJR0NBUFRJT047XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stZGlyICRkaXJlY3Rpb24ge1xuXHRbZGlyPVwiJChkaXJlY3Rpb24pXCJdICYge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYTo6YWZ0ZXIsXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCk7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWE6OmFmdGVyIHtcblx0Y29udGVudDogYXR0cihkYXRhLXZhbHVlKSBcIiBcIjtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHJlc2l6ZTogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpub3QoW3JlYWRvbmx5XSk6Zm9jdXMge1xuXHRcdEBtaXhpbiBjay1mb2N1cy1yaW5nO1xuXHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWlubmVyLXNoYWRvdyk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5AZGVmaW5lLW1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0LmNrLXJvdW5kZWQtY29ybmVycyAmLFxuXHQmLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWZvY3VzLXJpbmcge1xuXHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRvdXRsaW5lOiBub25lO1xuXHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1ib3gtc2hhZG93ICRzaGFkb3dBLCAkc2hhZG93QjogMCAwIHtcblx0Ym94LXNoYWRvdzogJHNoYWRvd0EsICRzaGFkb3dCO1xufVxuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZHJvcC1zaGFkb3cge1xuXHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1kcm9wLXNoYWRvdyk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMge1xuXHQmID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiB7XG5cdFx0d2lkdGg6IDM1MHB4O1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtY29sdW1uLWdhcDogMHB4O1xuXHRcdGdyaWQtcm93LWdhcDogMHB4O1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bztcblxuXHRcdCYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMge1xuXHRcdFx0Z3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAyO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIC4xNXMgZWFzZSBib3RoO1xuXG5cdFx0XHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cblx0XHRcdFx0JiAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdCYgPiBidXR0b24ge1xuXHRcdFx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgPiBzcGFuIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgPiAuY2stY2hhcmFjdGVyLWdyaWQge1xuXHRcdFx0Z3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xuXHRcdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdFx0XHRncmlkLWFyZWE6IDMgLyAxIC8gNCAvIDI7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtY29sdW1uczogMztcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY2stc3R5bGUtcGFuZWwtY29sdW1ucyksYXV0byk7XG5cdGp1c3RpZnktY29udGVudDogc3RhcnQ7XG5cblx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0JiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IHtcblx0LyogRW5zdXJlIHRoYXQgdGFibGUgaGVhZGVyIHRleHQgaXMgYWxpZ25lZCB0byB0aGUgc3RhcnQgYnkgZGVmYXVsdC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE5NDU0LiAqL1xuXHQmIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogc3RhcnQ7XG5cdH1cblxuXHQvKiBUZXh0IGFsaWdubWVudCBvZiB0aGUgdGFibGUgaGVhZGVyIHNob3VsZCBtYXRjaCB0aGUgZWRpdG9yIHNldHRpbmdzIGFuZCBvdmVycmlkZSB0aGUgbmF0aXZlIGJyb3dzZXIgc3R5bGluZyxcblx0d2hlbiBjb250ZW50IGlzIGF2YWlsYWJsZSBvdXRzaWRlIHRoZSBlZGl0b3IuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM4LiAqL1xuXHQmW2Rpcj1cInJ0bFwiXSAudGFibGUgdGgge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0JltkaXI9XCJsdHJcIl0gLnRhYmxlIHRoIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0JiBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblxuXHRcdCYgPiB0YWJsZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQmIC50YWJsZTpub3QoLmxheW91dC10YWJsZSkge1xuXHRcdC8qIEdpdmUgdGhlIHRhYmxlIHdpZGdldCBzb21lIGFpciBhbmQgY2VudGVyIGl0IGhvcml6b250YWxseSAqL1xuXHRcdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdFx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRcdG1hcmdpbjogMC45ZW0gYXV0bztcblx0fVxuXG5cdCYgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpLFxuXHQmIGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSB7XG5cdFx0LyogVGhlIHRhYmxlIGNlbGxzIHNob3VsZCBoYXZlIHNsaWdodCBib3JkZXJzICovXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHRib3JkZXItc3BhY2luZzogMDtcblxuXHRcdC8qIFRoZSBvdXRlciBib3JkZXIgb2YgdGhlIHRhYmxlIHNob3VsZCBiZSBzbGlnaHRseSBkYXJrZXIgdGhhbiB0aGUgaW5uZXIgbGluZXMuXG5cdFx0QWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10YWJsZS9pc3N1ZXMvNTAuICovXG5cdFx0Ym9yZGVyOiAxcHggZG91YmxlIGhzbCgwLCAwJSwgNzAlKTtcblxuXHRcdCYgPiB0aGVhZCxcblx0XHQmID4gdGJvZHkge1xuXHRcdFx0LyogVGhlIGxpbnRlciBpcyBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgbGludGVyIGlzIGNvbmZ1c2VkIHdoZW4gcmVzb2x2aW5nIHRoZSBgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpYFxuXHRcdFx0YW5kIGBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGVgIHNlbGVjdG9ycyBjb21iaW5lZCB3aXRoIGJlbG93IHNlbGVjdG9ycy5cblx0XHRcdFRoZXJlIGlzIG5vIG5lZWQgdG8gc3BsaXQgaXQgaW50byB0d28gbGFyZ2Ugc3RydWN0dXJlcyB3aXRoIHNhbWUgY29kZSBqdXN0IHRvIG1ha2UgbGludGVyIGhhcHB5LiAqL1xuXHRcdFx0Lyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHRcdFx0JiA+IHRyIHtcblx0XHRcdFx0JiA+IHRoIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAwJSwgNSUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiA+IHRkLFxuXHRcdFx0XHQmID4gdGgge1xuXHRcdFx0XHRcdC8qIE9waW5pb25hdGVkIHRhYmxlIGNvbnRlbnQgc3R5bGluZzogcHJldmVudHMgY29udGVudCBmcm9tIHNoaWZ0aW5nXG5cdFx0XHRcdFx0ICogd2hlbiBFbnRlciBpcyBwcmVzc2VkIGluIHRoZSBmaXJzdCBjZWxsLlxuXHRcdFx0XHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9wdWxsLzE4ODAxXG5cdFx0XHRcdFx0ICovXG5cdFx0XHRcdFx0JiA+IHA6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8qIE1pcnJvcnMgdGhlIHJ1bGUgYWJvdmUgZm9yIHRoZSBsYXN0IHBhcmFncmFwaCB0byBrZWVwIHRoZVxuXHRcdFx0XHRcdCAqIGV4cGVyaWVuY2UgY29uc2lzdGVudCB3aXRoIHRoZSBmaXJzdCBwYXJhZ3JhcGguXG5cdFx0XHRcdFx0ICpcblx0XHRcdFx0XHQgKiBUb2dldGhlciwgdGhlc2UgcnVsZXMgcHJldmVudCBtYXJnaW5zIGZyb20gYXBwZWFyaW5nIHdoZW4gYVxuXHRcdFx0XHRcdCAqIGJvZ3VzIHBhcmFncmFwaCBiZWNvbWVzIGEgcmVhbCBwYXJhZ3JhcGggYWZ0ZXIgaXQgcmVjZWl2ZXMgbGluZVxuXHRcdFx0XHRcdCAqIGhlaWdodCwgdGV4dCBhbGlnbm1lbnQsIG9yIG90aGVyIGJsb2NrIHN0eWxlLlxuXHRcdFx0XHRcdCAqXG5cdFx0XHRcdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L3B1bGwvMTg4MDFcblx0XHRcdFx0XHQgKi9cblx0XHRcdFx0XHQmID4gcDpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwLjRlbTtcblxuXHRcdFx0XHRcdC8qIFRoZSBib3JkZXIgaXMgaW5oZXJpdGVkIGZyb20gLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHN0eWxlcywgc28gdGhlb3JldGljYWxseSBpdCdzIG5vdCBuZWNlc3NhcnkgaGVyZS5cblx0XHRcdFx0XHRIb3dldmVyLCB0aGUgYm9yZGVyIGlzIGEgY29udGVudCBzdHlsZSwgc28gaXQgc2hvdWxkIHVzZSAuY2stY29udGVudCAoc28gaXQgd29ya3Mgb3V0c2lkZSB0aGUgZWRpdG9yKS5cblx0XHRcdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzUlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgcHJpbnQge1xuXHQuY2stY29udGVudCBmaWd1cmUudGFibGUge1xuXHRcdC8qKlxuXHRcdCAqIFNvbWV0aW1lcyBDaHJvbWUgaW5jb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSBsYXN0IHRhYmxlIHJvdyBhbmQgc29tZVxuXHRcdCAqIG9mIHRoZSBjb250ZW50IG92ZXJsYXBzIHRoZSBwYXJhZ3JhcGggdGhhdCBpcyBwbGFjZWQgZGlyZWN0bHkgYWZ0ZXIgdGhlIHRhYmxlLiBJdCBhZmZlY3RzXG5cdFx0ICogdGhlIGNvbHVtbiBzcGxpdCBtb2RlIHBhZ2luYXRpb24gY2FsY3VsYXRpb24gd2hpY2ggY2F1c2VzIG1pc21hdGNoIGJldHdlZW4gdGhlIHByaW50IG1vZGUgYW5kXG5cdFx0ICogdGhlIHByZXZpZXcgbW9kZS5cblx0XHQgKlxuXHRcdCAqIFRoaXMgaXNzdWUgaGFwcGVucyBvbmx5IGlmOlxuXHRcdCAqXG5cdFx0ICogXHQqIFRoZSB0YWJsZSBpcyBpbnNpZGUgYSBmaWd1cmUgZWxlbWVudC5cblx0XHQgKiBcdCogVGhlIHRhYmxlIGhhcyBgZGlzcGxheTogdGFibGVgIHN0eWxlIHNldC5cblx0XHQgKiBcdCogVGhlIGJsb2NrIGVsZW1lbnQgaXMgcGxhY2VkIGRpcmVjdGx5IGFmdGVyIHRoZSB0YWJsZS5cblx0XHQgKi9cblx0XHQmOm5vdCgubGF5b3V0LXRhYmxlKSB7XG5cdFx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdFx0XHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIEV4cGFuZGluZyB0aGUgdGFibGUgdG8gdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRhYmxlc1xuXHRcdCAqIGFyZSByZW5kZXJlZCBpbnNpZGUgPGZpZ3VyZT4gZWxlbWVudHMsIHdoaWNoIGlzIGtpbmRhIGJ1Z2d5IGluIHRhYmxlIGhlaWdodCBjYWxjdWxhdGlvbi5cblx0XHQgKiBXaGlsZSBzZXR0aW5nIGBoZWlnaHQ6IDEwMCVgIGZpeGVzIHRoZSBpc3N1ZSBpbiB0aGUgZWRpdGluZyBtb2RlIGRlc2NyaWJlZCBoZXJlOlxuXHRcdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYxODZcblx0XHQgKlxuXHRcdCAqIGl0J3MgY2F1c2luZyBhbm90aGVyIGlzc3VlIHdpdGggdGhlIHRhYmxlIGhlaWdodCBpbiB0aGUgcHJpbnQgcHJldmlldyBtb2RlIGhlcmU6XG5cdFx0ICogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY4NTZcblx0XHQgKlxuXHRcdCAqIEZvciBub3csIHJlc2V0dGluZyB0aGUgaGVpZ2h0IHRvIGBpbml0aWFsYCBpbiB0aGUgcHJpbnQgbW9kZSB3b3JrcyBhcyBhIHdvcmthcm91bmQuXG5cdFx0ICovXG5cdFx0Jjpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSB7XG5cdFx0XHRoZWlnaHQ6IGluaXRpYWw7XG5cdFx0fVxuXHR9XG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay10YWJsZS1ib2d1cy1wYXJhZ3JhcGgge1xuXHQvKlxuXHQgKiBVc2UgZGlzcGxheTppbmxpbmUtYmxvY2sgdG8gZm9yY2UgQ2hyb21lL1NhZmFyaSB0byBsaW1pdCB0ZXh0IG11dGF0aW9ucyB0byB0aGlzIGVsZW1lbnQuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MDYyLlxuXHQgKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qXG5cdCAqIElubGluZSBIVE1MIGVsZW1lbnRzIG5lc3RlZCBpbiB0aGUgc3BhbiBzaG91bGQgYWx3YXlzIGJlIGRpbWVuc2lvbmVkIGluIHJlbGF0aW9uIHRvIHRoZSB3aG9sZSBjZWxsIHdpZHRoLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy5cblx0ICovXG5cdHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdFx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogNCBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNTcgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNTc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogMyBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNDMgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNDM7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQmLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblx0XHQmID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmxheW91dC10YWJsZSB7XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cdFx0XHQvKlxuXHRcdFx0KiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSwgLmltYWdlIG9yIC50YWJsZSlcblx0XHRcdCogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0XHQqL1xuXHRcdFx0JjpsYXN0LWNoaWxkLFxuXHRcdFx0LyogRmFsbGJhY2sgZm9yIGhpZGRlbiBmYWtlIHNlbGVjdGlvbiBkaXYgKi9cblx0XHRcdCY6bnRoLWxhc3QtY2hpbGQoMik6aGFzKCArIC5jay1mYWtlLXNlbGVjdGlvbi1jb250YWluZXIpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKiBXaWRnZXQgdHlwZSBhcm91bmQgb3ZlcnJpZGVzLiAqL1xuXHRcdCYuY2std2lkZ2V0IHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQvKiBUbyBwcmV2ZW50IHRoZSB3aWRnZXQgb3V0bGluZSBmcm9tIGJlaW5nIGN1dCBvZmYgYXQgdGhlIGJvdHRvbVxuXHRcdFx0XHR3aGVuIHRoZSBuZXh0IGNlbGwgb3IgdGFibGUgaGFzIGEgYmFja2dyb3VuZCBjb2xvciwgZm9yIGV4YW1wbGUuICovXG5cdFx0XHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qIEJlY2F1c2Ugb2Ygc2V0dGluZyB0aGUgb3BhY2l0eSB0byAwLjc1IHRvIHRoZSBzZWxlY3Rpb24gaGFuZGxlIGZvciB0aGUgbGF5b3V0IHRhYmxlLFxuXHRcdFx0aXQgb3ZlcnJpZGVzIHRoZSBzaW1pbGFyIHNlbGVjdG9yIGluIHdpZGdldCAoc3BlY2lmaWNpdHkgaXMgaGlnaGVyKSxcblx0XHRcdHRoYXRzIHdoeSB3ZSBtdXN0IG92ZXJyaWRlIGl0IGhlcmUgYWxzby4gKi9cblx0XHRcdCY6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHRcdC8qIFRvIHByZXZlbnQgdGhlIHdpZGdldCBvdXRsaW5lIGZyb20gYmVpbmcgY3V0IG9mZiBhdCB0aGUgYm90dG9tXG5cdFx0XHRcdHdoZW4gdGhlIG5leHQgY2VsbCBvciB0YWJsZSBoYXMgYSBiYWNrZ3JvdW5kIGNvbG9yLCBmb3IgZXhhbXBsZS4gKi9cblx0XHRcdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQge1xuXHQmIHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0JiBmaWd1cmUudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHQvKiBEbyBub3QgcmVzZXJ2ZSBzcGFjZSBhYm92ZSBhbmQgYmVsb3cgdGhlIGxheW91dCB0YWJsZS4gKi9cblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQmIHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0JiBmaWd1cmUudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUge1xuXHRcdGJvcmRlci1zcGFjaW5nOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0Ji5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHQmIC5jay1idXR0b24tc2F2ZSxcblx0XHQmIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWZvcm0ge1xuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyxcblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JhY2tncm91bmQtcm93LFxuXHRcdCYuY2stdGFibGUtZm9ybV9fY2VsbC10eXBlLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG5cdFx0Ji5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyxcblx0XHQmLmNrLXRhYmxlLWZvcm1fX2NlbGwtdHlwZS1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0XHRcdCYgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cblx0XHQvKiBGYWxsYmFjayBmb3IgdGFibGUgZGltZW5zaW9uIG9wZXJhdG9yICovXG5cdFx0JiA+ICo6bm90KC5jay1sYWJlbCwgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvcikge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0LyogQWxsb3cgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHN0YXR1cyAoZXJyb3IpIGJhbGxvb25zLiAqL1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDEwMCUpO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gc3RhdHVzIHN0YXlzIG9uIHRvcCBvZiBvdGhlciBmb3JtIGVsZW1lbnRzLiAqL1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4LWJhc2lzOiAwO1xuXHRcdFx0YWxpZ24tY29udGVudDogYmFzZWxpbmU7XG5cblx0XHRcdCYgLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29udGVudC1jb2xvci10YWJsZS1jYXB0aW9uLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTclKTtcblx0LS1jay1jb250ZW50LWNvbG9yLXRhYmxlLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC50YWJsZSA+IGZpZ2NhcHRpb24sXG4uY2stY29udGVudCBmaWd1cmUudGFibGUgPiB0YWJsZSA+IGNhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IHRvcDtcblx0d29yZC1icmVhazogbm9ybWFsO1xuXHRvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tY2stY29udGVudC1jb2xvci10YWJsZS1jYXB0aW9uLXRleHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb250ZW50LWNvbG9yLXRhYmxlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cblx0QG1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXHRcdGNvbG9yOiB1bnNldDtcblx0fVxufVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbixcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGZpZ3VyZS50YWJsZSA+IHRhYmxlID4gY2FwdGlvbiB7XG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0Ji50YWJsZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IC42cyBlYXNlLW91dDtcblx0XHR9XG5cdH1cblxuXHQmLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdHBhZGRpbmctbGVmdDogaW5oZXJpdDtcblx0XHRwYWRkaW5nLXJpZ2h0OiBpbmhlcml0O1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIHRhYmxlIGNhcHRpb24gcGxhY2Vob2xkZXIgZG9lc24ndCBvdmVyZmxvdyB0aGUgcGxhY2Vob2xkZXIgYXJlYS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTE2Mi5cblx0XHQgKi9cblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay10YWJsZS1jYXB0aW9uLWhpZ2hsaWdodCB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci10YWJsZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29udGVudC1jb2xvci10YWJsZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdCYge1xuXHRcdFx0QG1peGluLWNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQmIHtcblx0XHRcdEBtaXhpbi1jb250ZW50O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXRhYmxlLWNvbHVtbi1yZXNpemVyLWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGg6IDdweDtcblxuXHQvKiBUaGUgb2Zmc2V0IHVzZWQgZm9yIGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSByZXNpemVyIGVsZW1lbnQsIHNvIHRoYXQgaXQgaXMgcGxhY2VkIGV4YWN0bHkgYWJvdmUgdGhlIGNlbGwgYm9yZGVyLlxuXHQgICBUaGUgdmFsdWUgaXM6IG1pbnVzIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSByZXNpemVyIGRlY3JlYXNlZCBhZGRpdGlvbmFseSBieSB0aGUgaGFsZiB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciAoMC41cHgpLiAqL1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldDogY2FsYyh2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCkgKiAtMC41IC0gMC41cHgpO1xufVxuXG4uY2stY29udGVudCAudGFibGUgLmNrLXRhYmxlLXJlc2l6ZWQge1xuXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4uY2stY29udGVudCAudGFibGUgdGQsXG4uY2stY29udGVudCAudGFibGUgdGgge1xuXHQvKiBUbyBwcmV2ZW50IHRleHQgb3ZlcmZsb3dpbmcgYmV5b25kIGl0cyBjZWxsIHdoZW4gY29sdW1ucyBhcmUgcmVzaXplZCBieSByZXNpemUgaGFuZGxlclxuXHQoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9wdWxsLzE0Mzc5I2lzc3VlY29tbWVudC0xNTg5NDYwOTc4KS4gKi9cblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRoIHtcblx0LyogVGhlIHJlc2l6ZXIgZWxlbWVudCBpcyBwbGFjZWQgaW5zaWRlIGVhY2ggY2VsbCwgc28gaXQgbXVzdCBiZSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNlbGwuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHJpZ2h0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHR3aWR0aDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpO1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb2x1bW4tcmVzaXplX2Rpc2FibGVkIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBUaGUgcmVzaXplciBlbGVtZW50cywgd2hpY2ggYXJlIGV4dGVuZGVkIHRvIGFuIGV4dHJlbWVseSBoaWdoIGhlaWdodCwgYnJlYWsgdGhlIGRyYWcgJiBkcm9wIGZlYXR1cmUgaW4gQ2hyb21lLiBUbyBtYWtlIGl0IHdvcmsgYWdhaW4sXG4gICBhbGwgcmVzaXplcnMgbXVzdCBiZSBoaWRkZW4gd2hpbGUgdGhlIHRhYmxlIGlzIGRyYWdnZWQuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGVbZHJhZ2dhYmxlXSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyOmhvdmVyLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcl9fYWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItdGFibGUtY29sdW1uLXJlc2l6ZXItaG92ZXIpO1xuXHRvcGFjaXR5OiAwLjI1O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZVtkaXI9cnRsXSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0bGVmdDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0cmlnaHQ6IHVuc2V0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbnRlbnQtdGFibGUtc3R5bGUtc3BhY2luZzogMS41ZW07XG59XG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0ge1xuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXgtYmFzaXM6IDA7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBiYXNlbGluZTtcblxuXHRcdFx0JiAuY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQge1xuXHQmIC50YWJsZSB7XG5cdFx0Ji50YWJsZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1jb250ZW50LXRhYmxlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuXHRcdCYudGFibGUtc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtdGFibGUtc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji50YWJsZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXG5cdFx0Ji50YWJsZS1zdHlsZS1ibG9jay1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdCYudGFibGUtc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHQmLnRhYmxlLXN0eWxlLWFsaWduLWNlbnRlciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cblx0XHQmLnRhYmxlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1jb250ZW50LXRhYmxlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuXHRcdCYudGFibGUtc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWNvbnRlbnQtdGFibGUtc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji50YWJsZS1zdHlsZS1ibG9jay1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdCYudGFibGUtc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZm9ybS1kZWZhdWx0LXdpZHRoOiAzNDBweDtcbn1cblxuLmNrLmNrLWZvcm0ge1xuXHRwYWRkaW5nOiAwIDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0Ji5jay1mb3JtX2RlZmF1bHQtd2lkdGgge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1mb3JtLWRlZmF1bHQtd2lkdGgpO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LXRleHQsXG5cdCYgLmNrLmNrLWlucHV0LW51bWJlciB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG5cblx0JiAuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdCYgLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIERlZmF1bHQgYGNrLXJlc3BvbnNpdmUtZm9ybWAgY3VzdG9taXphdGlvbiB3aGVuIGl0IGxpZXMgbmV4dCB0byBgY2stZm9ybWAgY2xhc3MgKi9cblx0Ji5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdCYgLmNrLmNrLWZvcm1fX3JvdyB7XG5cdFx0XHQmLmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCB7XG5cdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0PiAuY2sge1xuXHRcdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay1mb3JtX19yb3dfbGFyZ2UtYm90dG9tLXBhZGRpbmcge1xuXHRcdFx0XHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCYgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQmID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LyogRW5kIG9mIGBjay1yZXNwb25zaXZlLWZvcm1gIGN1c3RvbWl6YXRpb24gKi9cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stZGlyICRkaXJlY3Rpb24ge1xuXHRbZGlyPVwiJChkaXJlY3Rpb24pXCJdICYge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0Ji5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG5cdFx0JiAuY2stYnV0dG9uLXNhdmUsXG5cdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fYmFja2dyb3VuZC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0XHRcdCYgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG5cdFx0LyogRmFsbGJhY2sgZm9yIHRhYmxlIGRpbWVuc2lvbiBvcGVyYXRvciAqL1xuXHRcdCY6bm90KC5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93KSA+ICo6bm90KC5jay1sYWJlbCwgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvcikge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0LyogQWxsb3cgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHN0YXR1cyAoZXJyb3IpIGJhbGxvb25zLiAqL1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDEwMCUpO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gc3RhdHVzIHN0YXlzIG9uIHRvcCBvZiBvdGhlciBmb3JtIGVsZW1lbnRzLiAqL1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW5wdXQtY29sb3Ige1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG5cdCYgPiBpbnB1dC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG5cblx0JiA+IGRpdi5jay5jay1kcm9wZG93biB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXG5cdFx0LyogVGhpcyBkcm9wZG93biBoYXMgbm8gYXJyb3cgYnV0IGEgY29sb3IgcHJldmlldyBpbnN0ZWFkLiAqL1xuXHRcdCYgPiAuY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0LyogUmVzb2x2aW5nIGlzc3VlIHdpdGggbWlzYWxpZ25lZCBidXR0b25zIG9uIFNhZmFyaSAoc2VlICMxMDU4OSkgKi9cblx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0JiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuL19oaWRkZW4uY3NzXCI7XG5AaW1wb3J0IFwiLi9femluZGV4LmNzc1wiO1xuQGltcG9ydCBcIi4vX3RyYW5zaXRpb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9fcG93ZXJlZGJ5LmNzc1wiO1xuQGltcG9ydCBcIi4vX2V2YWx1YXRpb25iYWRnZS5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBoaWRlcyBhbiBlbGVtZW50IGluIERPTS5cbiAqL1xuLmNrLWhpZGRlbiB7XG5cdC8qIE92ZXJyaWRlIHNlbGVjdG9yIHNwZWNpZmljaXR5LiBPdGhlcndpc2UsIGFsbCBlbGVtZW50cyB3aXRoIHNvbWUgZGlzcGxheVxuXHRzdHlsZSBkZWZpbmVkIHdpbGwgb3ZlcnJpZGUgdGhpcyBvbmUsIHdoaWNoIGlzIG5vdCBhIGRlc2lyZWQgcmVzdWx0LiAqL1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stei1kZWZhdWx0OiAxO1xuXHQtLWNrLXotcGFuZWw6IGNhbGMoIHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkgKTtcblx0LS1jay16LWRpYWxvZzogOTk5OTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGRpc2FibGVzIGFsbCB0cmFuc2l0aW9ucyBvZiB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQsXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQgKiB7XG5cdHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgMTAocHgpIGlzIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDEwIC8gMTMpO1xuXHQvKiB3aGVyZSAtMC4yKHB4KSBpcyB0aGUgbGV0dGVyIHNwYWNpbmcgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZzogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAtMC4yIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbDogMnB4O1xuXHQtLWNrLXBvd2VyZWQtYnktcGFkZGluZy1ob3Jpem9udGFsOiA0cHg7XG5cdC0tY2stcG93ZXJlZC1ieS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDMxJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0LS1jay1wb3dlcmVkLWJ5LXN2Zy13aWR0aDogNTM7XG5cdC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0OiAxMDtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGg6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGgpIC8gMTMpO1xuXHQtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogdmFyKC0tY2stcG93ZXJlZC1ieS1zdmctaGVpZ2h0KSAvIDEzKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLXBvd2VyZWQtYnktYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcblxuXHQmIC5jay5jay1wb3dlcmVkLWJ5IHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cblx0XHQmIGEge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRvcGFjaXR5OiAuNjY7XG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSg4MCUpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdFx0fVxuXG5cdFx0JiAuY2stcG93ZXJlZC1ieV9fbGFiZWwge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3IpO1xuXG5cdFx0fVxuXG5cdFx0JiAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGgpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0KTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdCYgYSB7XG5cdFx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdCZbY2xhc3MqPVwicG9zaXRpb25fYm9yZGVyXCJdIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stcG93ZXJlZC1ieS1ib3JkZXItY29sb3IpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcblxuXHQmIC5jay5jay1ldmFsdWF0aW9uLWJhZGdlIHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodCk7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cblx0XHQmIC5jay1ldmFsdWF0aW9uLWJhZGdlX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IDAgMnB4O1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcik7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJwb3NpdGlvbl9pbnNpZGVcIl0ge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yKTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXJpYS1saXZlLWFubm91bmNlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTEwMDAwcHg7XG5cdHRvcDogLTEwMDAwcHg7XG59XG5cbi5jay5jay1hcmlhLWxpdmUtcmVnaW9uLWxpc3Qge1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdGp1c3RpZnktY29udGVudDogcmlnaHQ7XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ji5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cblxuXHQvKiBDZW50ZXIgdGhlIGljb24gaG9yaXpvbnRhbGx5IGluIGEgYnV0dG9uIHdpdGhvdXQgdGV4dC4gKi9cblx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpICB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stdW5zZWxlY3RhYmxlIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGRlZmluZS1taXhpbiBjay1kaXIgJGRpcmVjdGlvbiB7XG5cdFtkaXI9XCIkKGRpcmVjdGlvbilcIl0gJiB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdCYuY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0d2lkdGg6IC45ZW07XG5cdFx0aGVpZ2h0OiAuOWVtO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staWNvbiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY29sbGFwc2libGUuY2stY29sbGFwc2libGVfY29sbGFwc2VkIHtcblx0JiA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jb2xvci1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jb2xvci1waWNrZXItaGV4LWlucHV0IHtcblx0d2lkdGg6IG1heC1jb250ZW50O1xuXG5cdCYgLmNrLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHR9XG59XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMCAwO1xuXHR3aWR0aDogdW5zZXQ7XG5cblx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay1jb2xvci1waWNrZXJfX2hhc2gtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIHtcblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuXHQmIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCB7XG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblx0JiAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IHtcblx0XHQmIC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRcdGZsZXg6IDFcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXG5cdCYuY2stZGlhbG9nLW92ZXJsYXlfX3RyYW5zcGFyZW50IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxufVxuXG4uY2suY2stZGlhbG9nIHtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0JiAuY2suY2stZm9ybV9faGVhZGVyICB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuXHQvKiBNb2RhbHMgc2hvdWxkIG5vdCBiZSBkcmFnZ2FibGUuICovXG5cdCY6bm90KC5jay1kaWFsb2dfbW9kYWwpIHtcblx0XHQmIC5jay5jay1mb3JtX19oZWFkZXIgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXHRcdH1cblx0fVxuXG5cdC5jay5jay1kaWFsb2ctb3ZlcmxheS5jay1kaWFsb2ctb3ZlcmxheV9fdHJhbnNwYXJlbnQgJiB7XG5cdFx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZyB7XG5cdCYgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stZHJvcGRvd24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuXHQvKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG5cdCYgLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdCYgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1heC13aWR0aCk7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbC12aXNpYmxlIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NlLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3N3LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3Ntdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfcyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogVXNpbmcgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMTAwJSwgMCApIGNhdXNlcyBibHVycnkgZHJvcGRvd24gb24gQ2hyb21lIDY3LTc4KyBvbiBub24tcmV0aW5hIGRpc3BsYXlzLlxuXHRcdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwNTMuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0XHRsZWZ0OiAwcHg7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdFx0cmlnaHQ6IDBweDtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX24ge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBtaWRkbGUtd2VzdCBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiA3NSU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTc1JSk7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbm1lLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NtZSB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS1lYXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUlKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvb2xiYXIgZHJvcGRvd24gcGFuZWxzIHNob3VsZCBiZSBhbHdheXMgYWJvdmUgdGhlIFVJIChlZy4gb3RoZXIgZHJvcGRvd24gcGFuZWxzKSBmcm9tIHRoZSBlZGl0b3IncyBjb250ZW50LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc4NzRcbiAqL1xuLmNrLmNrLXRvb2xiYXIgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpICsgMSApO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQmIC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOmZvY3VzIHtcblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGg6IDYwdnc7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzU1ODYgKi9cblx0d2lkdGg6IG1heC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoKTtcblxuXHQmIC5jay1idXR0b24ge1xuXHRcdCY6Zm9jdXMge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1heC1oZWlnaHQ6IDMxNHB4OyAvKiBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLCB0aGlzIGlzIGVxdWFsIHRvIDEwIG1lbnUgaXRlbXMuICovXG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgKyAxKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXG5cdCYuY2stZm9ybV9fcm93X2xhcmdlLXRvcC1wYWRkaW5nIHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQmLmNrLWZvcm1fX3Jvd19sYXJnZS1ib3R0b20tcGFkZGluZyB7XG5cdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cblx0Ji5jay1mb3JtX19yb3dfd2l0aC1zdWJtaXQge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdFx0JiA+ICo6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay1mb3JtX19yb3cge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19oZWFkZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdCYgaDIuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pY29uIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLWxpc3Qge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0JiAuY2stbGlzdF9faXRlbSxcblx0JiAuY2stbGlzdF9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC8qIE1ha2Ugc3VyZSB0aGF0IHdoYXRldmVyIGNoaWxkIG9mIHRoZSBsaXN0IGl0ZW0gZ2V0cyBmb2N1cywgaXQgcmVtYWlucyBvbiB0aGVcblx0dG9wLiBUaGFua3MgdG8gdGhhdCwgc3R5bGVzIGxpa2UgYm94LXNoYWRvdywgb3V0bGluZSwgZXRjLiBhcmUgbm90IG1hc2tlZCBieVxuXHRhZGphY2VudCBsaXN0IGl0ZW1zLiAqL1xuXHQmIC5jay1saXN0X19pdGVtID4gKjpmb2N1cyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIGFycm93IGRvZXMgbm90IGZsb2F0IG92ZXIgaXRzIGNoaWxkcmVuLiAqL1xuXHQtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpIC0gMyk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X25cIl0ge1xuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfc1wiXSB7XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3Zpc2libGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBCdXR0b25zIGluc2lkZSBhIHRvb2xiYXIgc2hvdWxkIGJlIGNlbnRlcmVkIHdoZW4gcm90YXRvciBiYXIgaXMgd2lkZXIuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdWkvaXNzdWVzLzQ5NVxuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCAuY2stdG9vbGJhciB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIEZha2UgcGFuZWxzIHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgbWFpbiBiYWxsb29uIGNvbnRlbnQuICovXG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgLSAxKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHR6LWluZGV4OiAxO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0aWNreS1wYW5lbCB7XG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpOyAvKiAjMzE1ICovXG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0fVxuXG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3lfYm90dG9tLWxpbWl0IHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXV0b2NvbXBsZXRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stc2VhcmNoIHtcblx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0JiA+IC5jay1zZWFyY2hfX2luZm8ge1xuXHRcdFx0JiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LyogSGlkZSB0aGUgZmlsdGVyZWQgdmlldyB3aGVuIG5vdGhpbmcgd2FzIGZvdW5kICovXG5cdFx0XHQmOm5vdCguY2staGlkZGVuKSB+ICoge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWhpZ2hsaWdodGVkLXRleHQgbWFyayB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0dmVydGljYWwtYWxpZ246IGluaXRpYWw7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIHtcblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblxuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LWRpYWxvZykgKyAxMDAgKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cblxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLXNwaW5uZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0ei1pbmRleDogMTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLXRvb2xiYXIge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZmxvdzogcm93IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRmbGV4LWdyb3c6IDE7XG5cblx0fVxuXG5cdCYgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0Lypcblx0XHQgKiBBIGxlYWRpbmcgb3IgdHJhaWxpbmcgc2VwYXJhdG9yIG1ha2VzIG5vIHNlbnNlIChzZXBhcmF0ZXMgZnJvbSBub3RoaW5nIG9uIG9uZSBzaWRlKS5cblx0XHQgKiBGb3IgaW5zdGFuY2UsIGl0IGNhbiBoYXBwZW4gd2hlbiB0b29sYmFyIGl0ZW1zIChhbHNvIHNlcGFyYXRvcnMpIGFyZSBnZXR0aW5nIGdyb3VwZWQgb25lIGJ5IG9uZSBhbmRcblx0XHQgKiBtb3ZlZCB0byBhbm90aGVyIHRvb2xiYXIgaW4gdGhlIGRyb3Bkb3duLlxuXHRcdCAqL1xuXHRcdCY6Zmlyc3QtY2hpbGQsXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfdmVydGljYWwgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfZmxvYXRpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0JiA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duIHtcblx0XHQmID4gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJsb2NrLXRvb2xiYXItYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ICB7XG5cdCYgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtbWF4LXdpZHRoOiA3NXZ3O1xuXHQtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0OiA1cHg7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aCk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvdHRvbTogMTAwJTtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0dG9wOiAxMDAlO1xuXHRcdGJvdHRvbTogYXV0bztcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0bGVmdDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRyaWdodDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRsZWZ0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbiB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdHJpZ2h0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93biB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzaXplcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxNSUpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0OiBoc2woMCwgMCUsIDk1JSk7XG5cblx0LS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG5cdC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodDogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAqIDIgKyAxMHB4KTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKiBUaGlzIGlzIG5lY2Nlc3NhcnkgZm9yIHR5cGUgYXJvdW5kIFVJIHRvIGJlIHBvc2l0aW9uZWQgcHJvcGVybHkuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpY29uIGluIG5vdCBhIHN1YmplY3QgdG8gZm9udC1zaXplIG9yIGxpbmUtaGVpZ2h0IHRvIGF2b2lkXG5cdFx0XHR1bm5lY2Vzc2FyeSBzcGFjaW5nIGFyb3VuZCBpdC4gKi9cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblx0Jjpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxufVxuXG4uY2sgLmNrLXNpemUtdmlldyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KTtcblxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0LFxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCxcblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQsXG5cdCYuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQsXG5cdCYuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG5cdC8qIENsYXNzIGFwcGxpZWQgaWYgdGhlIHdpZGdldCBpcyB0b28gc21hbGwgdG8gY29udGFpbiB0aGUgc2l6ZSBsYWJlbCAqL1xuXHQmLmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0dG9wOiBjYWxjKHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpICogLTEpO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI2LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay13aWRnZXRfd2l0aC1yZXNpemVyIHtcblx0LyogTWFrZSB0aGUgd2lkZ2V0IHdyYXBwZXIgYSByZWxhdGl2ZSBwb3NpdGlvbmluZyBjb250YWluZXIgZm9yIHRoZSBkcmFnIGhhbmRsZS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBUaGUgd3JhcHBlciBpdHNlbGYgc2hvdWxkIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgcG9pbnRlciBkZXZpY2UsIG9ubHkgdGhlIGhhbmRsZXMgc2hvdWxkLiAqL1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5jay1mb2N1c2VkIC5jay13aWRnZXRfd2l0aC1yZXNpemVyLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdCYgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFJlc2l6ZXJzIGFyZSB0aGUgb25seSBVSSBlbGVtZW50cyB0aGF0IHNob3VsZCBpbnRlcmZlcmUgd2l0aCBhIHBvaW50ZXIgZGV2aWNlLiAqL1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQsXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRjdXJzb3I6IG53c2UtcmVzaXplO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQsXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGN1cnNvcjogbmVzdy1yZXNpemU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNiwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2std2lkZ2V0IHtcblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zXG5cdCAqL1xuXHQmIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDIpO1xuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHR0b3A6IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0bGVmdDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHRib3R0b206IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0cmlnaHQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbixcblx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxcHg7XG5cdFx0XHRsZWZ0OiAxcHg7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuXHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0fVxuXG5cdC8qXG5cdCAqIFdoZW4gdGhlIHdpZGdldCBpcyBob3ZlcmVkIHRoZSBcImZha2UgY2FyZXRcIiB3b3VsZCBub3JtYWxseSBiZSBuYXJyb3dlciB0aGFuIHRoZVxuXHQgKiBleHRyYSBvdXRsaW5lIGRpc3BsYXllZCBhcm91bmQgdGhlIHdpZGdldC4gTGV0J3MgZXh0ZW5kIHRoZSBcImZha2UgY2FyZXRcIiB0byBtYXRjaFxuXHQgKiB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgd2lkZ2V0LlxuXHQgKi9cblx0Jjpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHRcdHJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgd2lkZ2V0IChiYWNrd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHdpZGdldCAoZm9yd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlIHJlYWQtb25seSBtb2RlIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSAjaXNFbmFibGVkIHByb3BlcnR5IG9mIHRoZSBXaWRnZXRUeXBlQXJvdW5kIHBsdWdpbi5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2std2lkZ2V0X190eXBlLWFyb3VuZF9kaXNhYmxlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXN0cmljdGVkIGVkaXRpbmcgbW9kZSAoZmVhdHVyZSkgb2YgdGhlIGVkaXRvci5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCB7XG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIGRpdi5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRkaXNwbGF5OiBpbml0aWFsO1xuXHR9XG59XG4iLCIvKiBhc3NldHMvYWRtaW4vc3R5bGVzL2N1c3RvbS5zY3NzICovXHJcbjpyb290IHtcclxuICAgIC0tdGJsci1wcmltYXJ5OiAjOGU2MTM1O1xyXG59XHJcblxyXG4ubmF2YmFyLXZlcnRpY2FsIC5uYXZiYXItY29sbGFwc2UgLnNpZGViYXIubmF2YmFyLW5hdiAubmF2LWl0ZW0gLmRyb3Bkb3duLW1lbnUtY29sdW1uIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGJsci1wcmltYXJ5KTtcclxufVxyXG5cclxuLm5hdmJhci1icmFuZC1pbWFnZSB7XHJcbiAgICBoZWlnaHQ6IDQuMnJlbTtcclxufSIsIi8qIFRyYW5zbGF0aW9uIEFjY29yZGlvbiBTdHlsaW5nICovXHJcbi50cmFuc2xhdGlvbi1hY2NvcmRpb24gLmFjY29yZGlvbi1pdGVtIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcclxufVxyXG5cclxuLnRyYW5zbGF0aW9uLWFjY29yZGlvbiAuYWNjb3JkaW9uLWJ1dHRvbiB7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xyXG59XHJcblxyXG4udHJhbnNsYXRpb24tYWNjb3JkaW9uIC5hY2NvcmRpb24tYnV0dG9uOm5vdCguY29sbGFwc2VkKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdmMWZmO1xyXG4gICAgY29sb3I6ICMwYzYzZTQ7XHJcbn1cclxuXHJcbi50cmFuc2xhdGlvbi1hY2NvcmRpb24gLmFjY29yZGlvbi1idXR0b24gLmZsYWcge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMTVweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbn1cclxuXHJcbi50cmFuc2xhdGlvbi1hY2NvcmRpb24gLmFjY29yZGlvbi1ib2R5IHtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxufVxyXG5cclxuLyogRmxhZyBpY29ucyB1c2luZyBDU1MgKi9cclxuLmZsYWctZnIge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTVNREFnTmpBd0lqNDhjbVZqZENCM2FXUjBhRDBpT1RBd0lpQm9aV2xuYUhROUlqWXdNQ0lnWm1sc2JEMGlJMFZFTWprek9TSXZQanh5WldOMElIZHBaSFJvUFNJMk1EQWlJR2hsYVdkb2REMGlOakF3SWlCbWFXeHNQU0lqWm1abUlpOCtQSEpsWTNRZ2QybGtkR2c5SWpNd01DSWdhR1ZwWjJoMFBTSTJNREFpSUdacGJHdzlJaU13TURJek9UVWlMejQ4TDNOMlp6ND1cIik7XHJcbn1cclxuXHJcbi5mbGFnLWVuLFxyXG4uZmxhZy11cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBM05UQXdJRE01TURBaVBqeHlaV04wSUhkcFpIUm9QU0kzTlRBd0lpQm9aV2xuYUhROUlqTTVNREFpSUdacGJHdzlJaU5pTWpJeU16UWlMejQ4Y0dGMGFDQmtQU0pOTUN3d2FEYzFNREIyTXpBd1NEQk5NQ3cyTURCb056VXdNSFl6TURCSU1FMHdMREV5TURCb056VXdNSFl6TURCSU1FMHdMREU0TURCb056VXdNSFl6TURCSU1FMHdMREkwTURCb056VXdNSFl6TURCSU1FMHdMRE13TURCb056VXdNSFl6TURCSU1FMHdMRE0yTURCb056VXdNSFl6TURCSU1DSWdabWxzYkQwaUkyWm1aaUl2UGp4eVpXTjBJSGRwWkhSb1BTSXpNREF3SWlCb1pXbG5hSFE5SWpJeE1EQWlJR1pwYkd3OUlpTXpZek5pTm1VaUx6NDhMM04yWno0PVwiKTtcclxufVxyXG5cclxuLmZsYWctZGUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTFJRE1pUGp4eVpXTjBJSGRwWkhSb1BTSTFJaUJvWldsbmFIUTlJak1pSUdacGJHdzlJaU5tWm1ObE1EQWlMejQ4Y21WamRDQjNhV1IwYUQwaU5TSWdhR1ZwWjJoMFBTSXlJaUJtYVd4c1BTSWpaREF3SWk4K1BISmxZM1FnZDJsa2RHZzlJalVpSUdobGFXZG9kRDBpTVNJdlBqd3ZjM1puUGc9PVwiKTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9*/