/**
 * Usage:
 *
 *   background-color: color(white);
 */
.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.image img {
  max-width: 100%;
  height: auto;
}
.image a {
  display: inline-block;
  max-width: 100%;
}
[data-whatinput=keyboard] .image a:focus, [data-whatintent=keyboard] .image a:focus {
  outline: 2px dotted #000000;
  -webkit-box-shadow: 0 0 0 3px hsl(0, 0%, 90%);
          box-shadow: 0 0 0 3px hsl(0, 0%, 90%);
  border: none;
  margin: 2px;
}
.image .image-caption {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 500;
}
.image.position-center img {
  display: block;
  margin: 0 auto !important;
}
.image.position-center .image-caption {
  text-align: center !important;
}

.image-default-size img {
  max-width: none;
  width: auto !important;
}

.image-full-size img {
  width: 100% !important;
  height: auto !important;
}

.image-left .component-content > div > img {
  float: left;
}

.image-right .component-content > div > img {
  float: right;
}

.c-image--accent,
.c-image--accent-right {
  position: relative;
}
.c-image--accent + .image-caption,
.c-image--accent-right + .image-caption {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 500;
  margin: 8px 0;
}
.c-image--accent::before,
.c-image--accent-right::before {
  content: "";
  background-color: #da251d;
  top: 5%;
  width: 100%;
  height: 85%;
  position: absolute;
  z-index: -1;
}
.c-image--accent img,
.c-image--accent-right img {
  width: 100%;
}

.c-image--accent::before {
  left: -16px;
}

.c-image--accent-right::before {
  right: -16px;
}

.toggle-content > .image .c-image--accent {
  width: calc(100% - (16px + 2px));
  margin-left: 16px;
}
.toggle-content > .image .c-image--accent::before {
  left: -16px;
}
.toggle-content > .image .c-image--accent-right {
  width: calc(100% - (16px + 2px));
  margin-left: 16px;
}
.toggle-content > .image .c-image--accent-right::before {
  right: -16px;
}

.toggle-content img[alt="Accessible,"], .toggle-content img[alt="Star,"] {
  position: relative;
  top: -5px;
}
.toggle-content img[alt="Elevator icon,"], .toggle-content img[alt="Escalator icon,"] {
  position: relative;
  top: -8px;
}

span.access_entrance {
  position: absolute;
  top: -10em;
  left: -999em;
}

span.accessible_entrance {
  content: " ";
  background-image: url(/-/media/project/ttc/devproto/icons/accessible.svg);
  height: 24px;
  width: 24px;
  display: inline-block;
  background-size: 24px 24px;
  background-repeat: no-repeat;
  margin-left: 1px;
}

span.entry_level {
  content: " ";
  background-image: url(/-/media/project/ttc/devproto/icons/b_star.svg);
  height: 24px;
  width: 24px;
  display: inline-block;
  background-size: 24px 24px;
  background-repeat: no-repeat;
  margin-left: 1px;
}

h3.elevators {
  padding: 8px 0 8px 45px;
  background: url(/-/media/project/ttc/devproto/icons/elevator-icon.png) no-repeat 0px 0;
}

h3.escalators {
  padding: 8px 0 8px 45px;
  background: url(/-/media/project/ttc/devproto/icons/escalator-icon.gif) no-repeat 0px 0;
}

@media (min-width: 768px) {
  :not(.toggle-content) > .image .c-image--accent::before {
    left: -32px;
  }
  :not(.toggle-content) > .image .c-image--accent-right::before {
    right: -32px;
  }
}
@media (min-width: 1225px) {
  :not(.toggle-content) > .image .c-image--accent,
  :not(.toggle-content) > .image .c-image--accent-right {
    margin-left: -104px;
    margin-right: -104px;
  }
  :not(.toggle-content) > .image .c-image--accent + .image-caption,
  :not(.toggle-content) > .image .c-image--accent-right + .image-caption {
    left: -104px;
    position: absolute;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fdHlwZS5zY3NzIiwiY29tcG9uZW50LWltYWdlLmNzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnQtaW1hZ2Uuc2NzcyIsImNvbW1vbi11aS90eXBvZ3JhcGh5L19taXhpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9pb3RhY3NzL21vZHVsZXMvaW90YWNzcy10b29scy1jb3JlL3V0aWxpdGllcy9fZXh0cmFjdC10eXBlLXNpemVzLnNjc3MiLCJzdHlsZXMvaW1hZ2UvaW1hZ2UtZGVmYXVsdC1zaXplLnNjc3MiLCJzdHlsZXMvaW1hZ2UvaW1hZ2UtZnVsbC1zaXplLnNjc3MiLCJzdHlsZXMvaW1hZ2UvaW1hZ2UtbGVmdC5zY3NzIiwic3R5bGVzL2ltYWdlL2ltYWdlLXJpZ2h0LnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19zYXNzLW1xLW1vZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0VBQUE7QUNrUUU7RUFDRSxnQkFBQTtBQzVQSjs7QUQyUEU7RUFDRSxnQkFBQTtBQ3hQSjs7QUR1UEU7RUFDRSxnQkFBQTtBQ3BQSjs7QURtUEU7RUFDRSxnQkFBQTtBQ2hQSjs7QUNOQSxnQkFBQTtBQ1ZFO0VBQ0UsZUFBQTtFQUNBLFlBQUE7QUZvQko7QUVsQkU7RUFDRSxxQkFBQTtFQUNBLGVBQUE7QUZvQko7QUVsQk07RUFFRSwyQkFBQTtFQUNBLDZDQUFBO1VBQUEscUNBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtBRm1CUjtBRWZFO0VDaEJBLHdDQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQ0hFLGlCQUFBO0VBQ0EsaUJBQUE7RURrQkUsa0JBQUE7RUFBQSxnQkFBQTtBSHNCTjtBRW5CSTtFQUNFLGNBQUE7RUFDQSx5QkFBQTtBRnFCTjtBRW5CSTtFQUNFLDZCQUFBO0FGcUJOOztBS2xESTtFQUNJLGVBQUE7RUFDQSxzQkFBQTtBTHFEUjs7QU12REk7RUFDSSxzQkFBQTtFQUNBLHVCQUFBO0FOMERSOztBTzdEQTtFQUNJLFdBQUE7QVBnRUo7O0FRakVBO0VBQ0ksWUFBQTtBUm9FSjs7QUU3QkE7O0VBRUUsa0JBQUE7QUZnQ0Y7QUU5QkU7O0VDeENBLHdDQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQ0hFLGlCQUFBO0VBQ0EsaUJBQUE7RURrQkUsa0JBQUE7RUFBQSxnQkFBQTtFRHdCRixhQUFBO0FGdUNKO0FFcENFOztFQUNFLFdBQUE7RUFDQSx5QkFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBRnVDSjtBRXBDRTs7RUFDRSxXQUFBO0FGdUNKOztBRWxDRTtFQUNFLFdBQUE7QUZxQ0o7O0FFaENFO0VBQ0UsWUFBQTtBRm1DSjs7QUU5QkU7RUFDRSxnQ0FBQTtFQUNBLGlCQUFBO0FGaUNKO0FFaENJO0VBQ0UsV0FBQTtBRmtDTjtBRTlCRTtFQUNFLGdDQUFBO0VBQ0EsaUJBQUE7QUZnQ0o7QUUvQkk7RUFDRSxZQUFBO0FGaUNOOztBRTNCRTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtBRjhCSjtBRTNCRTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtBRjZCSjs7QUV6QkE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FGNEJGOztBRXpCQTtFQUNFLFlBQUE7RUFDQSx5RUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSwwQkFBQTtFQUNBLDRCQUFBO0VBQ0EsZ0JBQUE7QUY0QkY7O0FFekJBO0VBQ0UsWUFBQTtFQUNBLHFFQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLDBCQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtBRjRCRjs7QUV6QkE7RUFDRSx1QkFBQTtFQUNBLHNGQUFBO0FGNEJGOztBRXpCQTtFQUNFLHVCQUFBO0VBQ0EsdUZBQUE7QUY0QkY7O0FTMERRO0VQaEZGO0lBQ0UsV0FBQTtFRjBCTjtFRXRCSTtJQUNFLFlBQUE7RUZ3Qk47QUFDRjtBU2lEUTtFUGxFSjs7SUFFRSxtQkFBQTtJQUNBLG9CQUFBO0VGb0JKO0VFbkJJOztJQUNFLFlBQUE7SUFDQSxrQkFBQTtFRnNCTjtBQUNGIiwiZmlsZSI6ImNvbXBvbmVudC1pbWFnZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xyXG4gKi9cclxuJGNvbG9yczogKCkgIWRlZmF1bHQ7XHJcbiRmdW5jdGlvbmFsLWNvbG9yczogKCkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yKSB7XHJcbiAgQGlmIG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKTtcclxuICB9IEBlbHNlIGlmIG1hcC1nZXQoJGZ1bmN0aW9uYWwtY29sb3JzLCAkY29sb3IpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkZnVuY3Rpb25hbC1jb2xvcnMsICRjb2xvcik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAvKiBTdHlsZWZtdCBjaGFuZ2VzIHRoZSBxdW90ZXMgZXZlcnkgdGltZSwgc28gdHVybmluZyBvZmYgdGhlIGVycm9yIGhlcmUgKi9cclxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHJpbmctcXVvdGVzICovXHJcbiAgICBAZXJyb3IgXCJDb2xvciBcXFwiI3skY29sb3J9XFxcImNvdWxkIG5vdCBiZSBmb3VuZFwiO1xyXG4gIH1cclxufVxyXG4iLCIkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5nczogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG5cclxuJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzOiAoXHJcbiAgLy8gdGhpbjogMTAwLFxyXG4gIGxpZ2h0OiAzMDAsXHJcbiAgcmVndWxhcjogNDAwLFxyXG4gIG1lZGl1bTogNTAwLFxyXG4gIGJvbGQ6IDcwMCxcclxuICAvLyBibGFjazogOTAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1kZWZhdWx0OiAoXHJcbiAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQsXHJcbiAgZm9udC1zdHlsZTogbm9ybWFsLFxyXG4gIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICBtYXJnaW46IDAsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuJHVpLXR5cG9ncmFwaHktc3R5bGVzOiAoXHJcbiAgLy9ob21lcGFnZSBoZWFkZXJcclxuICBkNi1saC1sZzogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMzJweCksIDQwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNjFweCksIDc2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMzJweCksIDQwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNTBweCksIDU2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjlweCksIDM2cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNDFweCksIDQ0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNS1saWdodDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjlweCksIDM2cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNDFweCksIDQ0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cyxsaWdodCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjZweCksIDMycHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMzRweCksIDQwcHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMzogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjNweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjhweCksIDM2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjFweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjRweCksIDMwcHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI0cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBoMnN6OiAoXHJcbiAgICBzaXplczogMi45cmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGgzc3o6IChcclxuICAgIHNpemVzOiAyLjJyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcblxyXG4gIGg0c3o6IChcclxuICAgIHNpemVzOiAxLjdyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgaDVzejogKFxyXG4gICAgc2l6ZXM6IDIuNHJlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBsZWFkOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyMnB4KSwgMzJweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyNHB4KSwgMzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYyxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQtc21hbGw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICksXHJcbiAgZC14c21hbGw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAxNnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgYm9keTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbGlnaHQpLFxyXG4gICksXHJcbiAgYm9keTI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBsaW5rOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGRhdGU6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgaGVhZGVyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNnB4KSwgMjBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgc3ViaGVhZGVyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgc2l0ZS1zZWFyY2g6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICAgc206IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgaW5wdXQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgYnJlYWRjcnVtYjogKFxyXG4gICAgc2l6ZXM6ICAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgZmVhdHVyZWQ6IChcclxuICAgIHNpemVzOiAgKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICksXHJcbiAgY29weXJpZ2h0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxM3B4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGNhcHRpb246IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgKSxcclxuICBmb3JtLWxhYmVsOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgZm9ybS1oZWxwZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgcGRmOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBtYXAtcmVzdWx0czogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbGlnaHQpLFxyXG4gICksXHJcbiAgYmV0YS1ub3RpY2U6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzaXRlLXdpZGUtYWxlcnQ6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG5AZWFjaCAkbmFtZSwgJHN0eWxlIGluICR1aS10eXBvZ3JhcGh5LXN0eWxlcyB7XHJcbiAgJHVpLXR5cG9ncmFwaHktc3R5bGVzOiBtYXAtbWVyZ2UoJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAoXHJcbiAgICAjeyRuYW1lfTogbWFwLW1lcmdlKCR1aS10eXBvZ3JhcGh5LWRlZmF1bHQsICRzdHlsZSlcclxuICApKTtcclxufVxyXG5cclxuQGVhY2ggJG5hbWUsICRzdHlsZSBpbiAkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gIC51LXR5cGUtLSN7JG5hbWV9IHtcclxuICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbiAqL1xuLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4uaW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1hZ2UgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuW2RhdGEtd2hhdGlucHV0PWtleWJvYXJkXSAuaW1hZ2UgYTpmb2N1cywgW2RhdGEtd2hhdGludGVudD1rZXlib2FyZF0gLmltYWdlIGE6Zm9jdXMge1xuICBvdXRsaW5lOiAycHggZG90dGVkICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCBoc2woMCwgMCUsIDkwJSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAycHg7XG59XG4uaW1hZ2UgLmltYWdlLWNhcHRpb24ge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uaW1hZ2UucG9zaXRpb24tY2VudGVyIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xufVxuLmltYWdlLnBvc2l0aW9uLWNlbnRlciAuaW1hZ2UtY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uaW1hZ2UtZGVmYXVsdC1zaXplIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmltYWdlLWZ1bGwtc2l6ZSBpbWcge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmltYWdlLWxlZnQgLmNvbXBvbmVudC1jb250ZW50ID4gZGl2ID4gaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5pbWFnZS1yaWdodCAuY29tcG9uZW50LWNvbnRlbnQgPiBkaXYgPiBpbWcge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jLWltYWdlLS1hY2NlbnQsXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtaW1hZ2UtLWFjY2VudCArIC5pbWFnZS1jYXB0aW9uLFxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodCArIC5pbWFnZS1jYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW46IDhweCAwO1xufVxuLmMtaW1hZ2UtLWFjY2VudDo6YmVmb3JlLFxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhMjUxZDtcbiAgdG9wOiA1JTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODUlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xufVxuLmMtaW1hZ2UtLWFjY2VudCBpbWcsXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYy1pbWFnZS0tYWNjZW50OjpiZWZvcmUge1xuICBsZWZ0OiAtMTZweDtcbn1cblxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodDo6YmVmb3JlIHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuXG4udG9nZ2xlLWNvbnRlbnQgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTZweCArIDJweCkpO1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbi50b2dnbGUtY29udGVudCA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50OjpiZWZvcmUge1xuICBsZWZ0OiAtMTZweDtcbn1cbi50b2dnbGUtY29udGVudCA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICgxNnB4ICsgMnB4KSk7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuLnRvZ2dsZS1jb250ZW50ID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQ6OmJlZm9yZSB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cblxuLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJBY2Nlc3NpYmxlLFwiXSwgLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJTdGFyLFwiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtNXB4O1xufVxuLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJFbGV2YXRvciBpY29uLFwiXSwgLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJFc2NhbGF0b3IgaWNvbixcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLThweDtcbn1cblxuc3Bhbi5hY2Nlc3NfZW50cmFuY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEwZW07XG4gIGxlZnQ6IC05OTllbTtcbn1cblxuc3Bhbi5hY2Nlc3NpYmxlX2VudHJhbmNlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvLS9tZWRpYS9wcm9qZWN0L3R0Yy9kZXZwcm90by9pY29ucy9hY2Nlc3NpYmxlLnN2Zyk7XG4gIGhlaWdodDogMjRweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4IDI0cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG59XG5cbnNwYW4uZW50cnlfbGV2ZWwge1xuICBjb250ZW50OiBcIiBcIjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2Jfc3Rhci5zdmcpO1xuICBoZWlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW4tbGVmdDogMXB4O1xufVxuXG5oMy5lbGV2YXRvcnMge1xuICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcbiAgYmFja2dyb3VuZDogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2VsZXZhdG9yLWljb24ucG5nKSBuby1yZXBlYXQgMHB4IDA7XG59XG5cbmgzLmVzY2FsYXRvcnMge1xuICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcbiAgYmFja2dyb3VuZDogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2VzY2FsYXRvci1pY29uLmdpZikgbm8tcmVwZWF0IDBweCAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogLTMycHg7XG4gIH1cbiAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQ6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IC0zMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIyNXB4KSB7XG4gIDpub3QoLnRvZ2dsZS1jb250ZW50KSA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50LFxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudC1yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMDRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMDRweDtcbiAgfVxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudCArIC5pbWFnZS1jYXB0aW9uLFxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudC1yaWdodCArIC5pbWFnZS1jYXB0aW9uIHtcbiAgICBsZWZ0OiAtMTA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59IiwiLy8gQGltcG9ydCAnfnNhc3MtbXEvbXEnO1xyXG5AaW1wb3J0ICdtaXhpbnMvc2Fzcy1tcS1tb2Quc2Nzcyc7XHJcbkBpbXBvcnQgJy4uL2NvbW1vbi11aS90eXBvZ3JhcGh5L21peGlucyc7XHJcbkBpbXBvcnQgJ21peGlucy9hY2Nlc3NpYmlsaXR5JztcclxuQGltcG9ydCAnbWl4aW5zL2J1dHRvbic7XHJcbkBpbXBvcnQgJ21peGlucy9saW5rJztcclxuQGltcG9ydCAnbWl4aW5zL292ZXJsYXknO1xyXG5AaW1wb3J0ICdtaXhpbnMvdHJhbnNpdGlvbnMnO1xyXG5AaW1wb3J0ICdtaXhpbnMvc2hhZG93cyc7XHJcbkBpbXBvcnQgJ21peGlucy90YWcnO1xyXG5AaW1wb3J0ICcuLi9hYnN0cmFjdHMvdmFycy9jb2xvcnMnO1xyXG5cclxuLy8gQmVsb3cgYXJlIG1peGluJ3MgZnJvbSBGWEFcclxuLyogYnJlYWtwb2ludHMgKi9cclxuXHJcbiRicmVhay1kZXNrdG9wOiA5NjBweDtcclxuJGJyZWFrLW1vYmlsZTogMzgwcHg7XHJcbiRicmVhay1tb2JpbGUtaG9yaXpvbnRhbDogNjQwcHg7XHJcbiRicmVhay1tb2JpbGUtbGFyZ2U6IDc4NnB4O1xyXG5AbWl4aW4gd3JhcHBlcigpIHtcclxuICAgIG1heC13aWR0aDogOTYwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xyXG59XHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59XHJcbkBtaXhpbiBmb250LXNpemUoJHNpemVWYWx1ZTogMS42KSB7XHJcbiAgICBmb250LXNpemU6ICgkc2l6ZVZhbHVlICogMTApICsgcHg7XHJcbiAgICBmb250LXNpemU6ICRzaXplVmFsdWUgKyByZW07XHJcbn1cclxuQG1peGluIG9wZW5zYW5zLWZvbnQtc3RhY2soKSB7XHJcbiAgICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XHJcbn1cclxuQG1peGluIGxvYWRpbmctZ2lmKCkge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXpNaUF6TWlJZ2QybGtkR2c5SWpNeUlpQm9aV2xuYUhROUlqTXlJaUJtYVd4c1BTSmliR0ZqYXlJK0RRb2dJRHh3WVhSb0lDQnZjR0ZqYVhSNVBTSXVNalVpSUdROUlrMHhOaUF3SUVFeE5pQXhOaUF3SURBZ01DQXhOaUF6TWlCQk1UWWdNVFlnTUNBd0lEQWdNVFlnTUNCTk1UWWdOQ0JCTVRJZ01USWdNQ0F3SURFZ01UWWdNamdnUVRFeUlERXlJREFnTUNBeElERTJJRFFpTHo0TkNpQWdQSEJoZEdnZ1ptbHNiRDBuSXpGaE9EQmlOaWNnWkQwaVRURTJJREFnUVRFMklERTJJREFnTUNBeElETXlJREUySUV3eU9DQXhOaUJCTVRJZ01USWdNQ0F3SURBZ01UWWdOSG9pUGcwS0lDQWdJRHhoYm1sdFlYUmxWSEpoYm5ObWIzSnRJR0YwZEhKcFluVjBaVTVoYldVOUluUnlZVzV6Wm05eWJTSWdkSGx3WlQwaWNtOTBZWFJsSWlCbWNtOXRQU0l3SURFMklERTJJaUIwYnowaU16WXdJREUySURFMklpQmtkWEk5SWpBdU9ITWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZzBLSUNBOEwzQmhkR2crRFFvOEwzTjJaejROQ2c9PSk7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gcmVzcG9uZC10bygkbWVkaWEpIHtcclxuICAgIEBpZiAkbWVkaWE9PW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWhvcml6b250YWwge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1sYXJnZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWxhcmdlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09dGFibGV0IHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1tb2JpbGUgKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09YWxsLW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1kZXNrdG9wIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5AbWl4aW4gYm9yZGVyLWJhc2ljKCRwb3NpdGlvbjphbGwsICRib3JkZXItY29sb3I6JGJvcmRlci1ncmF5LCAkYm9yZGVyLXdpZHRoOjFweCkge1xyXG4gICAgQGlmKCRwb3NpdGlvbj09dG9wKSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1ib3R0b20pIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PWxlZnQpIHtcclxuICAgICAgICBib3JkZXItbGVmdDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1yaWdodCkge1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG59XHJcbkBtaXhpbiBmaXhlZC1iZygkcG9zLCAkbWluLWhlaWdodDoyNDBweCkge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvcztcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcclxufVxyXG5AbWl4aW4gbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcy4uLikge1xyXG4gICAgLy8gRGlyZWN0aW9uIGhhcyBiZWVuIG9taXR0ZWQgYW5kIGhhcHBlbnMgdG8gYmUgYSBjb2xvci1zdG9wXHJcbiAgICBAaWYgaXMtZGlyZWN0aW9uKCRkaXJlY3Rpb24pPT1mYWxzZSB7XHJcbiAgICAgICAgJGNvbG9yLXN0b3BzOiAkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHM7XHJcbiAgICAgICAgJGRpcmVjdGlvbjogMTgwZGVnO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogbnRoKG50aCgkY29sb3Itc3RvcHMsIDEpLCAxKTtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzKTtcclxufVxyXG4iLCJAaW1wb3J0IFwiYWJzdHJhY3RzXCI7XHJcblxyXG4uaW1hZ2Uge1xyXG4gIGltZyB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIFtkYXRhLXdoYXRpbnB1dD1rZXlib2FyZF0gJiwgXHJcbiAgICAgIFtkYXRhLXdoYXRpbnRlbnQ9a2V5Ym9hcmRdICYge1xyXG4gICAgICAgIG91dGxpbmU6IDJweCBkb3R0ZWQgY29sb3IoYmxhY2spO1xyXG4gICAgICAgIGJveC1zaGFkb3c6MCAwIDAgM3B4IGhzbCgwLCAwJSwgOTAlKTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAycHg7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgfVxyXG4gIC5pbWFnZS1jYXB0aW9uIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoY2FwdGlvbik7XHJcbiAgfVxyXG5cclxuICAmLnBvc2l0aW9uLWNlbnRlciB7XHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5pbWFnZS1jYXB0aW9uIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbkBpbXBvcnQgXCJFOi9HaXRMYWItUnVubmVyL2J1aWxkcy9YZENxNE16ZS8wL3dlYnNpdGUvdHRjLmNhL3NyYy9VSS9zYXNzL3N0eWxlcy9pbWFnZS9pbWFnZS1kZWZhdWx0LXNpemUuc2Nzc1wiO1xuQGltcG9ydCBcIkU6L0dpdExhYi1SdW5uZXIvYnVpbGRzL1hkQ3E0TXplLzAvd2Vic2l0ZS90dGMuY2Evc3JjL1VJL3Nhc3Mvc3R5bGVzL2ltYWdlL2ltYWdlLWZ1bGwtc2l6ZS5zY3NzXCI7XG5AaW1wb3J0IFwiRTovR2l0TGFiLVJ1bm5lci9idWlsZHMvWGRDcTRNemUvMC93ZWJzaXRlL3R0Yy5jYS9zcmMvVUkvc2Fzcy9zdHlsZXMvaW1hZ2UvaW1hZ2UtbGVmdC5zY3NzXCI7XG5AaW1wb3J0IFwiRTovR2l0TGFiLVJ1bm5lci9idWlsZHMvWGRDcTRNemUvMC93ZWJzaXRlL3R0Yy5jYS9zcmMvVUkvc2Fzcy9zdHlsZXMvaW1hZ2UvaW1hZ2UtcmlnaHQuc2Nzc1wiO1xuXHJcblxyXG4uYy1pbWFnZS0tYWNjZW50LFxyXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICsgLmltYWdlLWNhcHRpb24ge1xyXG4gICAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICAgIG1hcmdpbjogc3BhY2UoKSAwO1xyXG4gIH1cclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwcmltYXJ5KTtcclxuICAgIHRvcDogNSU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogODUlOyBcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLmMtaW1hZ2UtLWFjY2VudCB7XHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGxlZnQ6IC0gc3BhY2UoMik7XHJcbiAgfVxyXG59XHJcblxyXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgcmlnaHQ6IC0gc3BhY2UoMik7XHJcbiAgfVxyXG59XHJcblxyXG4udG9nZ2xlLWNvbnRlbnQgPiAuaW1hZ2UgeyBcclxuICAuYy1pbWFnZS0tYWNjZW50IHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoI3tzcGFjZSgyKX0gKyAycHgpKTsgXHJcbiAgICBtYXJnaW4tbGVmdDogc3BhY2UoMik7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBsZWZ0OiAtIHNwYWNlKDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoI3tzcGFjZSgyKX0gKyAycHgpKTsgXHJcbiAgICBtYXJnaW4tbGVmdDogc3BhY2UoMik7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICByaWdodDogLSBzcGFjZSgyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi50b2dnbGUtY29udGVudCB7XHJcbiAgaW1nW2FsdD1cIkFjY2Vzc2libGUsXCJdLCBpbWdbYWx0PVwiU3RhcixcIl0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAtNXB4O1xyXG4gIH1cclxuXHJcbiAgaW1nW2FsdD1cIkVsZXZhdG9yIGljb24sXCJdLCBpbWdbYWx0PVwiRXNjYWxhdG9yIGljb24sXCJdIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogLThweDtcclxuICB9XHJcbn1cclxuXHJcbnNwYW4uYWNjZXNzX2VudHJhbmNlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtMTBlbTtcclxuICBsZWZ0OiAtOTk5ZW07XHJcbn1cclxuXHJcbnNwYW4uYWNjZXNzaWJsZV9lbnRyYW5jZSB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2FjY2Vzc2libGUuc3ZnKTtcclxuICBoZWlnaHQ6IDI0cHg7XHJcbiAgd2lkdGg6IDI0cHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgbWFyZ2luLWxlZnQ6IDFweDtcclxufVxyXG5cclxuc3Bhbi5lbnRyeV9sZXZlbCB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2Jfc3Rhci5zdmcpO1xyXG4gIGhlaWdodDogMjRweDtcclxuICB3aWR0aDogMjRweDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4IDI0cHg7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBtYXJnaW4tbGVmdDogMXB4O1xyXG59XHJcblxyXG5oMy5lbGV2YXRvcnMge1xyXG4gIHBhZGRpbmc6IDhweCAwIDhweCA0NXB4O1xyXG4gIGJhY2tncm91bmQ6IHVybCgvLS9tZWRpYS9wcm9qZWN0L3R0Yy9kZXZwcm90by9pY29ucy9lbGV2YXRvci1pY29uLnBuZykgbm8tcmVwZWF0IDBweCAwO1xyXG59XHJcblxyXG5oMy5lc2NhbGF0b3JzIHtcclxuICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLy0vbWVkaWEvcHJvamVjdC90dGMvZGV2cHJvdG8vaWNvbnMvZXNjYWxhdG9yLWljb24uZ2lmKSBuby1yZXBlYXQgMHB4IDA7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKG1kKSB7XHJcbiAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIHtcclxuICAgIC5jLWltYWdlLS1hY2NlbnQge1xyXG4gICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGxlZnQ6IC0gc3BhY2UoNCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQge1xyXG4gICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIHJpZ2h0OiAtIHNwYWNlKDQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBtcShsZykge1xyXG4gIDpub3QoLnRvZ2dsZS1jb250ZW50KSA+IC5pbWFnZSB7XHJcbiAgICAuYy1pbWFnZS0tYWNjZW50LFxyXG4gICAgLmMtaW1hZ2UtLWFjY2VudC1yaWdodCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtIHNwYWNlKDEzKTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtIHNwYWNlKDEzKTtcclxuICAgICAgKyAuaW1hZ2UtY2FwdGlvbiB7XHJcbiAgICAgICAgbGVmdDogLSBzcGFjZSgxMyk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcclxuQGltcG9ydCAnfmlvdGFjc3MtdG9vbHMtdHlwZS90b29scy50eXBlJztcclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0KSB7XHJcbiAgZm9udC1mYW1pbHk6IGlmKCRmb250LWZhbWlseSAhPSBudWxsLCAkZm9udC1mYW1pbHksICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbn1cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5KCRzdHlsZSkge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgJHN0eWxlOiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICRmb250LWZhbWlseTogbWFwLWdldCgkc3R5bGUsIGZvbnQtZmFtaWx5KTtcclxuXHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5KTtcclxuICAgIEBpbmNsdWRlIGlvdGEtdHlwZShtYXAtZ2V0KCRzdHlsZSwgc2l6ZXMpKTtcclxuXHJcbiAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGdlbmVyYXRlZCBiZWxvd1xyXG4gICAgJHByb3BzOiBtYXAtcmVtb3ZlKCRzdHlsZSwgZm9udC1mYW1pbHksIG1hcmdpbiwgc2l6ZXMpO1xyXG4gICAgJGtleXM6IG1hcC1rZXlzKCRwcm9wcyk7XHJcblxyXG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAgICN7JGtleX06IG1hcC1nZXQoJHByb3BzLCAka2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCcpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSkge1xyXG4gIG1hcmdpbjogbWFwLWdldChtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSwgbWFyZ2luKTtcclxufVxyXG4iLCJAbWl4aW4gX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcykge1xuXG4gIEBpZiAoIGxlbmd0aCgkc2l6ZXMpID09IDIgKSB7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAkc2l6ZXM7ICBcbiAgfVxuICBcbn1cbiIsIi5pbWFnZS1kZWZhdWx0LXNpemUge1xyXG4gICAgaW1nIHtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG4iLCIuaW1hZ2UtZnVsbC1zaXplIHtcclxuICAgIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG4iLCIuaW1hZ2UtbGVmdCAuY29tcG9uZW50LWNvbnRlbnQ+ZGl2PmltZyB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG4iLCIuaW1hZ2UtcmlnaHQgLmNvbXBvbmVudC1jb250ZW50PmRpdj5pbWcge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcbiIsIi8vbW9kZGVkIHRvIHVzZSBweFxyXG5cclxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XHJcbiAgICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcclxuXHJcbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxyXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxyXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXHJcbi8vL1xyXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXHJcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxyXG4vLy9cclxuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2VycyxcclxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIG9sZC1pZS5zY3NzXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxyXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCcmVha3BvaW50IGxpc3RcclxuLy8vXHJcbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxyXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxyXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxyXG4vLy9cclxuLy8vIEB0eXBlIE1hcFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1icmVha3BvaW50czogKFxyXG4gICAgbW9iaWxlOiAgMzIwcHgsXHJcbiAgICB0YWJsZXQ6ICA3NDBweCxcclxuICAgIGRlc2t0b3A6IDk4MHB4LFxyXG4gICAgd2lkZTogICAgMTMwMHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxyXG4vLy9cclxuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxyXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XHJcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3NcclxuLy8vICAvL1xyXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxyXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxyXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcclxuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcclxuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcclxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcclxuLy8vXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vL1xyXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3BcclxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXHJcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cclxuLy8vXHJcbi8vLyBAdHlwZSBtYXBcclxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXHJcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XHJcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxyXG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xyXG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xyXG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xyXG4gICAgfSBAZWxzZSBpZiB1bml0KCRweCkgPT0gZW0ge1xyXG4gICAgICAgIEByZXR1cm4gJHB4O1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxufVxyXG5cclxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXHJcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XHJcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XHJcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxyXG4vLy9cclxuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXHJcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAuZWxlbWVudCB7XHJcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xyXG4vLy8gICAgICBjb2xvcjogYmx1ZTtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XHJcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XHJcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XHJcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuQG1peGluIG1xKFxyXG4gICAgJGZyb206IGZhbHNlLFxyXG4gICAgJHVudGlsOiBmYWxzZSxcclxuICAgICRhbmQ6IGZhbHNlLFxyXG4gICAgJGVtcy1vbjogZmFsc2UsXHJcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXHJcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcclxuICAgICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSxcclxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbikge1xyXG4gICAgJG1pbi13aWR0aDogMDtcclxuICAgICRtYXgtd2lkdGg6IDA7XHJcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xyXG5cclxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxyXG4gICAgQGlmICRmcm9tIHtcclxuICAgICAgICBAaWYgdHlwZS1vZigkZnJvbSkgPT0gbnVtYmVyIHtcclxuICAgICAgICAgICAgJG1pbi13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0oJGZyb20pLCAoJGZyb20pKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgJG1pbi13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpLCBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcclxuICAgIEBpZiAkdW50aWwge1xyXG4gICAgICAgIEBpZiB0eXBlLW9mKCR1bnRpbCkgPT0gbnVtYmVyIHtcclxuICAgICAgICAgICAgJG1heC13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0oJHVudGlsKSwoJHVudGlsKSk7XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IGlmKCRlbXMtb24sIG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbSwgbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpIC0gMXB4KTsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXHJcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxyXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcclxuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpLCAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xyXG5cclxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxyXG4gICAgICAgIEBpZiAoXHJcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcclxuICAgICAgICAgICAgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aFxyXG4gICAgICAgICAgICBhbmQgKFxyXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxyXG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxyXG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xyXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xyXG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBRdWljayBzb3J0XHJcbi8vL1xyXG4vLy8gQGF1dGhvciBTYW0gUmljaGFyZHNcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxyXG4vLy8gQHJldHVybnMge0xpc3R9IFNvcnRlZCBMaXN0XHJcbkBmdW5jdGlvbiBfbXEtcXVpY2stc29ydCgkbGlzdCkge1xyXG4gICAgJGxlc3M6ICAoKTtcclxuICAgICRlcXVhbDogKCk7XHJcbiAgICAkbGFyZ2U6ICgpO1xyXG5cclxuICAgIEBpZiBsZW5ndGgoJGxpc3QpID4gMSB7XHJcbiAgICAgICAgJHNlZWQ6IG50aCgkbGlzdCwgY2VpbChsZW5ndGgoJGxpc3QpIC8gMikpO1xyXG5cclxuICAgICAgICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICAgICAgICAgIEBpZiAoJGl0ZW0gPT0gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkaXRlbSA8ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkbGVzczogYXBwZW5kKCRsZXNzLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsYXJnZTogYXBwZW5kKCRsYXJnZSwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAcmV0dXJuIGpvaW4oam9pbihfbXEtcXVpY2stc29ydCgkbGVzcyksICRlcXVhbCksIF9tcS1xdWljay1zb3J0KCRsYXJnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuXHJcbi8vLyBTb3J0IGEgbWFwIGJ5IHZhbHVlcyAod29ya3Mgd2l0aCBudW1iZXJzIG9ubHkpXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXHJcbkBmdW5jdGlvbiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1hcCkge1xyXG4gICAgJG1hcC1zb3J0ZWQ6ICgpO1xyXG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcclxuICAgICRtYXAtdmFsdWVzOiBtYXAtdmFsdWVzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXMtc29ydGVkOiBfbXEtcXVpY2stc29ydCgkbWFwLXZhbHVlcyk7XHJcblxyXG4gICAgLy8gUmVvcmRlciBrZXkvdmFsdWUgcGFpcnMgYmFzZWQgb24ga2V5IHZhbHVlc1xyXG4gICAgQGVhY2ggJHZhbHVlIGluICRtYXAtdmFsdWVzLXNvcnRlZCB7XHJcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcclxuICAgICAgICAka2V5OiBudGgoJG1hcC1rZXlzLCAkaW5kZXgpO1xyXG4gICAgICAgICRtYXAtc29ydGVkOiBtYXAtbWVyZ2UoJG1hcC1zb3J0ZWQsICgka2V5OiAkdmFsdWUpKTtcclxuXHJcbiAgICAgICAgLy8gVW5zZXQgdGhlIHZhbHVlIGluICRtYXAtdmFsdWVzIHRvIHByZXZlbnQgdGhlIGxvb3BcclxuICAgICAgICAvLyBmcm9tIGZpbmRpbmcgdGhlIHNhbWUgaW5kZXggdHdpY2VcclxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xyXG59XHJcblxyXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcclxuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cclxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcclxuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbXEtYnJlYWtwb2ludHMpICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG4vLy9cclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xyXG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBib2R5OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XHJcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcclxuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwO1xyXG5cclxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXHJcbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XHJcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xyXG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxufVxyXG4iXX0= */
