.dna-bg--map {
  background-color: #F8F4F1;
}
.dna-bg--map .dna-layout-bg-color {
  background: none;
}

.dna-store-search {
  background-color: #fff;
  padding: 10px 0 20px;
}
@media screen and (min-width: 768px) {
  .dna-store-search {
    padding: 20px;
  }
}

.dna-store-search__headerarea {
  text-align: center;
  margin-bottom: 10px;
}
.dna-store-search__headerarea h1 {
  margin: 0.5em 0;
}
.dna-store-search__headerarea p {
  width: 600px;
  max-width: 100%;
  margin: 0 auto;
}
.dna-store-search__headerarea .dna-search__search-field-wrapper {
  width: 400px;
  max-width: 100%;
}

.dna-search__search-field-wrapper {
  flex: 0 0 auto;
  position: relative;
  margin: 30px auto 30px;
}
@media screen and (min-width: 480px) {
  .dna-search__search-field-wrapper {
    margin-bottom: 40px;
  }
}

.dna-search__search-input.ds-input {
  padding-right: 40px;
}
.dna-search__search-input.ds-input::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}

.dna-search__search-icon {
  border: none;
  background: none;
  font: inherit;
  line-height: inherit;
  color: currentColor;
  text-align: left;
  margin: 0;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dna-search__search-icon:focus {
  outline: none;
  box-shadow: none;
}
.dna-search__search-icon:focus-visible {
  outline: 1px solid transparent;
  box-shadow: 0px 0px 0px 2px var(--color-focus-ring-inner), 0px 0px 0px 4px var(--color-focus-ring-outer);
  border-radius: 8px;
}

@media screen and (min-width: 480px) {
  .dna-store-search__link-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .dna-store-search__link-area .dna-store__geolocation:only-child {
    margin-left: auto;
    margin-right: auto;
  }
}

.dna-store__geolocation--in-progress svg {
  animation: dna-pulse-scale 1s ease-in-out infinite;
}
.dna-store__geolocation--done {
  color: #505050 !important;
}

.dna-store-search .dna-store__geolocation {
  margin-bottom: 30px;
}
@media screen and (min-width: 480px) {
  .dna-store-search .dna-store__geolocation {
    margin-bottom: 0;
  }
}

.dna-store-search__starting {
  text-align: center;
  color: rgba(18, 18, 18, 0.5);
}

.dna-store-search__no-results {
  text-align: center;
}

.dna-store-search .dna-grid {
  justify-content: center;
}

.dna-store-search__results {
  min-height: 2000px;
}
.dna-store-search__results.dna-store-search__results--ready {
  min-height: unset;
}

.dna-store-search__result {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px;
  border: 1px solid #D4D2CE;
  border-radius: 8px;
  color: inherit;
}
.dna-store-search__result .dna-store-result__title {
  margin: 0 0 0.5em;
}

.dna-store-result__address {
  margin: 0 0 5px;
}

.dna-store-result__distance {
  color: rgba(18, 18, 18, 0.5);
  font-size: 14px;
  margin: 0 0 5px;
}

.dna-store-result__openinfo {
  font-size: 14px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  margin-top: auto;
  padding-top: 5px;
}
.dna-store-result__openinfo:before {
  content: "";
  display: inline-block;
  vertical-align: baseline;
  width: 12px;
  height: 12px;
  border-radius: 6px;
  margin-right: 5px;
}

.dna-store-result__openinfo--open:before {
  background: #008500;
}

.dna-store-result__openinfo--closed:before {
  background: #DD0A0A;
}

p.dna-store-result__description {
  margin-top: 20px;
}

.dna-store-display {
  margin-bottom: 20px;
}
.dna-store-display h1 {
  margin: 0 0 1em;
  font-size: 24px;
  line-height: 26px;
}
@media screen and (min-width: 480px) {
  .dna-store-display h1 {
    font-size: 30px;
    line-height: 32px;
  }
}
.dna-store-display h2 {
  margin: 0 0 1em;
  font-size: 20px;
  line-height: 22px;
}

.dna-store-display__bg {
  background-color: #fff;
  border: 1px solid #EFEEED;
  box-shadow: 0px 2px 16px 0px rgba(18, 18, 18, 0.06);
  border-radius: 8px;
  padding: 10px 0;
}
@media screen and (min-width: 768px) {
  .dna-store-display__bg {
    padding: 20px 0;
  }
}

.dna-store-display__button-area {
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
}

.dna-store-display__back {
  display: flex;
  align-items: center;
}
.dna-store-display__back svg {
  margin-right: 3px;
  height: 12px;
  width: 12px;
  fill: currentColor;
}

.dna-store-display__name--hilite {
  color: #DA0070;
}

@media screen and (min-width: 768px) {
  .dna-store-display__grid {
    display: flex;
    justify-content: space-between;
  }
}

.dna-store-display__grid-item {
  padding: 20px;
}
@media screen and (min-width: 768px) {
  .dna-store-display__grid-item {
    padding: 10px 20px;
    display: flex;
    flex-direction: column;
    width: 30%;
  }
}
@media screen and (min-width: 1024px) {
  .dna-store-display__grid-item {
    padding: 10px 30px;
  }
}

.dna-store-display__grid-item--main {
  flex: 1 1 auto;
  min-height: 176px;
}

.dna-store-display__grid-align {
  margin-top: auto;
  margin-bottom: 0;
}

.dna-store-display__grid-item + .dna-store-display__grid-item {
  border-top: 1px solid #EFEEED;
}
@media screen and (min-width: 768px) {
  .dna-store-display__grid-item + .dna-store-display__grid-item {
    border-top: none;
    border-left: 1px solid #EFEEED;
  }
}

.dna-store-display__address {
  font-size: 18px;
}

.dna-store-display .dna-store__geolocation {
  margin-bottom: 0.5em;
}

.dna-store-display__openingtimes {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: initial;
}
.dna-store-display__openingtimes > li {
  margin: 0;
}
.dna-store-display__openingtimes > li {
  margin-bottom: 1em;
}
.dna-store-display__openingtimes > li:last-child {
  margin-bottom: 0;
}

.dna-store-display__open-period {
  display: flex;
  justify-content: space-between;
  max-width: 320px;
}

.dna-store-display__special-hours {
  color: #DD0A0A;
}

.dna-store-display__special-hours-title {
  margin: 1em 0;
}

.dna-store-display__special-period {
  display: flex;
  flex-wrap: wrap;
  max-width: 320px;
  margin-top: 1em;
}

.dna-store-display__special-hours-date {
  flex: 0 0 auto;
  margin-right: 10px;
}

.dna-store-display__special-hours-details {
  flex: 1 1 auto;
  text-align: right;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzIjpbInN0b3JlLWxvY2F0aW9ucy5zY3NzIiwiaG9tZS9qZW5raW5zL2FnZW50L3dvcmtzcGFjZS9ETkFmaS9CVUlMRF9BTkRfREVQTE9ZX1BMQU5TL0ROQS5maV9EWFBfUFJPRF9BV1MvUHJvZF9hcHAyX2xpZmVyYXlfaW5zdGFsbF9hbmRfZGVwbG95L2RuYS1saWZlcmF5LXNvdXJjZS9kbmEtZmktdGhlbWUvc3JjL2Nzcy9kbmEvX3ZhcnMuc2NzcyIsImhvbWUvamVua2lucy9hZ2VudC93b3Jrc3BhY2UvRE5BZmkvQlVJTERfQU5EX0RFUExPWV9QTEFOUy9ETkEuZmlfRFhQX1BST0RfQVdTL1Byb2RfYXBwMl9saWZlcmF5X2luc3RhbGxfYW5kX2RlcGxveS9kbmEtbGlmZXJheS1zb3VyY2UvZG5hLWZpLXRoZW1lL3NyYy9jc3MvZG5hL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTtFQUNFLGtCQ2dEa0I7O0FEL0NsQjtFQUNFOzs7QUFLSjtFQUNFO0VBQ0E7O0FFVE07RUZPUjtJQUlJOzs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBOzs7QUFLSjtFQUNFO0VBQ0E7RUFDQTs7QUVoQk07RUZhUjtJQUtJOzs7O0FBR0o7RUFDRTs7QUFDQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0o7RUVpR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFRnRHRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUVzSUU7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUVJLGVEN0hZOzs7QUN0RGhCO0VGeUNSO0lBRUk7SUFDQTtJQUNBOztFQUdBO0lBQ0U7SUFDQTs7OztBQU1GO0VBQ0U7O0FBR0o7RUFDRTs7O0FBS0Y7RUFDRTs7QUVuRUk7RUZrRU47SUFHSTs7OztBQUlOO0VBQ0U7RUFDQSxPQ3ZDcUI7OztBRHlDdkI7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTs7QUFDQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxlQzNDc0I7RUQ0Q3RCOztBQUVBO0VBQ0U7OztBQUdKO0VBQ0U7OztBQUVGO0VBQ0UsT0N4RXFCO0VEeUVyQixXQ3RINkI7RUR1SDdCOzs7QUFFRjtFQUNFLFdDMUg2QjtFRDJIN0I7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFLFlDakYwQjs7O0FEcUY1QjtFQUNFLFlDdkZ3Qjs7O0FEMEY1QjtFQUNFOzs7QUFHRjtFQUNFOztBQUNBO0VBQ0U7RUFFQTtFQUNBOztBRXRKSTtFRmtKTjtJQU1JO0lBQ0E7OztBQUdKO0VBQ0U7RUFFQTtFQUNBOzs7QUFHSjtFQUNFO0VFakJFO0VBQ0E7RUFDQSxlRC9Gb0I7RURnSHRCOztBRTNMTTtFRndMUjtJQUtJOzs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7QUFDQTtFQUNFO0VBQ0EsUUM3TDJCO0VEOEwzQixPQzlMMkI7RUQrTDNCOzs7QUFHSjtFQUNFLE9DekppQjs7O0FDdkRYO0VGa05SO0lBRUk7SUFDQTs7OztBQUdKO0VBQ0U7O0FFek5NO0VGd05SO0lBR0k7SUFDQTtJQUNBO0lBQ0E7OztBRXhOSTtFRmtOUjtJQVNJOzs7O0FBR0o7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7O0FFN09NO0VGNE9SO0lBR0k7SUFDQTs7OztBQUdKO0VBQ0UsV0M3TzZCOzs7QURnUDdCO0VBQ0U7OztBQUdKO0VFN0ZJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FGMkZOO0VBQ0U7O0FBQ0E7RUFDRTs7O0FBSU47RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0UsT0NwTTBCOzs7QURzTTVCO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaW1wb3J0IFwiLi4vdmFyc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBtYWluIGxheW91dCB3aXRoIG1hcCBvbiB0aGUgYmFja2dyb3VuZFxuLmRuYS1iZy0tbWFwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnLS1zYW5kLTAxO1xuICAuZG5hLWxheW91dC1iZy1jb2xvciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuXG5cbi5kbmEtc3RvcmUtc2VhcmNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTBweCAwIDIwcHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxufVxuXG4uZG5hLXN0b3JlLXNlYXJjaF9faGVhZGVyYXJlYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBoMSB7XG4gICAgbWFyZ2luOiAwLjVlbSAwO1xuICB9XG4gIHAge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgLmRuYS1zZWFyY2hfX3NlYXJjaC1maWVsZC13cmFwcGVyIHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIHNlYXJjaCBmaWVsZFxuLmRuYS1zZWFyY2hfX3NlYXJjaC1maWVsZC13cmFwcGVyIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAzMHB4IGF1dG8gMzBweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZS1tb2JpbGUpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB9XG59XG4uZG5hLXNlYXJjaF9fc2VhcmNoLWlucHV0LmRzLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgJjo6LW1zLWNsZWFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxufVxuLmRuYS1zZWFyY2hfX3NlYXJjaC1pY29uIHtcbiAgQGluY2x1ZGUgYnV0dG9uU3R5bGVSZXNldCgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIEBpbmNsdWRlIGRlZmF1bHQtZm9jdXMoJGJvcmRlci1yYWRpdXMtLW5vcm1hbCk7XG59XG5cbi5kbmEtc3RvcmUtc2VhcmNoX19saW5rLWFyZWEge1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLW1vYmlsZSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAvLyBpZiBhbGwgc3RvcmVzIGJ1dHRvbiBpcyBub3QgZGVmaW5lZFxuICAgIC5kbmEtc3RvcmVfX2dlb2xvY2F0aW9uOm9ubHktY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG59XG4uZG5hLXN0b3JlX19nZW9sb2NhdGlvbiB7XG4gICYtLWluLXByb2dyZXNzIHtcbiAgICBzdmcge1xuICAgICAgYW5pbWF0aW9uOiBkbmEtcHVsc2Utc2NhbGUgMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICB9XG4gICYtLWRvbmUge1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC0tZGFyay1ncmF5ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmRuYS1zdG9yZS1zZWFyY2gge1xuICAuZG5hLXN0b3JlX19nZW9sb2NhdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLW1vYmlsZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbi5kbmEtc3RvcmUtc2VhcmNoX19zdGFydGluZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICRjb2xvci10ZXh0LS1kaXNhYmxlZFxufVxuLmRuYS1zdG9yZS1zZWFyY2hfX25vLXJlc3VsdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kbmEtc3RvcmUtc2VhcmNoIC5kbmEtZ3JpZCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmRuYS1zdG9yZS1zZWFyY2hfX3Jlc3VsdHMge1xuICBtaW4taGVpZ2h0OiAyMDAwcHg7XG4gICYuZG5hLXN0b3JlLXNlYXJjaF9fcmVzdWx0cy0tcmVhZHkge1xuICAgIG1pbi1oZWlnaHQ6IHVuc2V0O1xuICB9XG59XG5cbi5kbmEtc3RvcmUtc2VhcmNoX19yZXN1bHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1saW5lLS0wMjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtLW5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgLmRuYS1zdG9yZS1yZXN1bHRfX3RpdGxlIHsgLy9uZXN0ZWQgZm9yIHNlbGVjdG9yIHdlaWdodFxuICAgIG1hcmdpbjogMCAwIDAuNWVtO1xuICB9XG59XG4uZG5hLXN0b3JlLXJlc3VsdF9fYWRkcmVzcyB7XG4gIG1hcmdpbjogMCAwIDVweDtcbn1cbi5kbmEtc3RvcmUtcmVzdWx0X19kaXN0YW5jZSB7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC0tZGlzYWJsZWQ7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbWFyZ2luOiAwIDAgNXB4O1xufVxuLmRuYS1zdG9yZS1yZXN1bHRfX29wZW5pbmZvIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgcGFkZGluZy10b3A6IDVweDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG59XG4uZG5hLXN0b3JlLXJlc3VsdF9fb3BlbmluZm8tLW9wZW4ge1xuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW5vdGlmaWNhdGlvbi0tc3VjY2VzcztcbiAgfVxufVxuLmRuYS1zdG9yZS1yZXN1bHRfX29wZW5pbmZvLS1jbG9zZWQge1xuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW5vdGlmaWNhdGlvbi0tZXJyb3I7XG4gIH1cbn1cbnAuZG5hLXN0b3JlLXJlc3VsdF9fZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uZG5hLXN0b3JlLWRpc3BsYXkge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBoMSB7XG4gICAgbWFyZ2luOiAwIDAgMWVtO1xuICAgIC8vc2l6ZSBvZiBoMlxuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLW1vYmlsZSkge1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuICB9XG4gIGgyIHtcbiAgICBtYXJnaW46IDAgMCAxZW07XG4gICAgLy9zaXplIG9mIGgzXG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICB9XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX2JnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgZHJvcHNoYWRvdy1lbGV2YXRpb24tbG93KCk7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gIH1cbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fYnV0dG9uLWFyZWEge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX2JhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIGhlaWdodDogJGZvbnQtc2l6ZS1leHRyYXNtYWxsO1xuICAgIHdpZHRoOiAkZm9udC1zaXplLWV4dHJhc21hbGw7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX25hbWUtLWhpbGl0ZSB7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC0tcGluaztcbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fZ3JpZCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fZ3JpZC1pdGVtIHtcbiAgcGFkZGluZzogMjBweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgcGFkZGluZzogMTBweCAzMHB4O1xuICB9XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX2dyaWQtaXRlbS0tbWFpbiB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAxNzZweDsgLy8gMTc2cHggaXMgdGhlIG5vcm1hbCBoZWlnaHQgZm9yIHRoZSBhcmVhLiBTZXQgaGVyZSB0byBwcmV2ZW50IENMUyAoRE5BRFhQLTQ5NjcpXG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX2dyaWQtYWxpZ24ge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmRuYS1zdG9yZS1kaXNwbGF5X19ncmlkLWl0ZW0gKyAuZG5hLXN0b3JlLWRpc3BsYXlfX2dyaWQtaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItbGluZS0tMDQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1saW5lLS0wNDtcbiAgfVxufVxuLmRuYS1zdG9yZS1kaXNwbGF5X19hZGRyZXNzIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWVtcGhhc2l6ZWQ7XG59XG4uZG5hLXN0b3JlLWRpc3BsYXkge1xuICAuZG5hLXN0b3JlX19nZW9sb2NhdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIH1cbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fb3BlbmluZ3RpbWVzIHtcbiAgQGluY2x1ZGUgbGlzdFN0eWxlUmVzZXQ7XG4gIC8vIG92ZXJyaWRlIGxpc3RTdHlsZVJlc2V0IG1hcmdpbnNcbiAgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuLmRuYS1zdG9yZS1kaXNwbGF5X19vcGVuLXBlcmlvZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fc3BlY2lhbC1ob3VycyB7XG4gIGNvbG9yOiAkY29sb3Itbm90aWZpY2F0aW9uLS1lcnJvcjtcbn1cbi5kbmEtc3RvcmUtZGlzcGxheV9fc3BlY2lhbC1ob3Vycy10aXRsZSB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX3NwZWNpYWwtcGVyaW9kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX3NwZWNpYWwtaG91cnMtZGF0ZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uZG5hLXN0b3JlLWRpc3BsYXlfX3NwZWNpYWwtaG91cnMtZGV0YWlscyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuIiwiLy8gQnJlYWtwb2ludHNcbiRicmVha3BvaW50LXRpbnktbW9iaWxlOiAzNjBweDtcbiRicmVha3BvaW50LWxhcmdlLW1vYmlsZTogNDgwcHg7XG4kYnJlYWtwb2ludC10YWJsZXQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtZGVza3RvcDogMTAyNHB4O1xuJGJyZWFrcG9pbnQtZGVza3RvcC1jb250ZW50OiAxMjgwcHg7XG4kYnJlYWtwb2ludC1sYXJnZS1kZXNrdG9wOiAxNDQwcHg7XG4kYnJlYWtwb2ludC1leHRyYWxhcmdlLWRlc2t0b3A6IDE5MjBweDtcbi8vIGNvbnRhaW5lciB3aWR0aHMgaW4gbm9ybWFsIHBhZ2UgY29udGVudFxuJGNvbnRhaW5lci13aWR0aC1sYXJnZS1tb2JpbGU6ICRicmVha3BvaW50LWxhcmdlLW1vYmlsZSAtIDIqMjBweDtcbiRjb250YWluZXItd2lkdGgtdGFibGV0OiAkYnJlYWtwb2ludC10YWJsZXQgLSAyKjQwcHg7XG4kY29udGFpbmVyLXdpZHRoLWRlc2t0b3A6ICRicmVha3BvaW50LWRlc2t0b3AgLSAyKjQwcHg7XG5cbiRmb250LXNpemUtbm9ybWFsOiAgICAgICAgICAgICAxNnB4O1xuJGZvbnQtc2l6ZS1lbXBoYXNpemVkOiAgICAgICAgIDE4cHg7XG4kZm9udC1zaXplLWJpZ2dlcjogICAgICAgICAgICAgMjBweDtcbiRmb250LXNpemUtbGFyZ2U6ICAgICAgICAgICAgICAzMnB4O1xuJGZvbnQtc2l6ZS1sYXJnZXN0OiAgICAgICAgICAgIDQ0cHg7XG4kZm9udC1zaXplLWh1Z2U6ICAgICAgICAgICAgICAgODBweDtcbiRmb250LXNpemUtc21hbGw6ICAgICAgICAgICAgICAxNHB4O1xuJGZvbnQtc2l6ZS1leHRyYXNtYWxsOiAgICAgICAgIDEycHg7XG4kZm9udC1zaXplLXRpbnk6ICAgICAgICAgICAgICAgMTBweDtcblxuJGxpbmUtaGVpZ2h0LW5vcm1hbDogICAgICAgICAgIDEuMjU7IC8vIGZvciAxNnB4LCAyMHB4XG4kbGluZS1oZWlnaHQtbGFyZ2U6ICAgICAgICAgICAgMS41OyAvLyBmb3IgMTZweCwgMjRweFxuXG4kZm9udC1mYW1pbHktaGVhZGluZy1kZW1pLWJvbGQ6ICdETkEgSGVhZGluZyBEZW1pIEJvbGQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWhlYWRpbmctYm9sZDogICAgICAnRE5BIEhlYWRpbmcgQm9sZCcsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGluZy1ibGFjazogICAgICdETkEgSGVhZGluZyBCbGFjaycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktdGV4dC1ib2xkOiAgICAgICAgICdETkEgVGV4dCBCb2xkJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS10ZXh0LW1lZGl1bTogICAgICAgJ0ROQSBUZXh0IE1lZGl1bScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktdGV4dC1yZWd1bGFyOiAgICAgICdETkEgVGV4dCBSZWd1bGFyJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuLy8gY29sb3JzIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9maWxlL0w0SUc2U0czQUw3c3VlOVlHMWcyZ0IvRE5BLUNvbG9ycy1ORVc/bm9kZS1pZD0yJTNBNDE5XG4kY29sb3ItbWFpbi0td2hpdGU6ICNGRkZGRkY7XG4kY29sb3ItbWFpbi0tYmxhY2s6ICMxMjEyMTI7XG4kY29sb3ItbWFpbi0tcGluazogI0RBMDA3MDtcbiRjb2xvci1tYWluLS1waW5rLTAxOiAjRkY4MkMxO1xuJGNvbG9yLW1haW4tLXBpbmstMDI6ICNGRkJGREY7XG4kY29sb3ItbWFpbi0tcGx1bTogIzU1MUMzRTtcbiRjb2xvci1tYWluLS1wbHVtLTAxOiAjNjkyMTRDO1xuJGNvbG9yLW1haW4tLXBsdW0tMDI6ICM3OTJBNTk7XG5cbiRjb2xvci1hY2NlbnQtLWxlbW9uOiAjRkZGMzQ3O1xuJGNvbG9yLWFjY2VudC0tbGVtb24tMDE6ICNGRkY5QTM7XG4kY29sb3ItYWNjZW50LS1sZW1vbi0wMjogI0ZGRkFCQTtcbiRjb2xvci1hY2NlbnQtLXNreTogIzJFQ0FGMDtcbiRjb2xvci1hY2NlbnQtLXNreS0wMTogIzc3RENGNTtcbiRjb2xvci1hY2NlbnQtLXNreS0wMjogIzk2RTRGODtcbiRjb2xvci1hY2NlbnQtLW9yYW5nZTogI0ZGQTYzMztcbiRjb2xvci1hY2NlbnQtLW9yYW5nZS0wMTogI0ZGQ0E4NTtcbiRjb2xvci1hY2NlbnQtLW9yYW5nZS0wMjogI0ZGREJBRDtcblxuJGNvbG9yLWJnLS13aGl0ZTogI0ZGRkZGRjtcbiRjb2xvci1iZy0tc2FuZDogI0ZERkJGQTtcbiRjb2xvci1iZy0tc2FuZC0wMTogI0Y4RjRGMTtcbiRjb2xvci1iZy0tc2FuZC0wMjogI0VERThFMTtcbiRjb2xvci1iZy0tZnJvc3RlZGdsYXNzOiAjZjVmNWY1ZWI7XG5cbiRjb2xvci10ZXh0LS1ibGFjazogIzEyMTIxMjtcbiRjb2xvci10ZXh0LS1kYXJrLWdyYXk6ICM1MDUwNTA7XG4kY29sb3ItdGV4dC0tcGx1bTogIzU1MUMzRTtcbiRjb2xvci10ZXh0LS1waW5rOiAjREEwMDcwO1xuJGNvbG9yLXRleHQtLXdoaXRlOiAjRkZGRkZGO1xuJGNvbG9yLXRleHQtLWRpc2FibGVkOiBzY2FsZV9jb2xvcigkY29sb3ItdGV4dC0tYmxhY2ssICRhbHBoYTogLTUwJSk7XG5cbiRjb2xvci11dGlsaXR5LS10ZXh0LWxpbms6ICNEQTAwNzA7XG4kY29sb3ItdXRpbGl0eS0tdGV4dC1saW5rLWhvdmVyOiBzY2FsZV9jb2xvcigkY29sb3ItdXRpbGl0eS0tdGV4dC1saW5rLCAkbGlnaHRuZXNzOiAtMjAlKTtcbiRjb2xvci11dGlsaXR5LS1mb2N1czogIzAwNjRFMjtcbiRjb2xvci11dGlsaXR5LS1mb2N1cy1saWdodDogI0Q4RTlGRjtcblxuJGNvbG9yLWxpbmUtLTAxOiAjOTQ4Qjg5O1xuJGNvbG9yLWxpbmUtLTAyOiAjRDREMkNFO1xuJGNvbG9yLWxpbmUtLTAzOiAjRTdFNUUzO1xuJGNvbG9yLWxpbmUtLTA0OiAjRUZFRUVEO1xuXG4kY29sb3Itbm90aWZpY2F0aW9uLS1pbmZvOiAjMEI3Qzk5O1xuJGNvbG9yLW5vdGlmaWNhdGlvbi0td2FybmluZzogI0VCNjYwMDtcbiRjb2xvci1ub3RpZmljYXRpb24tLWVycm9yOiAjREQwQTBBO1xuJGNvbG9yLW5vdGlmaWNhdGlvbi0tc3VjY2VzczogIzAwODUwMDtcblxuJGJvcmRlci1yYWRpdXMtLXNtYWxsOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy0tbm9ybWFsOiA4cHg7XG4kYm9yZGVyLXJhZGl1cy0tZnVsbDogNTAlO1xuXG5cbi8vcGFnZSBtaW4gbWF4IHdpZHRoc1xuJHBhZ2UtbWluLXdpZHRoOiAzMjBweDtcbiRwYWdlLW1heC13aWR0aDogMjU2MHB4O1xuJHBhZ2UtbGF5b3V0LW5vcm1hbC1jb250ZW50LW1heHdpZHRoOiAxMjAwcHg7XG4kcGFnZS1sYXlvdXQtbWVkaXVtLWNvbnRlbnQtbWF4d2lkdGg6IDg2MHB4O1xuJHBhZ2UtbGF5b3V0LXNtYWxsLWNvbnRlbnQtbWF4d2lkdGg6IDY0MHB4O1xuXG4vLyBncmlkIHBhZGRpbmdzXG4kZ3JpZC1nYXAtLXNtYWxsOiAxMHB4O1xuJGdyaWQtZ2FwLS13aWRlOiAzMHB4O1xuJGdyaWQtZ2FwLS1sYXJnZTogNjBweDtcbiRncmlkLXBhZGRpbmc6IDEwcHg7XG5cbi8vcG9ydGxldCBtYXJnaW5zXG4kbWFyZ2luLXBvcnRsZXQtZGVmYXVsdDogICAgICAgIDUwcHg7XG4kbWFyZ2luLXBvcnRsZXQtc21hbGw6ICAgICAgICAgIDMwcHg7XG4kbWFyZ2luLXBvcnRsZXQtZXh0cmFzbWFsbDogICAgIDEwcHg7XG4kbWFyZ2luLXBvcnRsZXQtZXh0cmFsYXJnZTogICAgIDIwdmg7XG5cbi8vaW5wdXQgdmFyaWFibGVzXG4kYnV0dG9uLWhlaWdodC1kZWZhdWx0OiAgIDQwcHg7XG4kYnV0dG9uLWhlaWdodC1zbWFsbDogICAgIDMycHg7XG4kaW5wdXQtaGVpZ2h0LWRlZmF1bHQ6ICAgIDQwcHg7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICRjb2xvci1saW5lLS0wMTtcbiRpbnB1dC1maWVsZC1iZzogICAgICAgICAgICAgICAgJGNvbG9yLWJnLS13aGl0ZTtcbiRpbnB1dC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgJGNvbG9yLXRleHQtLWJsYWNrO1xuJGlucHV0LWJvcmRlci1zaG9ydGhhbmQ6ICAgICAgICAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiRmb3JtLWVsZW1lbnRzLW1heC13aWR0aDogICAgICAgNTE1cHg7XG5cbi8vbGFiZWxcbiRkcy1sYWJlbC1oZWlnaHQ6IDIycHg7XG5cbi8vIFVzZSB0aGVzZSBjb2xvcnMgYW55d2hlcmUgYSBsaW5rLCBpbnB1dCBvciBhIGJ1dHRvbiBpcyBkaXNhYmxlZCFcbiRkaXNhYmxlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgI2YyZjJmMjtcbiRkaXNhYmxlZC10ZXh0OiAgICAgICAgICAgICAgICAgIzk5OTk5OTtcblxuXG4kaGVhZGVyLWhlaWdodC1kZXNrdG9wOiAxMDhweDsgLy8gNDhweCBzaXRlIG5hdiArIDYwIG1haW4gbmF2XG4kaGVhZGVyLWhlaWdodC1tb2JpbGU6IDk4cHg7IC8vIDM4cHggc2l0ZSBuYXYgKyA2MCBtYWluIG5hdlxuJGhlYWRlci1tYWluLW5hdi1oZWlnaHQ6IDYwcHg7XG4kc2Vjb25kYXJ5LW5hdi1oZWlnaHQtZGVza3RvcDogNTdweDsgLy8gbmVlZGVkIGZvciB0b2FzdGVyIHBvc2l0aW9uaW5nXG4kc2Vjb25kYXJ5LW5hdi1oZWlnaHQtbW9iaWxlOiA2NHB4O1xuJGFkbWluLWRvY2tiYXItaGVpZ2h0OiA3NHB4O1xuJGFkbWluLWVkaXQtbW9kZS1kb2NrYmFyLWhlaWdodDogMTU1cHg7XG5cbiRjYXJkLWhlaWdodDogNDAwcHg7XG4kY2FyZC1oZWlnaHQtYWN0dWFsOiA0MDBweCAtIDJweDsgLy9ib3JkZXJzXG4kY2FyZC1oZWlnaHQtZXh0ZW5kZWQ6IDYwMHB4O1xuJGNhcmQtdGl0bGUtbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiRmb3JtLWVsZW1lbnQtYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG5cbiR0YWItaXRlbS1oZWlnaHQ6IDM2cHg7XG5cbi8vIHotaW5kZXggbGV2ZWxzXG4kei1pbmRleC1sZXZlbC0xLWJhc2U6IDA7XG4kei1pbmRleC1sZXZlbC0yLWZsb2F0aW5nOiAyMDA7IC8vIGZvciBhbGwgZmlyc3QgbGV2ZWwgZmxvYXRpbmcgZWxlbWVudHNcbiR6LWluZGV4LWxldmVsLTMtcG9wdXAtb3ZlcmxheTogNjAwOyAvLyBmb3IgaGVhZGVyIGxvZ2luIG1vZGFscyBhbmQgb3RoZXIgcG9wdXBzIHRoYXQgc2hvdWxkIGJlIHVuZGVyIHRoZSBoZWFkZXJcbiR6LWluZGV4LWxldmVsLTQtaGVhZGVyOiAxMDAwO1xuJHotaW5kZXgtbGV2ZWwtNS1jaGF0OiAxMDQwOyAvLyBTaG91bGQgYmUgYWJvdmUgaGVhZGVyIGJ1dCBiZWxvdyBvdmVybGF5LiBSb2NrZXQgbW9kYWwgaGFzIHotaW5kZXg6IDEwNTAsIHNvIHdlIG5lZWQgQ2hhdCB0byBiZSBqdXN0IGJlbG93LCBhbmQgYWJvdmUgdGhlaXIgaGVhZGVyIHRoYXQgaGFzIDEwMzAuXG4kei1pbmRleC1sZXZlbC02LW1vZGFsLW92ZXJsYXk6IDExMDA7IC8vIGZvciBtb2RhbCB0aGF0IHNob3VsZCBjb3ZlciB0aGUgaGVhZGVyXG4kei1pbmRleC1sZXZlbC03LW1vZGFsOiAxMjAwOyAvLyB0b3AgbGV2ZWwgbW9kYWxzIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgICBAaWYgJHBvaW50ID09IG1vYmlsZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXRhYmxldCAtIDEpICB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSB0YWJsZXQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IHNtYWxsZXItdGhhbi1kZXNrdG9wIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtZGVza3RvcCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1kZXNrdG9wKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBkZXNrdG9wLWNvbnRlbnQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1kZXNrdG9wLWNvbnRlbnQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGxhcmdlLWRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1kZXNrdG9wKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBleHRyYWxhcmdlLWRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1leHRyYWxhcmdlLWRlc2t0b3ApIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IHRhYmxldC1vbmx5IHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtdGFibGV0KSBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtZGVza3RvcCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGxhcmdlLW1vYmlsZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcG9pbnQgPT0gbGFyZ2UtbW9iaWxlLW9ubHkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1tb2JpbGUpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC10YWJsZXQgLSAxKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBzbWFsbC1tb2JpbGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1tb2JpbGUgLSAxKSAgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcG9pbnQgPT0gdGlueS1tb2JpbGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC10aW55LW1vYmlsZSAtIDEpICB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBtYXgtcGFnZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRwYWdlLW1heC13aWR0aCkgIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSAoI3skcG9pbnR9KSB7IEBjb250ZW50OyB9XG4gICAgfVxufVxuQG1peGluIGNvbnRhaW5lci1tb2JpbGUge1xuICAgIEBjb250YWluZXIgKG1heC13aWR0aDogI3skY29udGFpbmVyLXdpZHRoLXRhYmxldCAtIDF9KSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gY29udGFpbmVyLXNtYWxsLW1vYmlsZSB7XG4gICAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiAjeyRjb250YWluZXItd2lkdGgtbGFyZ2UtbW9iaWxlIC0gMX0pIHsgQGNvbnRlbnQ7IH1cbn1cbkBtaXhpbiBjb250YWluZXItbGFyZ2UtbW9iaWxlIHtcbiAgICBAY29udGFpbmVyIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lci13aWR0aC1sYXJnZS1tb2JpbGV9KSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gY29udGFpbmVyLXRhYmxldCB7XG4gICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiAjeyRjb250YWluZXItd2lkdGgtdGFibGV0fSkgeyBAY29udGVudDsgfVxufVxuQG1peGluIGNvbnRhaW5lci1kZXNrdG9wIHtcbiAgICBAY29udGFpbmVyIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lci13aWR0aC1kZXNrdG9wfSkgeyBAY29udGVudDsgfVxufVxuXG5AbWl4aW4gb3JpZW50YXRpb24oJG9yaWVudGF0aW9uKSB7XG4gICAgQGlmICRvcmllbnRhdGlvbiA9PSBsYW5kc2NhcGUge1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRvcmllbnRhdGlvbiA9PSBwb3J0cmFpdCB7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCkgeyBAY29udGVudDsgfVxuICAgIH1cbn1cblxuQG1peGluIGhpZ2gtcmVzKCkge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSxcbiAgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBUaGUgbWljcm8gY2xlYXJmaXggaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICBkaXNwbGF5OnRhYmxlO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6Ym90aDtcbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHJhdGlvLW9yLXdpZHRoLCAkaGVpZ2h0OiBudWxsKSB7XG4gICAgJHBhZGRpbmc6IGlmKCRoZWlnaHQsIHBlcmNlbnRhZ2UobWF0aC5kaXYoJGhlaWdodCwkcmF0aW8tb3Itd2lkdGgpKSwgcGVyY2VudGFnZShtYXRoLmRpdigxLCRyYXRpby1vci13aWR0aCkpKTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbkBtaXhpbiB0cmFuc3BhcmVudC1zZWxlY3Rpb24ge1xuICAgICY6OnNlbGVjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGhlcm8tZm9udC1zaXplKCRtb2JpbGUsICRsYXJnZW1vYmlsZSwgJHRhYmxldCwgJGRlc2t0b3AsICRsYXJnZWRlc2t0b3A6ICRkZXNrdG9wKSB7XG4gICAgZm9udC1zaXplOiAkbW9iaWxlICsgcHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZS1tb2JpbGUpIHtcbiAgICAgICAgZm9udC1zaXplOiAkbGFyZ2Vtb2JpbGUgKyBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGV0ICsgcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICBmb250LXNpemU6ICRkZXNrdG9wICsgcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UtZGVza3RvcCkge1xuICAgICAgICBmb250LXNpemU6ICRsYXJnZWRlc2t0b3AgKyBweDtcbiAgICB9XG59XG5cbkBtaXhpbiBtYXRjaFRvSGVhZGVySGVpZ2h0KCRwcm9wZXJ0eSwgJGlzQm9keUVsZW1lbnQ6IGZhbHNlLCAkZXh0cmFoZWlnaHQ6IDAsICRuZWdhdGl2ZTpmYWxzZSkge1xuICAgICRtdWx0aXBsaWVyOiAxO1xuICAgIEBpZiAkbmVnYXRpdmUgeyAkbXVsdGlwbGllcjogLTF9XG5cbiAgICAjeyRwcm9wZXJ0eX06ICgkaGVhZGVyLWhlaWdodC1tb2JpbGUgKyAkZXh0cmFoZWlnaHQpICogJG11bHRpcGxpZXI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogKCRoZWFkZXItaGVpZ2h0LWRlc2t0b3AgKyAkZXh0cmFoZWlnaHQpICogJG11bHRpcGxpZXI7XG4gICAgfVxufVxuXG5AbWl4aW4gcG9zaXRpb25BYnNvbHV0ZUZ1bGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbn1cbkBtaXhpbiBwb3NpdGlvbkFic29sdXRlQ2VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG59XG5cbkBtaXhpbiBidXR0b25TdHlsZVJlc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuQG1peGluIGxpc3RTdHlsZVJlc2V0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBpbml0aWFsO1xuICAgID4gbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG5AbWl4aW4gZHJvcHNoYWRvdy1lbGV2YXRpb24tbG93KCRjbGlwOiBudWxsKSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWxpbmUtLTA0O1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggMTZweCAwcHggc2NhbGVfY29sb3IoJGNvbG9yLXRleHQtLWJsYWNrLCAkYWxwaGE6IC05NCUpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLS1ub3JtYWw7XG4gICAgQGlmKCRjbGlwKSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuQG1peGluIGRyb3BzaGFkb3ctZWxldmF0aW9uLWhpZ2goJGNsaXA6IG51bGwpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbGluZS0tMDQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IDBweCBzY2FsZV9jb2xvcigkY29sb3ItdGV4dC0tYmxhY2ssICRhbHBoYTogLTkyJSk7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtLW5vcm1hbDtcbiAgICBAaWYoJGNsaXApIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5AbWl4aW4gZHJvcHNoYWRvdy1lbGV2YXRpb24tZXh0cmEtaGlnaCgkY2xpcDogbnVsbCkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1saW5lLS0wNDtcbiAgICBib3gtc2hhZG93OiAwcHggOHB4IDY0cHggMHB4IHNjYWxlX2NvbG9yKCRjb2xvci10ZXh0LS1ibGFjaywgJGFscGhhOiAtODQlKTtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0tbm9ybWFsO1xuICAgIEBpZigkY2xpcCkge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbkBtaXhpbiBkZWZhdWx0LWZvY3VzKCRyYWRpdXM6IG51bGwpIHtcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggdmFyKC0tY29sb3ItZm9jdXMtcmluZy1pbm5lciksIDBweCAwcHggMHB4IDRweCB2YXIoLS1jb2xvci1mb2N1cy1yaW5nLW91dGVyKTtcbiAgICAgICAgQGlmKCRyYWRpdXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWl4aW4gaW5uZXItZm9jdXMoJHJhZGl1czogbnVsbCkge1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDJweCB2YXIoLS1jb2xvci1mb2N1cy1yaW5nLW91dGVyKSwgaW5zZXQgMHB4IDBweCAwcHggNHB4IHZhcigtLWNvbG9yLWZvY3VzLXJpbmctaW5uZXIpO1xuICAgICAgICBAaWYoJHJhZGl1cykge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cbn1cbkBtaXhpbiBpbnB1dC1maWVsZC1pY29uKCR1cmwsICR1cmwyOiBudWxsKSB7XG4gICAgQGlmKCR1cmwyKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkdXJsKSwgdXJsKCR1cmwyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR1cmwpO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IGNlbnRlciwgcmlnaHQgMzVweCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcbn1cbkBtaXhpbiB1bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGZyb20tZm9udDtcbn1cbkBtaXhpbiBsaW5rLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gaG92ZXItYWN0aXZlLXN0YXRlLWVmZmVjdHMoJHRleHQtY29sb3I6IG51bGwsICR0ZXh0LWNvbG9yLWNoYW5nZTogZmFsc2UsICRiZy1jb2xvcjogbnVsbCwgJGJvcmRlci1jb2xvcjogbnVsbCkge1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaWYoJHRleHQtY29sb3ItY2hhbmdlKSB7XG4gICAgICAgICAgICBjb2xvcjogc2NhbGVfY29sb3IoJHRleHQtY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAaWYoJGJnLWNvbG9yKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZV9jb2xvcigkYmctY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9XG4gICAgICAgIEBpZigkYm9yZGVyLWNvbG9yKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHNjYWxlX2NvbG9yKCRib3JkZXItY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgQGlmKCR0ZXh0LWNvbG9yLWNoYW5nZSkge1xuICAgICAgICAgICAgY29sb3I6IHNjYWxlX2NvbG9yKCR0ZXh0LWNvbG9yLCAkbGlnaHRuZXNzOiAxMCUpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAaWYoJGJnLWNvbG9yKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZV9jb2xvcigkYmctY29sb3IsICRsaWdodG5lc3M6IDEwJSk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmKCRib3JkZXItY29sb3IpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogc2NhbGVfY29sb3IoJGJvcmRlci1jb2xvciwgJGxpZ2h0bmVzczogMTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gR1JJRFxuQG1peGluIGdyaWQoJGNvbHVtbnM6MSwgJGdhcDokZ3JpZC1nYXAtLXNtYWxsKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6ICRnYXA7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGNvbHVtbnMsIG1pbm1heCgwLCAxZnIpKTtcbn1cbkBtaXhpbiBncmlkLWNvbHVtbnMoJGNvbHVtbnM6MSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW5zLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbkBtaXhpbiBmdWxsLWNhcmQtbGluay1vdmVybGF5KCkge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgIH1cbn0iXSwiZmlsZSI6InN0b3JlLWxvY2F0aW9ucy5jc3MifQ== */
