/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
#jquery-live-search {
  width: 100vw !important;
  margin-top: -0.375rem;
}

.hero-section__minimal {
  padding: calc(4rem + var(--headersize, 4rem)) 0 4rem;
}
@media (min-width: 62rem) {
  .hero-section__minimal {
    padding: calc(6rem + var(--headersize, 6rem)) 0 4rem;
  }
}
.hero-section__minimal .row {
  padding-bottom: 0.1875rem;
}
@media (min-width: 62rem) {
  .hero-section__minimal .row {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto 1fr;
    gap: 0;
  }
}
.hero-section__minimal .hero-section__title {
  padding: 0 1.25rem;
}
@media (min-width: 48rem) {
  .hero-section__minimal .hero-section__title {
    padding: 0 2.5rem;
  }
}
@media (min-width: 62rem) {
  .hero-section__minimal .hero-section__title {
    grid-column-start: 1;
    grid-column-end: 8;
    padding: 0 calc(1.875rem / 2);
    margin-bottom: 0;
  }
}
.hero-section__minimal .hero-section__introduction {
  font-size: 1.125rem;
  line-height: 1.75rem;
  margin-bottom: 1.75rem;
  padding: 0 1.25rem;
}
@media (min-width: 48rem) {
  .hero-section__minimal .hero-section__introduction {
    padding: 0 2.5rem;
  }
}
@media (min-width: 62rem) {
  .hero-section__minimal .hero-section__introduction {
    grid-column-start: 9;
    grid-column-end: -1;
    grid-row-start: 1;
    grid-row-end: 3;
    padding: 0 calc(1.875rem / 2);
    margin-bottom: 0;
  }
}
.hero-section__minimal .hero-section__buttons {
  padding: 0 1.25rem;
  width: 100%;
  margin-top: 0.25rem;
}
@media (min-width: 48rem) {
  .hero-section__minimal .hero-section__buttons {
    padding: 0 2.5rem;
  }
}
@media (min-width: 62rem) {
  .hero-section__minimal .hero-section__buttons {
    grid-column-start: 1;
    grid-column-end: 8;
    grid-row-start: 2;
    align-self: flex-start;
    padding: 0 calc(1.875rem / 2);
    margin-top: 1.25rem;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiY3NzL3NyYy9fX3N0eWxlcy9fZWxlbWVudHMuc2NzcyIsImFjZi1ibG9ja3MvaGVyby1taW5pbWFsL3NyYy9zdHlsZS5zY3NzIiwiY3NzL3NyYy92ZW5kb3IvYm9vdHN0cmFwL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsImNzcy9zcmMvX19zdHlsZXMvX2ZvbnQtc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBZ0RBO0FBQUE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUNvWEE7RUFDQztFQUNBOzs7QUN4Y0Q7RUFFQzs7QUN3REc7RUQxREo7SUFLRTs7O0FBR0Q7RUFDQzs7QUNpREU7RURsREg7SUFJRTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUY7RUFDQzs7QUNzQ0U7RUR2Q0g7SUFJRTs7O0FDbUNDO0VEdkNIO0lBUUU7SUFDQTtJQUNBO0lBQ0E7OztBQUlGO0VFc0RBO0VBQ0E7RUFHQztFRnhEQTs7QUNzQkU7RUR4Qkg7SUFLRTs7O0FDbUJDO0VEeEJIO0lBU0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTs7QUNHRTtFRE5IO0lBTUU7OztBQ0FDO0VETkg7SUFVRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EiLCJmaWxlIjoiYWNmLWJsb2Nrcy9oZXJvLW1pbmltYWwvZGlzdC9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKlxuICogRm9udHNcbiAqKioqKioqKioqKioqKioqL1xuJGZvbnQtYmFzZTogXCJVbnRpdGxlZCBTYW5zXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1oZWFkbGluZXM6IFwiUHVibGljbyBCYW5uZXJcIiwgc2VyaWY7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBQYWludHNcbiAqKioqKioqKioqKioqKioqL1xuJHBhaW50czogKFxuXHRtaXN0OiAjYzFjNGNjLFxuXHRza3k6ICNhYWIzY2IsXG5cdHJhaW46ICM5ZGI0YzAsXG5cdG1pZG5pZ2h0OiAjMzUzYzUyLFxuXHRzYWdlOiAjYWFiMTk5LFxuXHRzcHJpbmc6ICNjMGQyYWIsXG5cdHNwcnVjZTogIzVmN2E3Yixcblx0Z3JvdmU6ICMyYzQ3NDgsXG5cdHNhbmQ6ICNiN2IzYTQsXG5cdHNhZmZyb246ICNmMGNkN2YsXG5cdGNsZW1lbnRpbmU6ICNlM2FmN2QsXG5cdGNsYXk6ICM5MDZkNWQsXG5cdGNsb3VkOiAjZjZmNWVmLFxuXHR3aGl0ZTogI2ZmZixcblx0YmxhY2s6ICMwMDAsXG5cdHRleHQtZGFyay1wcmltYXJ5OiAjMDAwLFxuXHR0ZXh0LWRhcmstc2Vjb25kYXJ5OiAjNWU1ZjYxLFxuXHR0ZXh0LWRhcmstdGVydGlhcnk6ICNhMGExYTMsXG5cdHRleHQtbGlnaHQtcHJpbWFyeTogI2ZmZixcblx0dGV4dC1saWdodC1zZWNvbmRhcnk6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSxcblx0dGV4dC1saWdodC10ZXJ0aWFyeTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxuXHRib3JkZXItbGlnaHQtcHJpbWFyeTogI2ZmZixcblx0Ym9yZGVyLWxpZ2h0LXRlcnRpYXJ5OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksXG5cdGJvcmRlci1kYXJrLXByaW1hcnk6ICMwMDAsXG5cdGJvcmRlci1uYXY6IHJnYmEoMCwgMCwgMCwgMC4xKSxcblx0aW50ZXJhY3Rpb246ICNmMGNkN2YsXG5cdGludGVyYWN0aW9uLWhvdmVyOiAjZjVjZjdhLFxuXHRlcnJvcjogIzllMzYyYyxcblx0d2FybmluZzogI2U1OTU0NSxcblx0c3VjY2VzczogIzQ1N2E0YSxcblx0aW5mb3JtYXRpb246ICMzMjZiYTgsXG5cdGF1dG9maWxsOiAjZjJmOGZjLFxuXHRncmV5LTUwOiAjZjVmNmY3LFxuXHRncmV5LTEwMDogI2UyZTRlOCxcblx0Z3JleS0yMDA6ICNjOWNjZDQsXG5cdGdyZXktMzAwOiAjYWRiMWJjLFxuXHRncmV5LTQwMDogIzk2OWJhOSxcblx0Z3JleS01MDA6ICM3Zjg1OTUsXG5cdGdyZXktNjAwOiAjNTY1YjY5LFxuXHRncmV5LTcwMDogIzMwMzMzYSxcblx0Z3JleS04MDA6ICMxZDFlMjMsXG5cdGdyZXktOTAwOiAjMGEwYTBjLFxuKTtcblxuLyoqKioqKioqKioqKioqKipcbiAqIEVmZmVjdHNcbiAqKioqKioqKioqKioqKioqL1xuJGVmZmVjdHM6IChcbik7XG5cbkBtaXhpbiBlbGV2YXRpb24ge1xuXHRib3gtc2hhZG93OiAwIHJlbSgxKSByZW0oMikgcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG5cdFx0Ym94LXNoYWRvdzogMCByZW0oMSkgcmVtKDMpIHJnYmEoMCwgMCwgMCwgMC4xKSwgMCByZW0oMSkgcmVtKDIpIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0Ym94LXNoYWRvdzogMCByZW0oNCkgcmVtKDgpIHJlbSgtMikgcmdiYSgwLCAwLCAwLCAwLjEpLCAwIHJlbSgyKSByZW0oNCkgcmVtKC0yKSByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdGJveC1zaGFkb3c6IDAgcmVtKDEyKSByZW0oMTYpIHJlbSgtNCkgcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCByZW0oNCkgcmVtKDYpIHJlbSgtMikgcmdiYSgwLCAwLCAwLCAwLjAzKTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcblx0XHRib3gtc2hhZG93OiAwIHJlbSgyMCkgcmVtKDI0KSByZW0oLTQpIHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgcmVtKDgpIHJlbSg4KSByZW0oLTQpIHJnYmEoMCwgMCwgMCwgMC4wMyk7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuXHRcdGJveC1zaGFkb3c6IDAgcmVtKDI0KSByZW0oNDgpIHJlbSgtMTIpIHJnYmEoMCwgMCwgMCwgMC4xOCk7XG5cdH1cbn1cblxuLyoqKioqKioqKioqKioqKipcbiAqIEdyaWQgU2V0dGluZ3NcbiAqKioqKioqKioqKioqKioqL1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IHJlbSg1NzYpLFxuXHRtZDogcmVtKDc2OCksXG5cdGxnOiByZW0oOTkyKSxcblx0bGdhbHQ6IHJlbSgxMDIwKSxcblx0eGw6IHJlbSgxMjAwKSxcblx0eHhsOiByZW0oMTQxMClcbik7XG4kY3VzdG9tLWJyZWFrcG9pbnRzOiAoXG5cdG1vYmlsZW1lbnU6IHJlbSgxMjAwKSxcblx0Y2FyZWVyc21lbnU6IHJlbSgxMzMwKVxuKTtcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuXHR4czogcmVtKDU3NiksXG5cdHNtOiByZW0oNzY4KSxcblx0bWQ6IHJlbSg5OTIpLFxuXHRsZzogcmVtKDEyMDApLFxuXHR4bDogcmVtKDE0MTApXG4pO1xuXG4kY29udGFpbmVyLXNtLXNwYWNpbmc6IHJlbSgyMCk7XG4kY29udGFpbmVyLW1kLXNwYWNpbmc6IHJlbSg0MCk7XG4kY29udGFpbmVyLWxnLXNwYWNpbmc6IHJlbSg2MCk7XG5cbiRncmlkLWd1dHRlci13aWR0aDogcmVtKDE1KTtcbiRncmlkLXNtLWd1dHRlci13aWR0aDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuJGdyaWQtbWQtZ3V0dGVyLXdpZHRoOiByZW0oMjApO1xuJGdyaWQtbGctZ3V0dGVyLXdpZHRoOiByZW0oMzApO1xuXG4vLyBUcmFuc2l0aW9uc1xuJHRyYW5zaXRpb24tc3RhbmRhcmQ6IGFsbCAwLjJzIGxpbmVhcjtcblxuLy8gQmxvY2sgdGl0bGVcbiRibG9jay10aXRsZS1tYi1zbTogcmVtKDQwKTtcbiRibG9jay10aXRsZS1tYi1tZDogcmVtKDY0KTtcblxuJG1lZGlhLW1hcmdpbjogMzBweDtcbiRtZWRpYS1tYXJnaW4tbW9iaWxlOiAyMHB4O1xuXG4vLyBPdXRsaW5lXG4kb3V0bGluZTogcmVtKDIpIHNvbGlkICM3YWFjZmU7XG4iLCIvLyBCdXR0b25zIGFuZCBMaW5rcyAtIENhdGVnb3J5IEJhZGdlXG5AbWl4aW4gcGlsbC1iYWRnZSggJGNvbG9yOiBub3JtYWwgKSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyLXJhZGl1czogcmVtKDMyKTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdEBpZiAkY29sb3IgPT0gbm9ybWFsIHtcblx0XHRib3JkZXI6IDAuNXB4IHNvbGlkIHBhaW50KGJvcmRlci1kYXJrLXByaW1hcnkpO1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdLFxuXHRcdCZbZGF0YS1maWx0ZXJdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChzYWZmcm9uKTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0Ym9yZGVyOiAwLjVweCBzb2xpZCBwYWludChib3JkZXItbGlnaHQtcHJpbWFyeSk7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdLFxuXHRcdCZbZGF0YS1maWx0ZXJdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHBhaW50KGJvcmRlci1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHRjb2xvcjogcGFpbnQodGV4dC1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBwaWxsLWJhZGdlLXNpemUoICRzaXplOiBtICkge1xuXHRAaWYgJHNpemUgPT0gbSB7XG5cdFx0aGVpZ2h0OiByZW0oMjQpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDI0KTsgLy8gZG9lc24ndCBtYXRjaCBmaWdtYSB0byBjb21wZW5zZSBwZWN1bGlhciBmb250IGFuZCBrZWVwIGNlbnRlci12YWxpZ25lZFxuXHRcdHBhZGRpbmc6IDAgcmVtKDEwKTsgLy8gZG9lc24ndCBtYXRjaCBmaWdtYSB0byBjb21wZW5zZSBwZWN1bGlhciBmb250IGFuZCBrZWVwIGNlbnRlci12YWxpZ25lZFxuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IHMge1xuXHRcdGhlaWdodDogcmVtKDE5KTtcblx0XHRmb250LXNpemU6IHJlbSgxMik7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbSgxOSk7XG5cdFx0cGFkZGluZzogMCByZW0oOCk7XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDgpO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0aGVpZ2h0OiByZW0oMTcpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDEwKTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDE3KTtcblx0XHRwYWRkaW5nOiAwIHJlbSg2KTtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oNik7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQnV0dG9ucyBhbmQgTGlua3MgLSBMaW5rIHdpdGggSWNvblxuQG1peGluIGxpbmstd2l0aC1pY29uKCAkY29sb3I6IG5vcm1hbCApIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGdhcDogcmVtKDIpO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmW2hyZWZdIHtcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogcGFpbnQodGV4dC1kYXJrLXByaW1hcnkpO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdGJvcmRlcjogMC41cHggc29saWQgcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0JltocmVmXSB7XG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Jjpmb2N1cyxcblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gbGluay13aXRoLWljb24tc2l6ZSggJHNpemU6IG0gKSB7XG5cdEBpZiAkc2l6ZSA9PSBtIHtcblx0XHRmb250LXNpemU6IHJlbSgxNik7XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEyKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNik7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDIwKTtcblx0XHR9XG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gcyB7XG5cdFx0Zm9udC1zaXplOiByZW0oMTQpO1xuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSg4KTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDE3KTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDEyKTtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oNik7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDE2KSAhaW1wb3J0YW50O1xuXHRcdFx0aGVpZ2h0OiByZW0oMTYpO1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0aGVpZ2h0OiByZW0oMTIpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSgxNCk7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQnV0dG9ucyBhbmQgTGlua3MgLSBMaW5rIHdpdGggQ2lyY2xlIEJ1dHRvblxuQG1peGluIGxpbmstd2l0aC3RgWlyY2xlKCAkY29sb3I6IG5vcm1hbCApIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0dHJhbnNpdGlvbjogJHRyYW5zaXRpb24tc3RhbmRhcmQ7XG5cdFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiByZW0oMSk7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBpY29uLWZvbnQoJGljb24tYXJyb3ctcmlnaHQsICN7cmVtKDE2KX0pO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxuXG5cdHNwYW4ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHQmOmVtcHR5IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBwYWludChpbnRlcmFjdGlvbik7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChpbnRlcmFjdGlvbik7XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdCY6OmFmdGVyLFxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBwYWludCh0ZXh0LWRhcmstcHJpbWFyeSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRjb2xvcjogcGFpbnQodGV4dC1saWdodC1wcmltYXJ5KTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0Y29sb3I6IHBhaW50KHRleHQtZGFyay1wcmltYXJ5KTtcblx0XHR9XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHBhaW50KHRleHQtbGlnaHQtcHJpbWFyeSk7XG5cblx0XHRcdCY6OmFmdGVyLFxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBwYWludCh0ZXh0LWxpZ2h0LXByaW1hcnkpO1xuXHRcdFx0XHRvcGFjaXR5OiAwLjk1O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gbGluay13aXRoLdGBaXJjbGUtc2l6ZSggJHNpemU6IHMgKSB7XG5cdEBpZiAkc2l6ZSA9PSBtIHtcblx0XHRmb250LXNpemU6IHJlbSgxNik7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbSgyNCk7XG5cdFx0Z2FwOiByZW0oMTApO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSByZW0oMzQpKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR3aWR0aDogcmVtKDIyKTtcblx0XHRcdGhlaWdodDogcmVtKDIyKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiByZW0oMjApICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IHMge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDIwKTtcblx0XHRnYXA6IHJlbSg4KTtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gcmVtKDI2KSk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IHJlbSgxOCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxOCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDE2KSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIEJ1dHRvbnMgYW5kIExpbmtzIC0gQ2lyY2xlIEJ0blxuQG1peGluIGNpcmNsZS1idG4oICR0eXBlOiBzZWNvbmRhcnksICRjb2xvcjogbm9ybWFsICkge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiAkYmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cGFkZGluZzogMDtcblxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0b3V0bGluZTogMC41cHggc29saWQgJGJsYWNrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaWYgJHR5cGUgPT0gcHJpbWFyeSB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXG5cdFx0QGlmICRjb2xvciA9PSBub3JtYWwge1xuXHRcdFx0YmFja2dyb3VuZDogcGFpbnQoaW50ZXJhY3Rpb24pO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcGFpbnQoaW50ZXJhY3Rpb24taG92ZXIpO1xuXHRcdFx0fVxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0YmFja2dyb3VuZDogcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcblx0XHRcdH1cblxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuXHRcdEBpZiAkY29sb3IgPT0gbm9ybWFsIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcblxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cdFx0XHR9XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBwYWludChib3JkZXItbGlnaHQtcHJpbWFyeSk7XG5cdFx0XHRjb2xvcjogcGFpbnQoYm9yZGVyLWxpZ2h0LXByaW1hcnkpO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG5cdFx0XHRcdG91dGxpbmU6IDAuNXB4IHNvbGlkIHBhaW50KGJvcmRlci1saWdodC1wcmltYXJ5KTtcblx0XHRcdH1cblxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBjaXJjbGUtYnRuLXNpemUoICRzaXplOiBtICkge1xuXHRAaWYgJHNpemUgPT0geGwge1xuXHRcdHdpZHRoOiByZW0oNTYpO1xuXHRcdGhlaWdodDogcmVtKDU2KTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdHdpZHRoOiByZW0oMjApO1xuXHRcdFx0aGVpZ2h0OiByZW0oMjApO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgyMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRzaXplID09IGwge1xuXHRcdHdpZHRoOiByZW0oNDgpO1xuXHRcdGhlaWdodDogcmVtKDQ4KTtcblxuXHRcdFtjbGFzc149XCJpY29uLVwiXSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdIHtcblx0XHRcdHdpZHRoOiByZW0oMjApO1xuXHRcdFx0aGVpZ2h0OiByZW0oMjApO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgyMCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gbSB7XG5cdFx0d2lkdGg6IHJlbSg0MCk7XG5cdFx0aGVpZ2h0OiByZW0oNDApO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgyMCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDIwKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2UgaWYgJHNpemUgPT0gcyB7XG5cdFx0d2lkdGg6IHJlbSgzNik7XG5cdFx0aGVpZ2h0OiByZW0oMzYpO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgxOCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxOCk7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0fSBAZWxzZSBpZiAkc2l6ZSA9PSB4cyB7XG5cdFx0d2lkdGg6IHJlbSgzMik7XG5cdFx0aGVpZ2h0OiByZW0oMzIpO1xuXG5cdFx0W2NsYXNzXj1cImljb24tXCJdLFxuXHRcdFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0d2lkdGg6IHJlbSgxNik7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxNik7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE2KTtcblx0XHRcdH1cblx0XHR9XG5cdH0gQGVsc2UgeyAvLyB4eHNcblx0XHR3aWR0aDogcmVtKDI0KTtcblx0XHRoZWlnaHQ6IHJlbSgyNCk7XG5cblx0XHRbY2xhc3NePVwiaWNvbi1cIl0sXG5cdFx0W2NsYXNzKj1cIiBpY29uLVwiXSB7XG5cdFx0XHR3aWR0aDogcmVtKDE2KTtcblx0XHRcdGhlaWdodDogcmVtKDE2KTtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTYpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4janF1ZXJ5LWxpdmUtc2VhcmNoIHtcblx0d2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi10b3A6IHJlbSgtNik7XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vY3NzL3NyYy9saWIvYmFzZS1pbmNsdWRlc1wiO1xuXG4uaGVyby1zZWN0aW9uX19taW5pbWFsIHtcblx0JHNlbGY6IFwiLmhlcm8tc2VjdGlvblwiO1xuXHRwYWRkaW5nOiBjYWxjKHJlbSg2NCkgKyB2YXIoLS1oZWFkZXJzaXplLCByZW0oNjQpKSkgMCByZW0oNjQpO1xuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRwYWRkaW5nOiBjYWxjKHJlbSg5NikgKyB2YXIoLS1oZWFkZXJzaXplLCByZW0oOTYpKSkgMCByZW0oNjQpO1xuXHR9XG5cblx0LnJvdyB7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSgzKTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcblx0XHRcdGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7XG5cdFx0XHRnYXA6IDA7XG5cdFx0fVxuXHR9XG5cblx0I3skc2VsZn1fX3RpdGxlIHtcblx0XHRwYWRkaW5nOiAwICRjb250YWluZXItc20tc3BhY2luZztcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdHBhZGRpbmc6IDAgJGNvbnRhaW5lci1tZC1zcGFjaW5nO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXHRcdFx0Z3JpZC1jb2x1bW4tZW5kOiA4OyAvLyAuY29sLWxnLTdcblx0XHRcdHBhZGRpbmc6IDAgY2FsYygjeyRncmlkLWxnLWd1dHRlci13aWR0aH0gLyAyKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0I3skc2VsZn1fX2ludHJvZHVjdGlvbiB7XG5cdFx0QGluY2x1ZGUgYm9keS1sYXJnZSggdHJ1ZSApO1xuXHRcdHBhZGRpbmc6IDAgJGNvbnRhaW5lci1zbS1zcGFjaW5nO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0cGFkZGluZzogMCAkY29udGFpbmVyLW1kLXNwYWNpbmc7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDk7XG5cdFx0XHRncmlkLWNvbHVtbi1lbmQ6IC0xOyAvLyAuY29sLWxnLTRcblx0XHRcdGdyaWQtcm93LXN0YXJ0OiAxO1xuXHRcdFx0Z3JpZC1yb3ctZW5kOiAzO1xuXHRcdFx0cGFkZGluZzogMCBjYWxjKCN7JGdyaWQtbGctZ3V0dGVyLXdpZHRofSAvIDIpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQjeyRzZWxmfV9fYnV0dG9ucyB7XG5cdFx0cGFkZGluZzogMCAkY29udGFpbmVyLXNtLXNwYWNpbmc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDQpO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0cGFkZGluZzogMCAkY29udGFpbmVyLW1kLXNwYWNpbmc7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cdFx0XHRncmlkLWNvbHVtbi1lbmQ6IDg7IC8vIC5jb2wtbGctN1xuXHRcdFx0Z3JpZC1yb3ctc3RhcnQ6IDI7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRcdFx0cGFkZGluZzogMCBjYWxjKCN7JGdyaWQtbGctZ3V0dGVyLXdpZHRofSAvIDIpO1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDIwKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy9UaGlzIGZpbGUgaXMgb25seSBmb3IgbWl4aW5zLiBEb24ndCBpbmNsdWRlIGFueSBzdHlsZXMgaW4gdGhpcyBmaWxlIG9yIGVsc2UgdGhleSB3aWxsIHJlcGVhdGVkIGluIGV2ZXJ5IGJsb2NrLlxuXG5AbWl4aW4gaDEoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDQxLCA2MCk7XG5cdGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcyg0OSwgNjgpO1xuXG5cdEBpZiAoICRtYXJnaW5zID09IGZhbHNlICkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5AbWl4aW4gaDIoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDM2LCA0OCk7XG5cdGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcyg0NCwgNTYpO1xuXG5cdEBpZiAoICRtYXJnaW5zID09IGZhbHNlICkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5AbWl4aW4gaDMoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDMwLCAzNik7XG5cdGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygzNiwgNDQpO1xuXG5cdEBpZiAoICRtYXJnaW5zID09IGZhbHNlICkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5AbWl4aW4gaDQoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDI0LCAzMCk7XG5cdGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygzMiwgMzYpO1xuXG5cdEBpZiAoICRtYXJnaW5zID09IGZhbHNlICkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5AbWl4aW4gaDUoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDIwLCAyNCk7XG5cdGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygyOCwgMzIpO1xuXG5cdEBpZiAoICRtYXJnaW5zID09IGZhbHNlICkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5AbWl4aW4gaDYoICRtYXJnaW5zOiB0cnVlLCAkcmVtb3ZlX2hlYWRlcl9tYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXdlaWdodDogNTAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LXNpemU6IHJlbSgxMik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xuXG5cdEBpZiAoICRtYXJnaW5zICkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XG5cdH1cblxuXHRAaWYgKCAkcmVtb3ZlX2hlYWRlcl9tYXJnaW5zICkge1xuXHRcdCsgaDEsXG5cdFx0KyAuaDEsXG5cdFx0KyBoMixcblx0XHQrIC5oMixcblx0XHQrIGgzLFxuXHRcdCsgLmgzLFxuXHRcdCsgaDQsXG5cdFx0KyAuaDQsXG5cdFx0KyBoNSxcblx0XHQrIC5oNSxcblx0XHQrIGg2LFxuXHRcdCsgLmg2IHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBib2R5LXhsKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0Zm9udC1zaXplOiByZW0oMjApO1xuXHRsaW5lLWhlaWdodDogcmVtKDI4KTtcblxuXHRAaWYgKCAkbWFyZ2lucyApIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjgpO1xuXHR9XG59XG5cbkBtaXhpbiBib2R5LWxhcmdlKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0Zm9udC1zaXplOiByZW0oMTgpO1xuXHRsaW5lLWhlaWdodDogcmVtKDI4KTtcblxuXHRAaWYgKCAkbWFyZ2lucyApIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjgpO1xuXHR9XG59XG5cbkBtaXhpbiBib2R5LXJlZ3VsYXIoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlbSgxNik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuXG5cdEBpZiAoICRtYXJnaW5zICkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDE2LCAyNCk7XG5cdH1cbn1cblxuQG1peGluIGJvZHktbWVkaXVtKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0Zm9udC1zaXplOiByZW0oMTYpO1xuXHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblxuXHRAaWYgKCAkbWFyZ2lucyApIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygxNiwgMjQpO1xuXHR9XG59XG5cbkBtaXhpbiBib2R5LXNtYWxsKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0Zm9udC1zaXplOiByZW0oMTQpO1xuXHRsaW5lLWhlaWdodDogcmVtKDIwKTtcblxuXHRAaWYgKCAkbWFyZ2lucyApIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygxNCwgMjApO1xuXHR9XG59XG5cbkBtaXhpbiBkZXRhaWwoICRtYXJnaW5zOiB0cnVlICkge1xuXHRmb250LXNpemU6IHJlbSgxMik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xuXG5cdEBpZiAoICRtYXJnaW5zICkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDE0LCAyMCk7XG5cdH1cbn1cblxuQG1peGluIG92ZXJsaW5lKCAkbWFyZ2luczogdHJ1ZSwgJHJlbW92ZV9oZWFkZXJfbWFyZ2luczogdHJ1ZSApIHtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiByZW0oMTIpO1xuXHRsaW5lLWhlaWdodDogcmVtKDE2KTtcblxuXHRAaWYgKCAkbWFyZ2lucyApIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTIpO1xuXHR9XG5cblx0QGlmICggJHJlbW92ZV9oZWFkZXJfbWFyZ2lucyApIHtcblx0XHQrIGgxLFxuXHRcdCsgLmgxLFxuXHRcdCsgaDIsXG5cdFx0KyAuaDIsXG5cdFx0KyBoMyxcblx0XHQrIC5oMyxcblx0XHQrIGg0LFxuXHRcdCsgLmg0LFxuXHRcdCsgaDUsXG5cdFx0KyAuaDUsXG5cdFx0KyBoNixcblx0XHQrIC5oNiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gYm9keS0xKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0QGluY2x1ZGUgYm9keS1sYXJnZSggJG1hcmdpbnMgKTtcbn1cblxuQG1peGluIGJvZHktMiggJG1hcmdpbnM6IHRydWUgKSB7XG5cdEBpbmNsdWRlIGJvZHktcmVndWxhciggJG1hcmdpbnMgKTtcbn1cblxuQG1peGluIGxpc3QoICRtYXJnaW5zOiB0cnVlICkge1xuXHRAaW5jbHVkZSBib2R5LWxhcmdlKCAkbWFyZ2lucyApO1xuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRAaW5jbHVkZSBib2R5LXhsKCAkbWFyZ2lucyApO1xuXHR9XG59XG5cbkBtaXhpbiBsZWFkKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0QGluY2x1ZGUgYm9keS14bCggJG1hcmdpbnMgKTtcbn1cblxuQG1peGluIHF1b3RlKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0QGluY2x1ZGUgaDIoICRtYXJnaW5zICk7XG59XG5cbkBtaXhpbiBzdWJ0aXRsZS0xKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0QGluY2x1ZGUgYm9keS1tZWRpdW0oICRtYXJnaW5zICk7XG59XG5cbkBtaXhpbiBzdWJ0aXRsZS0yKCAkbWFyZ2luczogdHJ1ZSApIHtcblx0QGluY2x1ZGUgYm9keS1yZWd1bGFyKCAkbWFyZ2lucyApO1xufVxuXG5AbWl4aW4gYnV0dG9uLTEge1xuXHRAaW5jbHVkZSBib2R5LW1lZGl1bShmYWxzZSk7XG59XG5cbkBtaXhpbiBidXR0b24tMiB7XG5cdEBpbmNsdWRlIGJvZHktc21hbGwoZmFsc2UpO1xuXHRmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gY2FwdGlvbiggJG1hcmdpbnM6IHRydWUgKSB7XG5cdEBpbmNsdWRlIGJvZHktc21hbGwoICRtYXJnaW5zICk7XG59XG5cbkBtaXhpbiB0YWcoICRtYXJnaW5zOiB0cnVlICkge1xuXHRAaW5jbHVkZSBkZXRhaWwoICRtYXJnaW5zICk7XG59XG5cbkBtaXhpbiBwYWdpbmF0aW9uLW51bWJlciB7XG5cdEBpbmNsdWRlIG92ZXJsaW5lO1xufVxuIl19 */
