/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

#columns {
  display: grid;
  grid-template-columns: 1fr;
}

#columns .left.col,
#columns .right.col {
  display: contents;
}

.left.col .narrow.box {
  max-width: 536px;
}

.box[data-col-dual="right"] {
  padding-top: 4px;
}

.box {
  order: 100;
}

[data-role="listview"] > li {
  padding: 2px 0;
}

@media (max-width: 959px) {
  #columns [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  #columns [data-role="button"]:not(.non-responsive):hover, #columns [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  #columns [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  #columns [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  #columns [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  #columns [data-role="button"]:not(.non-responsive).green:hover, #columns [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  #columns [data-role="button"]:not(.non-responsive).blue {
    background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
    border-color: #126167;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
  #columns [data-role="button"]:not(.non-responsive).blue:hover, #columns [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  #columns [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  #columns [data-role="listview"]:not(.non-responsive), #columns [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  #columns [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  #columns [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  #columns [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) #columns [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  #columns [data-role="listview"]:not(.non-responsive) a, #columns [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  #columns [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  #columns [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 959px) and (max-width: 37.49em) {
  #columns [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media (max-width: 959px) {
  #columns [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 959px) and (max-width: 37.49em) {
  #columns [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media (max-width: 959px) {
  #columns [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 959px) and (max-width: 37.49em) {
  #columns [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media (max-width: 959px) {
  #columns :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

@media (min-width: 740px) and (max-width: 959px) {
  #columns .box[data-col-single="right"],
  #columns .box[data-col-dual="right"] {
    width: calc(50% - 12px);
    float: left;
    margin: 0 4px 8px;
  }
  #columns .box[data-col-single="right"]:nth-of-type(odd),
  #columns .box[data-col-dual="right"]:nth-of-type(odd) {
    clear: left;
  }
}

@media (min-width: 960px) {
  #columns {
    grid-template-columns: 536px 376px;
    gap: 0 16px;
  }
  #columns .left.col,
  #columns .right.col {
    display: block;
  }
  #columns .left.col {
    grid-column: 1;
    grid-row: 1;
  }
  #columns .right.col {
    grid-column: 2;
    grid-row: 1;
  }
}

/******************************************************
* Top section (single column)
******************************************************/
section.top .overview {
  background-color: rgba(124, 197, 149, 0.65);
  border-radius: 4px;
  box-shadow: 4px 4px 4px #bbb;
  margin-bottom: 16px;
  padding: 8px;
}

section.top .overview, section.top .overview a {
  color: white;
}

section.top .overview, section.top .overview a {
  color: black;
}

section.top .overview p {
  margin: 0;
}

section.top p {
  margin-top: 0;
}

section.top .apps {
  margin-top: 16px;
}

section.top .apps p {
  margin-bottom: 0;
}

section.top #instruction {
  padding-top: 8px;
}

/******************************************************
* Google map
******************************************************/
#map-container {
  position: relative;
  width: 532px;
}

@media screen and (max-width: 59.99em) {
  #map-container {
    width: 100%;
  }
}

#map {
  max-width: 100% !important;
  width: 532px;
  height: 480px;
}

@media screen and (max-width: 59.99em) {
  #map {
    width: 100%;
    order: 1;
  }
  #map, #map * {
    pointer-events: none !important;
  }
}

#map .info-content {
  cursor: pointer;
}

#map.hide-walk-polys .walk-poly {
  display: none;
}

#static-map {
  width: 100%;
}

#static-map img {
  display: block;
  width: 100%;
  max-width: 532px;
}

#full-screen-map {
  position: absolute !important;
  right: 10px;
  top: 10px;
  width: 120px;
  height: 20px;
  z-index: 9000 !important;
  background: #ffffff;
  border-radius: 4px;
  padding: 4px;
  text-align: center;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.4);
}

@media screen and (max-width: 59.99em) {
  #full-screen-map {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    background-color: transparent;
    color: white;
  }
  #full-screen-map, #full-screen-map a {
    color: white;
  }
  #full-screen-map:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  #full-screen-map:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  #full-screen-map > * {
    z-index: 2;
  }
  body:not(.fullscreen) #full-screen-map > * {
    position: relative;
  }
  #full-screen-map a, #full-screen-map strong {
    color: white;
  }
  #full-screen-map h2 {
    border: none;
    margin: 0;
  }
  #full-screen-map:after {
    height: 12px;
    border-radius: 0 0 4px 4px;
  }
}

#full-screen-map a {
  text-decoration: none;
  position: relative;
  top: 1px;
}

#full-screen-map a:hover {
  text-decoration: underline;
}

/******************************************************
* Browse form
******************************************************/
#browse {
  padding: 8px 16px;
}

#browse form {
  margin: 0;
}

#browse .filter {
  display: inline-block;
  margin-bottom: 8px;
}

#browse h3 {
  margin: 0 0 16px 0;
  text-decoration: none;
}

#browse label {
  font-size: 11pt;
  width: 72px;
  margin-right: 8px;
  display: block;
}

@media screen and (min-width: 60em) {
  #browse label {
    float: left;
    position: relative;
    top: 2px;
  }
}

@media screen and (min-width: 60em) and (pointer: coarse) and (hover: none) {
  #browse label {
    clear: left;
    padding: 0;
  }
}

@media screen and (min-width: 60em) and (max-width: 48.615em) {
  #browse label {
    clear: left;
    padding: 0;
  }
}

@media screen and (max-width: 59.99em) {
  #browse label {
    margin-bottom: 4px;
  }
}

#browse select {
  width: 204px;
}

@media screen and (max-width: 59.99em) {
  #browse select {
    margin-right: 16px;
    margin-bottom: 16px;
  }
}

@media screen and (min-width: 60em) {
  .submit {
    transform: translateX(-50%);
    margin-left: 282px;
  }
}

@media screen and (min-width: 60em) and (pointer: coarse) and (hover: none) {
  .submit {
    margin-left: 268px;
  }
}

@media screen and (min-width: 60em) and (max-width: 48.615em) {
  .submit {
    margin-left: 268px;
  }
}

@media screen and (max-width: 59.99em) {
  .submit {
    display: inline-block;
  }
}

mi.filter {
  padding-top: 4px;
  padding-bottom: 4px;
}

/******************************************************
* Promos
******************************************************/
.promo-container {
  margin: 0 auto;
  width: 100%;
  /******************************************************
* Slick Carousel default theme overrides
******************************************************/
}

.promo-container .slick-prev,
.promo-container .slick-next {
  z-index: 1;
  width: auto !important;
  height: auto !important;
}

.promo-container .slick-prev:before,
.promo-container .slick-next:before {
  background-color: black;
  border-radius: 20px;
}

.promo-container .slick-prev {
  left: 16px;
}

.promo-container .slick-prev:before {
  content: "\f104";
  font: 40px/1 'FontAwesome';
  padding: 0 16px 2px 12px;
}

.promo-container .slick-next {
  right: 16px;
  text-align: right;
}

.promo-container .slick-next:before {
  content: "\f105";
  font: 40px/1 'FontAwesome';
  padding: 0 12px 2px 16px;
}

.promo-container .slick-prev:hover:before,
.promo-container .slick-next:hover:before {
  color: #7e7e7e;
}

@media (pointer: coarse) and (hover: none) {
  .promo-container .slick-prev:hover:before,
  .promo-container .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

@media screen and (max-width: 48.615em) {
  .promo-container .slick-prev:hover:before,
  .promo-container .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

.promo-container .slick-list {
  margin: 0 -8px;
}

.promo-container .slick-slide {
  margin: 0 8px;
}

body:not(.fullscreen) .promo-container:not(.loaded), .promo-container:not(.displayed) {
  position: relative;
}

.promo-container:not(.loaded)::after, .promo-container:not(.displayed)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.promo-container:not(.displayed) .slick-arrow {
  display: none !important;
}

.promo-container:not(.loaded) .promo {
  display: none !important;
}

.promo-container .promos {
  padding: 8px 0 4px 0;
}

@media screen and (max-width: 22.75em) {
  .promo-container .promos {
    padding: 0;
  }
}

.promo-container .promo {
  position: relative;
  text-align: center;
}

.promo-container .promo .wrapper {
  display: inline-block;
  position: relative;
  left: -1px;
  border: 1px solid #999999;
}

.promo-container .promo img {
  box-shadow: 4px 4px 4px #bbb;
  margin: 0 auto;
  width: 100%;
}

.promo-container .promo .title, .promo-container .promo .message {
  position: absolute;
  width: 100%;
  left: 0;
}

.promo-container .promo .title h2, .promo-container .promo .title p, .promo-container .promo .message h2, .promo-container .promo .message p {
  color: white;
  margin: 0;
  z-index: 2;
  background-color: rgba(0, 0, 0, 0.5);
  text-shadow: 0 0 1px black;
}

.promo-container .promo .title {
  top: 0;
}

.promo-container .promo .title h2 {
  font-size: 14pt;
  border: none;
  padding: 2px;
}

.promo-container .promo .message {
  bottom: 0;
}

.promo-container .promo .message p {
  padding: 4px 0 4px 4px;
  font-size: 10pt;
  text-align: left;
}

/******************************************************
* Reviews
******************************************************/
#reviews {
  background-color: rgba(124, 197, 149, 0.65);
  border-radius: 4px;
  margin: 16px 0 8px 0;
  padding: 8px 16px;
  height: 80px;
}

#reviews, #reviews a {
  color: white;
}

#reviews, #reviews a {
  color: black;
}

@media screen and (max-width: 59.99em) {
  #reviews {
    height: 120px;
  }
}

@media screen and (max-width: 37.49em) {
  #reviews {
    height: 160px;
  }
}

#reviews #review-list {
  overflow-y: visible !important;
}

#reviews .arrow-icon {
  display: none;
}

#reviews blockquote {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  position: relative !important;
  font-size: 14px !important;
  text-align: center;
  display: none;
}

#reviews blockquote.showReview {
  display: block;
}

/******************************************************
* App promo
******************************************************/
#app {
  background-color: #131;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  /*
 * Responsive slideshow widget using Slick carousel
 */
  /******************************************************
* Slick Carousel default theme overrides
******************************************************/
  padding: 4px 0 0 0;
  margin-top: 16px;
}

#app, #app a {
  color: white;
}

#app:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#2e802e, #174517);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#app:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#184719, #113311);
  z-index: -1;
}

#app > * {
  z-index: 2;
}

body:not(.fullscreen) #app > * {
  position: relative;
}

#app .slick-prev,
#app .slick-next {
  z-index: 1;
  width: auto !important;
  height: auto !important;
}

#app .slick-prev:before,
#app .slick-next:before {
  background-color: black;
  border-radius: 20px;
}

#app .slick-prev {
  left: 16px;
}

#app .slick-prev:before {
  content: "\f104";
  font: 40px/1 'FontAwesome';
  padding: 0 16px 2px 12px;
}

#app .slick-next {
  right: 16px;
  text-align: right;
}

#app .slick-next:before {
  content: "\f105";
  font: 40px/1 'FontAwesome';
  padding: 0 12px 2px 16px;
}

#app .slick-prev:hover:before,
#app .slick-next:hover:before {
  color: #7e7e7e;
}

@media (pointer: coarse) and (hover: none) {
  #app .slick-prev:hover:before,
  #app .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

@media screen and (max-width: 48.615em) {
  #app .slick-prev:hover:before,
  #app .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

#app .slideshow {
  margin: 0 auto 0 auto;
  width: 100%;
}

#app .slideshow:not(.initialised) .slide {
  display: none !important;
}

#app .slideshow:not(.initialised) .slide:first-child {
  display: block !important;
}

#app .slideshow.loading {
  width: 100%;
}

body:not(.fullscreen) #app .slideshow.loading {
  position: relative;
}

#app .slideshow.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

#app .slideshow.loading .caption {
  display: none !important;
}

#app .slideshow.loading .slide {
  visibility: hidden;
}

#app .slideshow.loading .slide:first-child .caption {
  display: block !important;
}

#app .slideshow.loading .slide img {
  display: none;
}

#app .slideshow.initialised:not(.loading) .wrapper:not(.evaluating) {
  position: relative;
}

#app .slideshow.initialised:not(.loading) .wrapper:not(.evaluating) .caption {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
}

#app .slideshow .slide img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

#app .slideshow .slide .caption {
  font-family: "Coming Soon";
  color: #ddd;
  padding: 8px 16px;
  display: block;
  vertical-align: middle;
  font-size: 16pt;
}

@media screen and (max-width: 37.49em) {
  #app .slideshow .slide .caption {
    font-size: 12pt;
    line-height: 14pt;
  }
}

#app .slideshow {
  background-color: #131;
}

#app .slideshow.loading {
  padding-top: 37.72%;
}

#app h2 {
  border-bottom: none;
  padding: 0 8px 8px 8px;
}

#app-ad {
  background-color: #285d1e;
  border-radius: 4px;
  padding: 0 4px 8px 4px;
  border-radius: 0 0 4px 4px;
}

#app-ad, #app-ad a {
  color: white;
}

#app-ad .app-formats {
  display: table;
  margin: 0 auto;
  width: 100%;
}

@media screen and (min-width: 60em) {
  #app-ad .app-formats .app-button {
    display: none !important;
  }
}

@media screen and (max-width: 59.99em) {
  #app-ad .app-formats .text {
    display: none !important;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 59.99em) {
  #app-ad .app-formats .icon {
    visibility: hidden;
  }
}

@media screen and (max-width: 37.49em) {
  #app-ad .app-formats {
    display: block;
    width: 100%;
  }
  #app-ad .app-formats .icon {
    display: none !important;
  }
}

#app-ad .app-formats > div.store-link {
  display: table-cell;
}

#app-ad .app-formats > div.store-link .inner {
  left: 50%;
  transform: translateX(-50%);
  position: relative;
  width: 98%;
  width: calc(100% - 12px);
  border-radius: 10px;
  display: table;
  table-layout: fixed;
}

@media screen and (min-width: 37.5em) {
  #app-ad .app-formats > div.store-link .inner {
    margin: 8px 0 0 0;
    padding: 8px 0 4px 0;
    border: 1px solid #aaaaaa;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 59.99em) {
  #app-ad .app-formats > div.store-link .inner {
    position: relative;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 46.24em) {
  #app-ad .app-formats > div.store-link .inner {
    padding: 4px 0 8px 0;
  }
}

@media screen and (min-width: 60em) {
  #app-ad .app-formats > div.store-link:hover {
    cursor: pointer;
  }
  #app-ad .app-formats > div.store-link:hover a {
    text-decoration: underline;
  }
}

#app-ad .app-formats > div.store-link.ios .icon {
  padding-left: 42px;
}

@media screen and (min-width: 46.25em) {
  #app-ad .app-formats > div.store-link.android .icon img {
    margin-left: 12px;
  }
}

#app-ad .app-formats > div.store-link.android .icon {
  padding-left: 24px !important;
}

#app-ad .app-formats > div.store-link .inner > div {
  display: table-cell;
  vertical-align: middle;
}

@media screen and (max-width: 46.24em) {
  #app-ad .app-formats > div.store-link .inner > div {
    display: block;
  }
}

#app-ad .app-formats > div.store-link .inner > div.icon {
  text-align: left;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-right: 16px;
}

@media screen and (max-width: 59.99em) {
  #app-ad .app-formats > div.store-link .inner > div.icon {
    display: none;
  }
}

#app-ad .app-formats > div.store-link .inner > div.text {
  text-align: center;
  font-size: 17px;
  font-variant: small-caps;
  color: white;
}

#app-ad .app-formats > div.store-link .inner > div.text a {
  color: white;
  text-decoration: none;
}

#app-ad .app-formats > div.store-link .inner > div.qr {
  text-align: right;
  padding-left: 18px;
  padding-right: 8px;
}

@media screen and (max-width: 46.24em) {
  #app-ad .app-formats > div.store-link .inner > div.qr {
    text-align: center;
  }
}

@media screen and (max-width: 37.49em) {
  #app-ad .app-formats > div.store-link .inner > div.qr {
    display: none !important;
  }
}

#app-ad .app-formats > div.store-link .inner > div.qr img {
  max-width: 100px;
}

@media screen and (max-width: 59.99em) {
  #app-ad .app-formats > div.store-link .inner > div.qr img {
    width: 100%;
  }
}

@media screen and (min-width: 46.25em) and (max-width: 59.99em) {
  #app-ad .app-formats > div.store-link .inner > div.app-button {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
    text-align: left;
  }
}

@media screen and (max-width: 46.24em) {
  #app-ad .app-formats > div.store-link .inner > div.app-button {
    text-align: center;
  }
}

#app-ad .app-formats > div.store-link .inner > div.app-button a {
  padding-left: 42px;
}

@media screen and (max-width: 37.49em) {
  #app-ad .app-formats > div.store-link .inner > div.app-button a {
    margin: 12px 0 0 0;
  }
}

#app-ad:before {
  border-radius: 0;
}

/********************************************************
* Column layout
********************************************************/
#right-column {
  float: right;
  margin-left: 16px;
  width: 360px;
}

/******************************************************
* box styling
******************************************************/
.box {
  box-shadow: 4px 4px 4px #bbb;
}

.box.gradient {
  background-color: #131;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  padding: 8px;
  color: white;
}

.box.gradient, .box.gradient a {
  color: white;
}

.box.gradient:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#2e802e, #174517);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

.box.gradient:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#184719, #113311);
  z-index: -1;
}

.box.gradient > * {
  z-index: 2;
}

body:not(.fullscreen) .box.gradient > * {
  position: relative;
}

.box.gradient a {
  color: white !important;
}

.box > h2, .box > h3 {
  text-decoration: none;
  margin: 0;
}

/******************************************************
* Panels - image equivalent of a box without the shading
******************************************************/
.panel {
  margin-top: 16px;
  border-radius: 4px;
  background-color: white;
}

/*****************************************************************
 Single column box order
*****************************************************************/
#map-container {
  order: 1;
}

.information {
  order: 2;
}

#browse {
  order: 3;
}

/******************************************************
* Information
******************************************************/
.information {
  margin-top: 16px;
  display: table;
  font-family: Coming Soon;
  font-size: 12pt;
  padding: 16px !important;
}

@media (pointer: coarse) and (hover: none) {
  .information {
    height: 226px;
    font-size: 11pt;
  }
}

@media screen and (max-width: 48.615em) {
  .information {
    height: 226px;
    font-size: 11pt;
  }
}

@media screen and (max-width: 59.99em) {
  .information {
    height: auto;
    display: block;
    margin-bottom: 16px;
  }
}

@media screen and (max-width: 37.49em) {
  .information .not-phone {
    display: none;
  }
}

.information .wrapper {
  display: table-cell;
  vertical-align: middle;
}

/******************************************************
* Walk promo slideshow
******************************************************/
.promo-container:not(.loaded) {
  padding-top: 26.29%;
}

@media screen and (max-width: 60em) {
  .promo-container:not(.loaded) {
    padding-top: 39.44%;
  }
}

@media screen and (max-width: 39.625em) {
  .promo-container:not(.loaded) {
    padding-top: 78.88%;
  }
}

/******************************************************
* Search form
******************************************************/
#search {
  margin-top: 8px;
  display: none;
  /* make map taller - about 540px when shown */
}

#search h3 {
  margin-top: 0;
}

/******************************************************
* Announcements when we need them
******************************************************/
.announce {
  box-shadow: 4px 4px 4px #bbb;
  background-color: white;
  margin-top: 16px;
  padding: 16px;
  border-radius: 4px;
}

.announce p {
  margin: 0;
}

/********************************************************
* Print mods
********************************************************/
@media print {
  #browse {
    display: none;
  }
  #right-column {
    display: none;
  }
  #google-map {
    width: 100%;
  }
  #content {
    margin-top: 100px;
  }
  #banner {
    position: relative;
    top: -100px;
  }
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy9ob21lLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3MvaG9tZS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fcmVzcG9uc2l2ZV9jb2x1bW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaG9tZS9fdG9wX3NlY3Rpb24uc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0Bob21lL19tYXAuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0Bob21lL19icm93c2VfZm9ybS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19wcm9tb3Muc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fbG9hZGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX3NsaWNrX292ZXJyaWRlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGhvbWUvX3Jldmlld3Muc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0Bob21lL19hcHBfcHJvbW8uc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fc2xpZGVzaG93LnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fYXBwX2FkX2Zvcm1hdHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0IFwiQGluY2x1ZGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQGluY2x1ZGUvcmVzcG9uc2l2ZV9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiQGhvbWUvdG9wX3NlY3Rpb25cIjtcbkBpbXBvcnQgXCJAaG9tZS9tYXBcIjtcbkBpbXBvcnQgXCJAaG9tZS9icm93c2VfZm9ybVwiO1xuQGltcG9ydCBcIkBpbmNsdWRlL2NvbXBvbmVudC9wcm9tb3NcIjtcbkBpbXBvcnQgXCJAaG9tZS9yZXZpZXdzXCI7XG5AaW1wb3J0IFwiQGhvbWUvYXBwX3Byb21vXCI7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBDb2x1bW4gbGF5b3V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI3JpZ2h0LWNvbHVtbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIHdpZHRoOjM2MHB4O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIGJveCBzdHlsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5ib3h7XG4gIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgJi5ncmFkaWVudHtcbiAgICBAaW5jbHVkZSBib3hHcmFkaWVudERhcmtHcmVlbjtcbiAgICBwYWRkaW5nOjhweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYXtcbiAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gID4gaDIsID4gaDN7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFBhbmVscyAtIGltYWdlIGVxdWl2YWxlbnQgb2YgYSBib3ggd2l0aG91dCB0aGUgc2hhZGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4ucGFuZWwge1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBTaW5nbGUgY29sdW1uIGJveCBvcmRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jbWFwLWNvbnRhaW5lcntcbiAgb3JkZXI6IDE7XG59XG5cbi5pbmZvcm1hdGlvbntcbiAgb3JkZXI6IDI7XG59XG5cbiNicm93c2V7XG4gIG9yZGVyOiAzO1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBJbmZvcm1hdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmluZm9ybWF0aW9ue1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgZm9udC1mYW1pbHk6IENvbWluZyBTb29uO1xuICBmb250LXNpemU6IDEycHQ7XG4gIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDtcblxuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlcyB7XG4gICAgaGVpZ2h0OiAyMjZweDtcbiAgICBmb250LXNpemU6IDExcHQ7XG4gIH1cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgLm5vdC1waG9uZXtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIC53cmFwcGVye1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFdhbGsgcHJvbW8gc2xpZGVzaG93XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ucHJvbW8tY29udGFpbmVyIHtcbiAgJjpub3QoLmxvYWRlZCl7XG4gICAgcGFkZGluZy10b3A6IDI2LjI5JTsgLy8gYXNwZWN0IGZvciAzNDR4MjU4IC8gM1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IDk2MHB4KSB7XG4gICAgICBwYWRkaW5nLXRvcDogMzkuNDQlOyAvLyBhc3BlY3QgZm9yIDM0NHgyNTggLyAyXG4gICAgfVxuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IDYzNHB4KSB7XG4gICAgICBwYWRkaW5nLXRvcDogNzguODglOyAvLyBhc3BlY3QgZm9yIDM0NHgyNTggLyAxXG4gICAgfVxuICB9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBTZWFyY2ggZm9ybVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4jc2VhcmNoIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBkaXNwbGF5Om5vbmU7IC8qIG1ha2UgbWFwIHRhbGxlciAtIGFib3V0IDU0MHB4IHdoZW4gc2hvd24gKi9cblxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogQW5ub3VuY2VtZW50cyB3aGVuIHdlIG5lZWQgdGhlbVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uYW5ub3VuY2Uge1xuICAgIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gIHB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBQcmludCBtb2RzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhIHByaW50IHtcbiAgI2Jyb3dzZSB7XG4gICAgZGlzcGxheTogbm9uZVxuICB9XG4gICNyaWdodC1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IG5vbmVcbiAgfVxuICAjZ29vZ2xlLW1hcCB7XG4gICAgd2lkdGg6IDEwMCVcbiAgfVxuICAjY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gIH1cbiAgI2Jhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEwMHB4O1xuICB9XG59XG4iLAoJCSIvLyBDb21tb24gc3R5bGVzXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiZ2VuZXJhbF9taXhpbnNcIjtcbkBpbXBvcnQgXCJtZWRpYVwiO1xuQGltcG9ydCBcInRvdWNoXCI7XG5cbmJvZHl7XG4gIHZpc2liaWxpdHk6IGluaGVyaXQ7XG59XG4iLAoJCSIvLyBWYXJpYWJsZXNcblxuJHBhZ2Utd2lkdGg6IDk2MHB4O1xuJHJlc3BvbnNpdmUtbWVudTogNzc4cHg7XG5cbiRncmV5OiAjMmYyZjJmO1xuJGRhcmstZ3JlZW46ICMxMzE7XG4kZ3JlZW46ICMyODVkMWU7XG4kYmx1ZTogIzE5NDI0YTtcbiRsaWdodC1ncmVlbjogcmdiYSgxMjQsIDE5NywgMTQ5LCAwLjY1KTtcbiRyZWQ6ICM1YzFlMWU7XG4kZGFyay1yZWQ6ICM2NjAwMDA7XG5cbi8vIEJveCBncmFkaWVudHNcbiRib3gtR3JhZC1IZWlnaHQ6IDE4cHg7XG5cbiRib3gtQkctR3JleTogJGdyZXk7XG4kYm94LUdyYWQtVXBwZXItVG9wLUdyZXk6ICM3MTcxNzE7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLUdyZXk6ICM0MjQxNDE7XG4kYm94LUdyYWQtTG93ZXItVG9wLUdyZXk6ICM0MDQwNDA7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZXk6ICMyZjJmMmY7XG5cbiRib3gtQkctR3JlZW46ICRncmVlbjtcbiRib3gtR3JhZC1VcHBlci1Ub3AtR3JlZW46ICM0Njk5MzY7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLUdyZWVuOiAjMzA3MDI1O1xuJGJveC1HcmFkLUxvd2VyLVRvcC1HcmVlbjogIzMwNzIyNTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JlZW46ICMyODVkMWU7XG5cbiRib3gtQkctQmx1ZTogIzE5NDI0YTtcbiRib3gtR3JhZC1VcHBlci1Ub3AtQmx1ZTogIzEyNjE2NztcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tQmx1ZTogIzE5NDI0YTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtQmx1ZTogIzE5NDI0YTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tQmx1ZTogIzE5NDI0YTtcblxuXG4kYm94LUJHLURhcmstR3JlZW46ICRkYXJrLWdyZWVuO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1EYXJrLUdyZWVuOiAjMmU4MDJlO1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1EYXJrLUdyZWVuOiAjMTc0NTE3O1xuJGJveC1HcmFkLUxvd2VyLVRvcC1EYXJrLUdyZWVuOiAjMTg0NzE5O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1EYXJrLUdyZWVuOiAjMTEzMzExO1xuXG4kYm94LUJHLVJlZDogJHJlZDtcbiRib3gtR3JhZC1VcHBlci1Ub3AtUmVkOiAjYTgzYjNiO1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1SZWQ6ICM2ZTI1MjU7XG4kYm94LUdyYWQtTG93ZXItVG9wLVJlZDogIzcwMjUyNTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tUmVkOiAjNWMxZTFlO1xuXG4kbXEtYnJlYWtwb2ludC1tb2JpbGU6IDMyMHB4O1xuJG1xLWJyZWFrcG9pbnQtdGFibGV0N2luY2g6IDYwMHB4O1xuJG1xLWJyZWFrcG9pbnQtdGFibGV0OiA3NDBweDtcbiRtcS1icmVha3BvaW50LWRlc2t0b3A6IDk4MHB4O1xuJG1xLWJyZWFrcG9pbnQtd2lkZTogMTMwMHB4O1xuJG1xLWJyZWFrcG9pbnQtZGVza3RvcEFkOiA4MTBweDtcbiRtcS1icmVha3BvaW50LW1vYmlsZUxhbmRzY2FwZTogNDgwcHg7XG4kbXEtYnJlYWtwb2ludC1tZWRpdW1Mb2dvOiA0NDBweDtcbiRtcS1icmVha3BvaW50LXNtYWxsTG9nbzogMzIwcHg7XG4kbXEtYnJlYWtwb2ludC1oZWFkZXJTb2NpYWxJY29uczogOTU0cHg7XG4kbXEtYnJlYWtwb2ludC1wYWdlOiAkcGFnZS13aWR0aDtcbiRtcS1icmVha3BvaW50LXJlc3BvbnNpdmVNZW51OiAkcmVzcG9uc2l2ZS1tZW51O1xuXG5cbi8vIEJyZWFrcG9pbnRzXG4kbXEtYnJlYWtwb2ludHM6IChcbiAgICAgICAgbW9iaWxlOiAgJG1xLWJyZWFrcG9pbnQtbW9iaWxlLFxuICAgICAgICB0YWJsZXQ3aW5jaDogICRtcS1icmVha3BvaW50LXRhYmxldDdpbmNoLFxuICAgICAgICB0YWJsZXQ6ICAkbXEtYnJlYWtwb2ludC10YWJsZXQsXG4gICAgICAgIGRlc2t0b3A6ICRtcS1icmVha3BvaW50LWRlc2t0b3AsXG4gICAgICAgIHdpZGU6ICRtcS1icmVha3BvaW50LXdpZGUsXG5cbiAgLy8gVHdlYWtwb2ludHNcbiAgICAgICAgZGVza3RvcEFkOiAkbXEtYnJlYWtwb2ludC1kZXNrdG9wQWQsXG4gICAgICAgIG1vYmlsZUxhbmRzY2FwZTogJG1xLWJyZWFrcG9pbnQtbW9iaWxlTGFuZHNjYXBlLFxuICAgICAgICBzbWFsbExvZ286ICRtcS1icmVha3BvaW50LXNtYWxsTG9nbyxcbiAgICAgICAgcGFnZTogJG1xLWJyZWFrcG9pbnQtcGFnZSxcbiAgICAgICAgcmVzcG9uc2l2ZU1lbnU6ICRtcS1icmVha3BvaW50LXJlc3BvbnNpdmVNZW51LFxuICAgICAgICBoZWFkZXJTb2NpYWxJY29uczogJG1xLWJyZWFrcG9pbnQtaGVhZGVyU29jaWFsSWNvbnNcbik7XG5cblxuLy8gVG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KSBzZXQgJG1xLXJlc3BvbnNpdmUgdG8gZmFsc2Vcbi8vIENyZWF0ZSBhIHNlcGFyYXRlIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIHRoZXNlIGJyb3dzZXJzLFxuLy8gbWVhbmluZyBAbWVkaWEgcXVlcmllcyB3aWxsIGJlIHJhc3Rlcml6ZWQsIHJlbHlpbmcgb24gdGhlIGNhc2NhZGUgaXRzZWxmXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZTtcblxuLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cbi8vJG1xLXNob3ctYnJlYWtwb2ludHM6IChtb2JpbGUsIG1vYmlsZUxhbmRzY2FwZSwgdGFibGV0LCBkZXNrdG9wLCB3aWRlKTtcbiIsCgkJIkBtaXhpbiBpV2Fsa01vYmlsZUdyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzlkY2Y0IDAlLCM4MmI1ZWMgMjIlLCMyOThhZTMgNDYlLCMzZWMxZjcgNzAlLCMzZWMxZjcgMTAwJSk7XG59XG5cbkBtaXhpbiBjZW50cmVZe1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AbWl4aW4gY2VudHJlWHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbkBtaXhpbiBjZW50cmVYWXtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpICB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AbWl4aW4gZ3JleV9ncmFkaWVudHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgxODEsIDE4OSwgMjAwLCAxKSAwJSwgcmdiYSgxMzAsIDE0MCwgMTQ5LCAxKSAzNiUsIHJnYmEoNDAsIDUyLCA1OSwgMSkgMTAwJSk7XG59XG5cbkBtaXhpbiBncmVlbl9ncmFkaWVudHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzRlYjk0ZSAwJSwgIzEwOTAxMCAzNiUsICMwOTNlMDkgMTAwJSk7XG59XG5cbkBtaXhpbiBib3goJGJnKXtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBib3JkZXItcmFkaXVzOjRweDtcbiAgJiwgYXtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cblxuQG1peGluIGJveEdyYWRpZW50KCRiZywgJHVwcGVyLXRvcCwgJHVwcGVyLWJvdHRvbSwgJGxvd2VyLXRvcCwgJGxvd2VyLWJvdHRvbSwgJGhlaWdodDogJGJveC1HcmFkLUhlaWdodCl7XG4gIEBpbmNsdWRlIGJveCgkYmcpO1xuICB6LWluZGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmV7XG4gICAgY29udGVudDonJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkdXBwZXItdG9wLCAkdXBwZXItYm90dG9tKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICY6YWZ0ZXJ7XG4gICAgY29udGVudDonJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAkaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkbG93ZXItdG9wLCAkbG93ZXItYm90dG9tKTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gID4gKntcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgYm9keTpub3QoLmZ1bGxzY3JlZW4pICN7Jn0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEdyZXl7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctR3JleSwgJGJveC1HcmFkLVVwcGVyLVRvcC1HcmV5LCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUdyZXksICRib3gtR3JhZC1Mb3dlci1Ub3AtR3JleSwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmV5KTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50R3JlZW57XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctR3JlZW4sICRib3gtR3JhZC1VcHBlci1Ub3AtR3JlZW4sICRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Ub3AtR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JlZW4pO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnRCbHVle1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUJsdWUsICRib3gtR3JhZC1VcHBlci1Ub3AtQmx1ZSwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1CbHVlLCAkYm94LUdyYWQtTG93ZXItVG9wLUJsdWUsICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tQmx1ZSk7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudERhcmtHcmVlbntcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1EYXJrLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItVG9wLURhcmstR3JlZW4sICRib3gtR3JhZC1VcHBlci1Cb3R0b20tRGFyay1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLVRvcC1EYXJrLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLURhcmstR3JlZW4pO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnRSZWR7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctUmVkLCAkYm94LUdyYWQtVXBwZXItVG9wLVJlZCwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1SZWQsICRib3gtR3JhZC1Mb3dlci1Ub3AtUmVkLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLVJlZCk7XG59XG5cbkBtaXhpbiBib3hTaGFkb3d7XG4gIGJveC1zaGFkb3c6IDRweCA0cHggNHB4ICNiYmI7XG59XG5cbkBtaXhpbiBib3h5e1xuICBAaW5jbHVkZSBib3hHcmFkaWVudEdyZXk7XG4gIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgY29sb3I6ICNlZWU7XG5cbiAgYSwgc3Ryb25nIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICBoMiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AbWl4aW4gbGlnaHRHcmVlbkJveHtcbiAgQGluY2x1ZGUgYm94KCRsaWdodC1ncmVlbik7XG4gICYsYXtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbn1cblxuIiwKCQkiXG4vKipcbiAqIEJyZWFrcG9pbnRzXG4gKi9cblxuQGltcG9ydCBcIm1xXCI7XG5cblxuQG1peGluIG1xcygkZnJvbTogZmFsc2UsICR1bnRpbDogZmFsc2Upe1xuICBAaW5jbHVkZSBtcSgkZnJvbSwgJHVudGlsLCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnB1dCBjYXBhYmlsaXRpZXNcbiAqL1xuXG4vLyBzbWFydHBob25lcyBhbmQgdGFibGV0c1xuQG1peGluIHRvdWNoLXNjcmVlbi1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKVxuICBhbmQgKGhvdmVyOiBub25lKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNb3VzZSBvciB0b3VjaCBwYWRcbkBtaXhpbiBtb3VzZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogZmluZSlcbiAgYW5kIChob3ZlcjogaG92ZXIpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFNob3cgZm9yIHRvdWNoIHNjcmVlbnNcbi8vIGFuZCB1cCB1bnRpbCB0YWJsZXQgZGV2aWNlIHdpZHRoIGZvciB0YWJsZXRzIG5vdCBzdXBwb3J0aW5nIGlucHV0IG1lZGlhIHF1ZXJpZXMgaWUuIG9sZCBBbmRyb2lkIDQueFxuQG1peGluIHRvdWNoLXNjcmVlbi1kZXZpY2Vze1xuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4taW5wdXQge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHJlc3BvbnNpdmVNZW51KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTmludGVuZG8gV2lpIGNvbnRyb2xsZXIsIEtpbmVjdCwgZXRjLlxuQG1peGluIGNvbnNvbGUtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSlcbiAgYW5kIChob3ZlcjogaG92ZXIpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHN0eWx1cy1iYXNlZCBzY3JlZW5zIChDaW50aXEsIFdhY29tLCBldGMpXG5AbWl4aW4gY29uc29sZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogZmluZSlcbiAgYW5kIChob3Zlcjogbm9uZSl7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gUmV0aW5hIGRpc3BsYXlzICgyeClcbkBtaXhpbiByZXRpbmEge1xuICBAbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMy8yKSxcbiAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwobWluLXJlc29sdXRpb246IDEuNWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7IC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cblxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0ci1zbGljZSh1bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBjb2xvcjogI0MwOTg1MztcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogVG91Y2ggZGV2aWNlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW1wb3J0IFwiZ2VuZXJhbF9taXhpbnNcIjtcblxuQG1peGluIGJveC1zaGFkb3d7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7XG59XG5cbkBtaXhpbiB0b3VjaC1zY3JlZW4tc3R5bGVzIHtcblxuICAvLyBCdXR0b25zXG4gIFtkYXRhLXJvbGU9XCJidXR0b25cIl06bm90KC5ub24tcmVzcG9uc2l2ZSl7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdztcblxuICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcblxuICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuXG4gICAgbWFyZ2luOiAuNWVtIDA7XG4gICAgcGFkZGluZzogLjdlbSAxZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAmOmhvdmVyLCAmOmFjdGl2ZXtcbiAgICAgIGJhY2tncm91bmQ6ICNlOGYwZmY7XG4gICAgfVxuXG4gICAgJltkYXRhLWljb25de1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgICAgaXtcbiAgICAgICAgQGluY2x1ZGUgY2VudHJlWTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5ncmVlbiB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOGRkZGEwIDAlLCAjM2RkYjhjIDUwJSwgIzhkZGRhMCAxMDAlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzJiNmIzNztcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNSk7IC8vaGVhdmllciBzaGFkb3cgb24gZGFyayBncmVlbiBiZ1xuICAgICAgJjpob3ZlciwgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNmNGUxIDAlLCAjM2RkYjhjIDUwJSwgI2RjZjRlMSAxMDAlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibHVle1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOGRjMGRkIDAlLCMzZGFjZGIgNTAlLCM4ZGMwZGQgMTAwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzEyNjE2NztcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgJjpob3ZlciwgJjphY3RpdmV7XG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZTFmNCAwJSwjNmVhY2ViIDUwJSwjZGNlMWY0IDEwMCUpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlzdHZpZXdzXG4gIFtkYXRhLXJvbGU9XCJsaXN0dmlld1wiXTpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBib3h5O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG5cbiAgICA+bGl7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDhweCAhaW1wb3J0YW50O1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGF7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJjphZnRlcntcbiAgICAgICAgICBjb250ZW50OiAnPic7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmsgbGlzdHNcbiAgOm5vdCgubm9uLXJlc3BvbnNpdmUpOm5vdChbZGF0YS1yb2xlXSk6bm90KFtyb2xlXSkgPiBsaSA+IGE6b25seS1jaGlsZHtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuXG4iLAoJCSIvLyBQdXJlIENTUyByZXNwb25zaXZlIGNvbHVtbnMgbGF5b3V0XG4vLyBObyBKYXZhU2NyaXB0IHJlcXVpcmVkIC0gdXNlcyBDU1MgR3JpZCB3aXRoIG1lZGlhIHF1ZXJpZXNcblxuJGxlZnRDb2xXaWR0aDogNTM2cHg7XG4kcmlnaHRDb2xXaWR0aDogMzc2cHg7XG4kY29sdW1uR2FwOiAxNnB4O1xuJGR1YWxDb2x1bW5CcmVha3BvaW50OiA5NjBweDtcblxuLy8gVGhlICNjb2x1bW5zIGNvbnRhaW5lciB1c2VzIENTUyBHcmlkXG4jY29sdW1ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyAvLyBTaW5nbGUgY29sdW1uIGxheW91dCAoZGVmYXVsdCwgbW9iaWxlLWZpcnN0KVxuXG4gIC8vIEluIHNpbmdsZS1jb2x1bW4gbW9kZSwgYWxsIGJveGVzIGZsb3cgaW50byBhIHNpbmdsZSBjb2x1bW5cbiAgLy8gYW5kIGFyZSBvcmRlcmVkIGJ5IHRoZSBDU1Mgb3JkZXIgcHJvcGVydHkgZGVmaW5lZCBpbiB3YWxrLnNjc3NcbiAgLmxlZnQuY29sLFxuICAucmlnaHQuY29sIHtcbiAgICBkaXNwbGF5OiBjb250ZW50czsgLy8gTWFrZXMgY2hpbGRyZW4gZGlyZWN0IGdyaWQgaXRlbXNcbiAgfVxufVxuXG4vLyBCb3ggc3R5bGluZ1xuLmxlZnQuY29sIHtcbiAgLm5hcnJvdy5ib3gge1xuICAgIG1heC13aWR0aDogJGxlZnRDb2xXaWR0aDtcbiAgfVxufVxuXG4uYm94W2RhdGEtY29sLWR1YWw9XCJyaWdodFwiXSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG59XG5cbi8vIGRlZmF1bHQgc2luZ2xlIGNvbHVtbiBvcmRlcjogYXQgdGhlIGJvdHRvbSAob3ZlcnJpZGRlbiBwZXItYm94IGluIHdhbGsuc2Nzcylcbi5ib3gge1xuICBvcmRlcjogMTAwO1xufVxuXG5bZGF0YS1yb2xlPVwibGlzdHZpZXdcIl0ge1xuICA+IGxpIHtcbiAgICBwYWRkaW5nOiAycHggMDtcbiAgfVxufVxuXG4vLyBTaW5nbGUgY29sdW1uIGxheW91dCBzdHlsZXMgKDwgOTYwcHgpXG5AbWVkaWEgKG1heC13aWR0aDogI3skZHVhbENvbHVtbkJyZWFrcG9pbnQgLSAxcHh9KSB7XG4gICNjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tc3R5bGVzO1xuICB9XG59XG5cbi8vIFRhYmxldDogc2lkZS1ieS1zaWRlIGJveGVzIGluIHNpbmdsZSBjb2x1bW4gbW9kZSBmb3IgcmlnaHQgY29sdW1uIGl0ZW1zXG4vLyBVc2VzIHRhYmxldCBicmVha3BvaW50ICg3NDBweCkgdXAgdG8gZHVhbCBjb2x1bW4gYnJlYWtwb2ludCAoOTYwcHgpXG5AbWVkaWEgKG1pbi13aWR0aDogJG1xLWJyZWFrcG9pbnQtdGFibGV0KSBhbmQgKG1heC13aWR0aDogI3skZHVhbENvbHVtbkJyZWFrcG9pbnQgLSAxcHh9KSB7XG4gICNjb2x1bW5zIHtcbiAgICAvLyBSaWdodCBjb2x1bW4gYm94ZXMgZ2V0IDItdXAgbGF5b3V0IHdpdGhpbiB0aGUgc2luZ2xlIGNvbHVtblxuICAgIC5ib3hbZGF0YS1jb2wtc2luZ2xlPVwicmlnaHRcIl0sXG4gICAgLmJveFtkYXRhLWNvbC1kdWFsPVwicmlnaHRcIl0ge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTJweCk7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMCA0cHggOHB4O1xuXG4gICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRHVhbCBjb2x1bW4gbGF5b3V0IGF0IHdpZGVyIHZpZXdwb3J0c1xuQG1lZGlhIChtaW4td2lkdGg6ICRkdWFsQ29sdW1uQnJlYWtwb2ludCkge1xuICAjY29sdW1ucyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAkbGVmdENvbFdpZHRoICRyaWdodENvbFdpZHRoO1xuICAgIGdhcDogMCAkY29sdW1uR2FwO1xuXG4gICAgLmxlZnQuY29sLFxuICAgIC5yaWdodC5jb2wge1xuICAgICAgZGlzcGxheTogYmxvY2s7IC8vIFJlc3RvcmUgbm9ybWFsIGJsb2NrIGJlaGF2aW9yXG4gICAgfVxuXG4gICAgLmxlZnQuY29sIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxuXG4gICAgLnJpZ2h0LmNvbCB7XG4gICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIFRvcCBzZWN0aW9uIChzaW5nbGUgY29sdW1uKVxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5zZWN0aW9uLnRvcHtcclxuXHJcbiAgLm92ZXJ2aWV3e1xyXG4gICAgQGluY2x1ZGUgbGlnaHRHcmVlbkJveDtcclxuICAgIEBpbmNsdWRlIGJveFNoYWRvdztcclxuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XHJcbiAgICBwYWRkaW5nOiA4cHg7XHJcbiAgICBwe1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAuYXBwcyB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xyXG5cclxuICAgIHB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjaW5zdHJ1Y3Rpb24ge1xyXG4gICAgcGFkZGluZy10b3A6OHB4O1xyXG4gIH1cclxufSIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogR29vZ2xlIG1hcFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4kbWFwV2lkdGg6ICRsZWZ0Q29sV2lkdGggLSA0cHg7XG4kbWFwSGVpZ2h0OiA0ODBweDtcblxuI21hcC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAkbWFwV2lkdGg7XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4jbWFwIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkbWFwV2lkdGg7XG4gIGhlaWdodDogJG1hcEhlaWdodDtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3JkZXI6IDE7XG4gICAgJiwgKntcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmluZm8tY29udGVudHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLmhpZGUtd2Fsay1wb2x5c3tcbiAgICAud2Fsay1wb2x5e1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuI3N0YXRpYy1tYXAge1xuXHR3aWR0aDogMTAwJTtcblx0aW1ne1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiA1MzJweDtcblx0fVxufVxuXG4jZnVsbC1zY3JlZW4tbWFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB6LWluZGV4OiA5MDAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgQGluY2x1ZGUgYm94eTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAmOmFmdGVye1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59IiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIEJyb3dzZSBmb3JtXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbiRsYWJlbFdpZHRoOiA3MnB4O1xyXG4kc2VsZWN0V2lkdGg6IDIwNHB4O1xyXG5cclxuI2Jyb3dzZSB7XHJcbiAgcGFkZGluZzogOHB4IDE2cHg7XHJcblxyXG5cclxuICBmb3JtIHtcclxuICAgIG1hcmdpbjowO1xyXG4gIH1cclxuXHJcbiAgLmZpbHRlcntcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIG1hcmdpbjogMCAwIDE2cHggMDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogMTFwdDtcclxuICAgIHdpZHRoOiAkbGFiZWxXaWR0aDtcclxuICAgIG1hcmdpbi1yaWdodDogOHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XHJcbiAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgdG9wOiAycHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlcyB7XHJcbiAgICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdCB7XHJcbiAgICB3aWR0aDogJHNlbGVjdFdpZHRoO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnN1Ym1pdHtcclxuICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIG1hcmdpbi1sZWZ0OiAyODJweDtcclxuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDI2OHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5cclxubWkuZmlsdGVyIHtcclxuICBwYWRkaW5nLXRvcDogNHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbn0iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFByb21vc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcImxvYWRlclwiO1xuXG4ucHJvbW8tY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbXBvcnQgXCJzbGlja19vdmVycmlkZXNcIjtcblxuICAuc2xpY2stbGlzdHtcbiAgICBtYXJnaW46IDAgLThweDtcbiAgfVxuXG4gIC5zbGljay1zbGlkZXtcbiAgICBtYXJnaW46IDAgOHB4O1xuICB9XG5cbiAgJjpub3QoLmxvYWRlZCksICY6bm90KC5kaXNwbGF5ZWQpe1xuICAgIEBpbmNsdWRlIGxvYWRlcihcbiAgICAgICAgICAgICRzaXplOiA1MHB4LFxuICAgICAgICAgICAgJHRoaWNrbmVzczogNXB4LFxuICAgICAgICAgICAgJGZvcmVncm91bmQ6IGJsYWNrLFxuICAgICAgICAgICAgJGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yNSlcbiAgICApO1xuICB9XG5cbiAgJjpub3QoLmRpc3BsYXllZCl7XG4gICAgLnNsaWNrLWFycm93e1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IHtcbiAgICAjeyZ9Om5vdCgubG9hZGVkKXtcbiAgICAgIC5wcm9tb3tcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9tb3N7XG4gICAgcGFkZGluZzogOHB4IDAgNHB4IDA7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogMzY0cHgpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG4gIC5wcm9tb3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC53cmFwcGVye1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogLTFweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnRpdGxlLCAubWVzc2FnZXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGgyLCBwe1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDFweCBibGFjaztcbiAgICAgIH1cbiAgICB9XG4gICAgLnRpdGxle1xuICAgICAgdG9wOiAwO1xuICAgICAgaDJ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRwdDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lc3NhZ2V7XG4gICAgICBib3R0b206IDA7XG4gICAgICBwe1xuICAgICAgICBwYWRkaW5nOiA0cHggMCA0cHggNHB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLAoJCSIvLyBMb2FkaW5nIGFuaW1hdGlvblxuXG4kbG9hZGVyLWRlZmF1bHQtc2l6ZTogNTBweDtcbiRsb2FkZXItZGVmYXVsdC10aGlja25lc3M6IDVweDtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kOiB3aGl0ZTtcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQtaW52ZXJ0ZWQ6IGJsYWNrO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQtaW52ZXJ0ZWQ6IHJnYmEoMCwwLDAsMC4yNSk7XG5cbkBtaXhpbiBsb2FkZXIoXG4gICRzaXplOiAkbG9hZGVyLWRlZmF1bHQtc2l6ZSxcbiAgJHRoaWNrbmVzczogJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzcyxcbiAgJGZvcmVncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLFxuICAkYmFja2dyb3VuZDogJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmRcbil7XG5cbiAgQGF0LXJvb3R7XG4gICAgYm9keTpub3QoLmZ1bGxzY3JlZW4pICN7Jn0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0oJHNpemUgLyAyICsgJHRoaWNrbmVzcyk7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJHNpemUgLyAyICsgJHRoaWNrbmVzcyk7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNpemU7XG4gICAgYm9yZGVyOiAkdGhpY2tuZXNzIHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIGFuaW1hdGlvbjogbG9hZGluZyAxcyBlYXNlIGluZmluaXRlO1xuICB9XG4gIEBrZXlmcmFtZXMgbG9hZGluZyB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxvYWRlci1pbnZlcnRlZChcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQtaW52ZXJ0ZWQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZFxuKXtcbiAgQGluY2x1ZGUgbG9hZGVyKFxuICAgICRzaXplOiAkc2l6ZSxcbiAgICAkdGhpY2tuZXNzOiAkdGhpY2tuZXNzLFxuICAgICRmb3JlZ3JvdW5kOiAkZm9yZWdyb3VuZCxcbiAgICAkYmFja2dyb3VuZDogJGJhY2tncm91bmRcbiAgKTtcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogU2xpY2sgQ2Fyb3VzZWwgZGVmYXVsdCB0aGVtZSBvdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXG4gICY6YmVmb3Jle1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbn1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiAxNnB4O1xufVxuXG4uc2xpY2stcHJldjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiO1xuICBmb250OiA0MHB4LzEgJ0ZvbnRBd2Vzb21lJztcbiAgcGFkZGluZzogMCAxNnB4IDJweCAxMnB4O1xufVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAxNnB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDVcIjtcbiAgZm9udDogNDBweC8xICdGb250QXdlc29tZSc7XG4gIHBhZGRpbmc6IDAgMTJweCAycHggMTZweDtcbn1cblxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxuLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6ICM3ZTdlN2U7XG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2Vze1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICB9XG59IiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBSZXZpZXdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNyZXZpZXdzIHtcbiAgQGluY2x1ZGUgbGlnaHRHcmVlbkJveDtcbiAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuXG4gIGhlaWdodDogODBweDtcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGhlaWdodDogMTIwcHg7XG5cbiAgfVxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgIGhlaWdodDogMTYwcHg7XG4gIH1cblxuXG4gICNyZXZpZXctbGlzdHtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYXJyb3ctaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIGNlbnRyZVhZO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5zaG93UmV2aWV3IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEFwcCBwcm9tb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4jYXBwe1xuICBAaW5jbHVkZSBib3hHcmFkaWVudERhcmtHcmVlbjtcbiAgQGltcG9ydCBcIi4uL0BpbmNsdWRlL2NvbXBvbmVudC9zbGlkZXNob3dcIjtcbiAgcGFkZGluZzogNHB4IDAgMCAwO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICAuc2xpZGVzaG93e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZWVuO1xuICAgICYubG9hZGluZ3tcbiAgICAgIHBhZGRpbmctdG9wOiAzNy43MiU7IC8vIDM1MC85MjggYXNwZWN0IHJhdGlvXG4gICAgfVxuICB9XG4gIGgye1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgcGFkZGluZzogMCA4cHggOHB4IDhweDtcbiAgfVxufVxuXG4jYXBwLWFke1xuICBAaW5jbHVkZSBib3goJGdyZWVuKTtcbiAgQGltcG9ydCBcIi4uL0BpbmNsdWRlL2FwcF9hZF9mb3JtYXRzXCI7XG4gIHBhZGRpbmc6IDAgNHB4IDhweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICAmOmJlZm9yZXtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbiIsCgkJIi8qXHJcbiAqIFJlc3BvbnNpdmUgc2xpZGVzaG93IHdpZGdldCB1c2luZyBTbGljayBjYXJvdXNlbFxyXG4gKi9cclxuXHJcbkBpbXBvcnQgXCJzbGlja19vdmVycmlkZXNcIjtcclxuQGltcG9ydCBcImxvYWRlclwiO1xyXG5cclxuLnNsaWRlc2hvdyB7XHJcbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gICY6bm90KC5pbml0aWFsaXNlZCl7XHJcbiAgICAuc2xpZGV7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgJjpmaXJzdC1jaGlsZHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmxvYWRpbmd7XHJcbiAgICBAaW5jbHVkZSBsb2FkZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuY2FwdGlvbntcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGlkZXtcclxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCAuY2FwdGlvbntcclxuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWd7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5pbml0aWFsaXNlZDpub3QoLmxvYWRpbmcpe1xyXG4gICAgLndyYXBwZXI6bm90KC5ldmFsdWF0aW5nKXtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2xpZGUge1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcHRpb24ge1xyXG4gICAgICBmb250LWZhbWlseTogXCJDb21pbmcgU29vblwiO1xyXG4gICAgICBjb2xvcjogI2RkZDtcclxuICAgICAgcGFkZGluZzogOHB4IDE2cHg7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBmb250LXNpemU6IDE2cHQ7XHJcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB0O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsCgkJIi5hcHAtZm9ybWF0cyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy9kZXNrdG9wXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIC5hcHAtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvL3RhYmxldFxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgLnRleHQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgIC5pY29ue1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmljb24ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gID4gZGl2LnN0b3JlLWxpbmsge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAuaW5uZXJ7XG4gICAgICBAaW5jbHVkZSBjZW50cmVYO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDk4JTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMnB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gpe1xuICAgICAgICBtYXJnaW46IDhweCAwIDAgMDtcbiAgICAgICAgcGFkZGluZzogOHB4IDAgNHB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDhweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlvc3tcbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbmRyb2lke1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICAgLmljb24gaW1ne1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5uZXIgPiBkaXYge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJi5pY29uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi50ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBhe1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5xcntcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW1ne1xuICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYXBwLWJ1dHRvbntcbiAgICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQsICR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYXtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTJweCAwIDAgMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICJBSUNBOztHQUVHO0FBV0g7O0dBRUc7QUVoQkg7O3lEQUV5RDtBTEl6RCxBQUFBLElBQUksQ0FBQTtFQUNGLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBTUNELEFBQUEsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLElBQUk7RUFDYixxQkFBcUIsRUFBRSxHQUFHO0NBUTNCOztBQVZELEFBTUUsUUFOTSxDQU1OLEtBQUssQUFBQSxJQUFJO0FBTlgsUUFBUSxDQU9OLE1BQU0sQUFBQSxJQUFJLENBQUM7RUFDVCxPQUFPLEVBQUUsUUFBUTtDQUNsQjs7QUFJSCxBQUNFLEtBREcsQUFBQSxJQUFJLENBQ1AsT0FBTyxBQUFBLElBQUksQ0FBQztFQUNWLFNBQVMsRUFyQkUsS0FBSztDQXNCakI7O0FBR0gsQUFBQSxJQUFJLENBQUEsQUFBQSxhQUFDLENBQWMsT0FBTyxBQUFyQixFQUF1QjtFQUMxQixXQUFXLEVBQUUsR0FBRztDQUNqQjs7QUFHRCxBQUFBLElBQUksQ0FBQztFQUNILEtBQUssRUFBRSxHQUFHO0NBQ1g7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 */