/**
 * 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 */
.link-list h1, .link-list h2, .link-list h3, .link-list h4, .link-list h5, .link-list h6 {
  border-bottom: 1px solid #767676;
}

.link-list h1:empty, .link-list h2:empty, .link-list h3:empty, .link-list h4:empty, .link-list h5:empty, .link-list h6:empty {
  border-bottom: none;
}

.link-list ul {
  list-style: none;
}

.link-list li {
  display: block;
  /*a[title]:focus:after {
      content: attr(title);
      background-color: white;
      color: black;
      padding: 3px;
      margin-top: 0.2em;
      margin-left: 0.1em;
      margin-right: 0.1em;
      position: absolute;
      font-family: Segoe UI !important;
      font-size: 12px !important;
      border: 1px solid black;
      white-space: pre !important;
      white-space: nowrap !important;
      z-index: 1;
    }*/
  /*a:not(.c-footer__links):visited: {
	      color : color(mauve-taupe);
	  }*/
}

.link-list li a {
  display: inline-block;
  position: relative;
  padding-left: 10px;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 400;
  color: #0070cd;
  text-decoration: none;
}

@media (min-width: 768px) {
  .link-list li a {
    font-size: 2rem;
    line-height: 32px;
  }
}

.link-list li a:hover, .link-list li a:focus {
  text-decoration: underline;
}

.link-list.c-related-links, .link-list.c-related-links--2col {
  margin: 16px 0;
}

.link-list.c-related-links h3, .link-list.c-related-links--2col h3 {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.3rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 700;
}

@media (min-width: 768px) {
  .link-list.c-related-links h3, .link-list.c-related-links--2col h3 {
    font-size: 2.8rem;
    line-height: 36px;
  }
}

.link-list.c-related-links h1, .link-list.c-related-links--2col h1, .link-list.c-related-links h2, .link-list.c-related-links--2col h2, .link-list.c-related-links h3, .link-list.c-related-links--2col h3, .link-list.c-related-links h4, .link-list.c-related-links--2col h4, .link-list.c-related-links h5, .link-list.c-related-links--2col h5, .link-list.c-related-links h6, .link-list.c-related-links--2col h6 {
  padding-bottom: 16px;
  border-bottom: 1px solid #767676;
}

.link-list.c-related-links h1:empty, .link-list.c-related-links--2col h1:empty, .link-list.c-related-links h2:empty, .link-list.c-related-links--2col h2:empty, .link-list.c-related-links h3:empty, .link-list.c-related-links--2col h3:empty, .link-list.c-related-links h4:empty, .link-list.c-related-links--2col h4:empty, .link-list.c-related-links h5:empty, .link-list.c-related-links--2col h5:empty, .link-list.c-related-links h6:empty, .link-list.c-related-links--2col h6:empty {
  border-bottom: none;
}

.link-list.c-related-links a, .link-list.c-related-links--2col a {
  display: block;
  padding: 16px 0;
  width: 100%;
  border-bottom: 1px solid #767676;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 400;
  color: #0070cd;
  text-decoration: none;
}

@media (min-width: 768px) {
  .link-list.c-related-links a, .link-list.c-related-links--2col a {
    font-size: 2rem;
    line-height: 32px;
  }
}

.link-list.c-related-links a:hover, .link-list.c-related-links--2col a:hover, .link-list.c-related-links a:focus, .link-list.c-related-links--2col a:focus {
  text-decoration: underline;
}

@media (min-width: 640px) {
  .link-list.c-related-links--2col ul {
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
            justify-content: space-between;
    flex-wrap: wrap;
  }
  .link-list.c-related-links--2col li {
    width: calc(50% - 16px);
  }
  .link-list.c-related-links--2col li a:visited {
    color: #7e3d50;
  }
}

.link-list.c-related-links--multi .current-page a {
  pointer-events: none;
  color: #4a4a4a;
}

.link-list.c-related-links--multi .heading-title p {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.1rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 700;
  padding: 16px 0;
}

@media (min-width: 768px) {
  .link-list.c-related-links--multi .heading-title p {
    font-size: 2.4rem;
    line-height: 30px;
  }
}

.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 */
.link-list.list-vertical h3 {
  background: #FFFFFF;
  width: 100%;
  display: inline-block;
  padding: 3px 5px;
  border: 1px solid #d2d2d2;
}

.link-list.list-vertical a {
  border: none;
}

.link-list.list-vertical li {
  display: block;
  margin-left: 20px;
}

@media (max-width: 639px) {
  .c-promo__links {
    background-color: #da251d;
  }
  .c-promo__links a {
    color: #ffffff !important;
    text-decoration: underline !important;
  }
  .c-promo__links li {
    margin-top: 16px;
  }
  .c-promo__links li a:visited {
    color: #7e3047;
  }
  .c-related-links--2col li:first-child a {
    border-top: 1px solid #767676;
  }
}

@media (min-width: 640px) {
  .c-promo__links {
    background-color: #ffffff;
  }
  .c-promo__links li {
    display: inline-block;
    border-right: 1px solid #0070cd;
    padding-right: 16px;
    padding-left: calc(16px - 5px);
  }
  .c-promo__links li:last-child {
    border-right: none;
  }
  .c-promo__links li:first-child {
    padding-left: 0;
  }
  .c-related-links--2col li:first-child a,
  .c-related-links--2col li:nth-child(2) a {
    border-top: 1px solid #767676;
  }
}

@media (min-width: 1225px) {
  .link-list.c-related-links--multi {
    margin-right: -104px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fdHlwZS5zY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudC1saW5rLWxpc3Quc2NzcyIsImFic3RyYWN0cy92YXJzL19jb2xvcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9AY29tbW9uLXVpL3R5cG9ncmFwaHkvX21peGlucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2lvdGFjc3MvbW9kdWxlcy9pb3RhY3NzLXRvb2xzLWNvcmUvdXRpbGl0aWVzL19leHRyYWN0LXR5cGUtc2l6ZXMuc2NzcyIsImFic3RyYWN0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fbGluay5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2lvdGFjc3MvbW9kdWxlcy9pb3RhY3NzLXRvb2xzLWNvcmUvbGlicmFyaWVzL19nZW5lcmF0ZS10eXBlLXNpemVzLnNjc3MiLCJjb21wb25lbnQtbGluay1saXN0LmNzcyIsImFic3RyYWN0cy9mdW5jdGlvbnMvX3NwYWNlLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19zYXNzLW1xLW1vZC5zY3NzIiwic3R5bGVzL2xpbmstbGlzdC9saXN0LXZlcnRpY2FsLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fbWFyZ2lucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUM4UEQ7RUFDRSxpQkFBYTtDQUNkOztBQUZEO0VBQ0UsaUJBQWE7Q0FDZDs7QUFGRDtFQUNFLGlCQUFhO0NBQ2Q7O0FBRkQ7RUFDRSxpQkFBYTtDQUNkOztBQ3hQSCxpQkFBaUI7QUNWakI7RUQ0RVEsaUNFbEVZO0NESGpCOztBQVBIO0VBS00sb0JBQW1CO0NBQ3BCOztBQU5MO0VBVUksaUJBQWdCO0NBQ2pCOztBQVhIO0VBY0ksZUFBYztFQUVkOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztFQVFIOztNQUVFO0NBQ0g7O0FBMUNIO0VBa0NNLHNCQUFxQjtFQUNyQixtQkFBa0I7RUFDbEIsbUJBQWtCO0VFbEN0Qix5Q0pKdUQ7RUlLdkQsbUNBQWtDO0VBQ2xDLG9DQUFtQztFQ0hqQyxrQkNVcUQ7RURUckQsa0JMNko0QjtFSTNJMUIsbUJKUGM7RUlPZCxpQkpmUTtFT0haLGVKSWdCO0VJSGhCLHNCQUFxQjtDTG1DbEI7O0FNMUJHO0VOWlI7SUdDSSxnQkNVcUQ7SURUckQsa0JMOEowQjtHRTFIekI7Q09xQ0o7O0FQM0VEO0VLTUksMkJBQTBCO0NBQzNCOztBTFBIO0VBNkNJLGVBQWtCO0NBc0JuQjs7QUFuRUg7RUVFRSx5Q0pGd0Q7RUlHeEQsbUNBQWtDO0VBQ2xDLG9DQUFtQztFQ0hqQyxrQkNVcUQ7RURUckQsa0JMa0U0QjtFSWhEMUIsbUJKUGM7RUlPZCxpQkpiSztDRTBDTjs7QU1yQ0c7RU5aUjtJR0NJLGtCQ1VxRDtJRFRyRCxrQkxtRTBCO0dFcEJ6QjtDT21ESjs7QVBwR0Q7RUFvRE0scUJRbkRrQjtFVDJFaEIsaUNFbEVZO0NEZ0RmOztBQTFETDtFQXdEUSxvQkFBbUI7Q0FDcEI7O0FBekRQO0VBNkRNLGVBQWM7RUFDZCxnQkFBbUI7RUFDbkIsWUFBVztFRGFULGlDRWxFWTtFQ1JsQix5Q0pKdUQ7RUlLdkQsbUNBQWtDO0VBQ2xDLG9DQUFtQztFQ0hqQyxrQkNVcUQ7RURUckQsa0JMNko0QjtFSTNJMUIsbUJKUGM7RUlPZCxpQkpmUTtFT0haLGVKSWdCO0VJSGhCLHNCQUFxQjtDTCtEbEI7O0FNdERHO0VOWlI7SUdDSSxnQkNVcUQ7SURUckQsa0JMOEowQjtHRTlGekI7Q09rRUo7O0FQcElEO0VLTUksMkJBQTBCO0NBQzNCOztBSTBOSztFVGpPUjtJQTBFUSxxQkFBYTtJQUFiLGNBQWE7SUFDYiwwQkFBOEI7WUFBOUIsK0JBQThCO0lBQzlCLGdCQUFlO0dBQ2hCO0VBN0VQO0lBZ0ZRLHdCQUE4QjtHQUsvQjtFQXJGUDtJQW1GVSxlQUFjO0dBQ2Y7Q09rRVI7O0FQdEpEO0VBNEZRLHFCQUFvQjtFQUNwQixlQ2xGUztDRG1GVjs7QUE5RlA7RUVFRSx5Q0pGd0Q7RUlHeEQsbUNBQWtDO0VBQ2xDLG9DQUFtQztFQ0hqQyxrQkNVcUQ7RURUckQsa0JMMkU0QjtFSXpEMUIsbUJKUGM7RUlPZCxpQkpiSztFRTZGSCxnQkFBbUI7Q0FDcEI7O0FNekZDO0VOWlI7SUdDSSxrQkNVcUQ7SURUckQsa0JMNEUwQjtHRXVCdkI7Q093RU47O0FUbUZDO0VBQ0UsaUJBQWE7Q0FDZDs7QUFGRDtFQUNFLGlCQUFhO0NBQ2Q7O0FBRkQ7RUFDRSxpQkFBYTtDQUNkOztBQUZEO0VBQ0UsaUJBQWE7Q0FDZDs7QUN4UEgsaUJBQWlCO0FXVmpCO0VBRVEsb0JUcURlO0VTcERmLFlBQVc7RUFDWCxzQkFBcUI7RUFDckIsaUJBQWdCO0VYZ0ZoQiwwQkVUYTtDU3JFaEI7O0FBUEw7RUFTUSxhQUFZO0NBQ2Y7O0FBVkw7RUFZUSxlQUFjO0VBQ2Qsa0JDYlc7Q0RjZDs7QURtTkc7RVQvR047SUFDRSwwQkNoSGlCO0dENEhsQjtFQWJEO0lBR0ksMEJBQXlDO0lBQ3pDLHNDQUFxQztHQUN0QztFQUxIO0lBT0ksaUJReEhrQjtHUjZIbkI7RUFaSDtJQVVPLGVBQWU7R0FDbEI7RUFJSDtJRHhESyw4QkUvRFk7R0QwSGY7Q084Rko7O0FFRE87RVQvR047SUF3QkUsMEJDeklZO0dEc0piO0VBckNEO0lBMEJJLHNCQUFxQjtJQUNyQixnQ0N2SVk7SUR3SVosb0JRN0lrQjtJUjhJbEIsK0JBQXFDO0dBT3RDO0VBYkg7SUFRTSxtQkFBa0I7R0FDbkI7RUFUTDtJQVdNLGdCQUFlO0dBQ2hCO0VBSUo7O0lEaEZLLDhCRS9EWTtHRG1KZjtDTzJGSjs7QUV2Qk87RVQvRE47SUFFSSxxQlFuS2tCO0dSb0tuQjtDT3lGSiIsImZpbGUiOiJjb21wb25lbnQtbGluay1saXN0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBVc2FnZTpcclxuICpcclxuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XHJcbiAqL1xyXG4kY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuJGZ1bmN0aW9uYWwtY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBjb2xvcigkY29sb3IpIHtcclxuICBAaWYgbWFwLWdldCgkY29sb3JzLCAkY29sb3IpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3IpO1xyXG4gIH0gQGVsc2UgaWYgbWFwLWdldCgkZnVuY3Rpb25hbC1jb2xvcnMsICRjb2xvcikge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRmdW5jdGlvbmFsLWNvbG9ycywgJGNvbG9yKTtcclxuICB9IEBlbHNlIHtcclxuICAgIC8qIFN0eWxlZm10IGNoYW5nZXMgdGhlIHF1b3RlcyBldmVyeSB0aW1lLCBzbyB0dXJuaW5nIG9mZiB0aGUgZXJyb3IgaGVyZSAqL1xyXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0cmluZy1xdW90ZXMgKi9cclxuICAgIEBlcnJvciBcIkNvbG9yIFxcXCIjeyRjb2xvcn1cXFwiY291bGQgbm90IGJlIGZvdW5kXCI7XHJcbiAgfVxyXG59XHJcbiIsIiR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQ6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcbiR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzOiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHM6IChcclxuICAvLyB0aGluOiAxMDAsXHJcbiAgbGlnaHQ6IDMwMCxcclxuICByZWd1bGFyOiA0MDAsXHJcbiAgbWVkaXVtOiA1MDAsXHJcbiAgYm9sZDogNzAwLFxyXG4gIC8vIGJsYWNrOiA5MDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbiR1aS10eXBvZ3JhcGh5LWRlZmF1bHQ6IChcclxuICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdCxcclxuICBmb250LXN0eWxlOiBub3JtYWwsXHJcbiAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gIG1hcmdpbjogMCxcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4kdWktdHlwb2dyYXBoeS1zdHlsZXM6IChcclxuICAvL2hvbWVwYWdlIGhlYWRlclxyXG4gIGQ2LWxoLWxnOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgzMnB4KSwgNDBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg2MXB4KSwgNzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ2OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgzMnB4KSwgNDBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg1MHB4KSwgNTZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ1OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyOXB4KSwgMzZweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg0MXB4KSwgNDRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ1LWxpZ2h0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyOXB4KSwgMzZweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg0MXB4KSwgNDRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLGxpZ2h0KSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyNnB4KSwgMzJweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgzNHB4KSwgNDBweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQzOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyM3B4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyOHB4KSwgMzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyMXB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyNHB4KSwgMzBweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQxOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjRweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGgyc3o6IChcclxuICAgIHNpemVzOiAyLjlyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgaDNzejogKFxyXG4gICAgc2l6ZXM6IDIuMnJlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuXHJcbiAgaDRzejogKFxyXG4gICAgc2l6ZXM6IDEuN3JlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBoNXN6OiAoXHJcbiAgICBzaXplczogMi40cmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGxlYWQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIycHgpLCAzMnB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDI0cHgpLCAzNnB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICAgZm9udC1zdHlsZTogaXRhbGljLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZC1zbWFsbDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgKSxcclxuICBkLXhzbWFsbDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDE2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBib2R5OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBib2R5MjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIGxpbms6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgZGF0ZTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTZweCksIDIwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBoZWFkZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzdWJoZWFkZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzaXRlLXNlYXJjaDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgICBzbTogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBpbnB1dDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBicmVhZGNydW1iOiAoXHJcbiAgICBzaXplczogIChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBmZWF0dXJlZDogKFxyXG4gICAgc2l6ZXM6ICAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgKSxcclxuICBjb3B5cmlnaHQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE0cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDEzcHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgY2FwdGlvbjogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICApLFxyXG4gIGZvcm0tbGFiZWw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBmb3JtLWhlbHBlcjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBwZGY6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGxpZ2h0KSxcclxuICApLFxyXG4gIG1hcC1yZXN1bHRzOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDIwcHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBiZXRhLW5vdGljZTogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIHNpdGUtd2lkZS1hbGVydDogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gJHVpLXR5cG9ncmFwaHktc3R5bGVzIHtcclxuICAkdWktdHlwb2dyYXBoeS1zdHlsZXM6IG1hcC1tZXJnZSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsIChcclxuICAgICN7JG5hbWV9OiBtYXAtbWVyZ2UoJHVpLXR5cG9ncmFwaHktZGVmYXVsdCwgJHN0eWxlKVxyXG4gICkpO1xyXG59XHJcblxyXG5AZWFjaCAkbmFtZSwgJHN0eWxlIGluICR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cyB7XHJcbiAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgZm9udC13ZWlnaHQ6ICN7JHN0eWxlfTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCIvLyBAaW1wb3J0ICd+c2Fzcy1tcS9tcSc7XHJcbkBpbXBvcnQgJ21peGlucy9zYXNzLW1xLW1vZC5zY3NzJztcclxuQGltcG9ydCAnfkBjb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AaW1wb3J0ICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkBpbXBvcnQgJ21peGlucy9idXR0b24nO1xyXG5AaW1wb3J0ICdtaXhpbnMvbGluayc7XHJcbkBpbXBvcnQgJ21peGlucy9vdmVybGF5JztcclxuQGltcG9ydCAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQGltcG9ydCAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AaW1wb3J0ICdtaXhpbnMvdGFnJztcclxuXHJcbi8vIEJlbG93IGFyZSBtaXhpbidzIGZyb20gRlhBXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcblxyXG4kYnJlYWstZGVza3RvcDogOTYwcHg7XHJcbiRicmVhay1tb2JpbGU6IDM4MHB4O1xyXG4kYnJlYWstbW9iaWxlLWhvcml6b250YWw6IDY0MHB4O1xyXG4kYnJlYWstbW9iaWxlLWxhcmdlOiA3ODZweDtcclxuQG1peGluIHdyYXBwZXIoKSB7XHJcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEuNikge1xyXG4gICAgZm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDEwKSArIHB4O1xyXG4gICAgZm9udC1zaXplOiAkc2l6ZVZhbHVlICsgcmVtO1xyXG59XHJcbkBtaXhpbiBvcGVuc2Fucy1mb250LXN0YWNrKCkge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xyXG59XHJcbkBtaXhpbiBsb2FkaW5nLWdpZigpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStEUW9nSUR4d1lYUm9JQ0J2Y0dGamFYUjVQU0l1TWpVaUlHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBek1pQkJNVFlnTVRZZ01DQXdJREFnTVRZZ01DQk5NVFlnTkNCQk1USWdNVElnTUNBd0lERWdNVFlnTWpnZ1FURXlJREV5SURBZ01DQXhJREUySURRaUx6NE5DaUFnUEhCaGRHZ2dabWxzYkQwbkl6RmhPREJpTmljZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXhJRE15SURFMklFd3lPQ0F4TmlCQk1USWdNVElnTUNBd0lEQWdNVFlnTkhvaVBnMEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGcwS0lDQThMM0JoZEdnK0RRbzhMM04yWno0TkNnPT0pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XHJcbiAgICBAaWYgJG1lZGlhPT1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1ob3Jpem9udGFsIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtaG9yaXpvbnRhbCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtbGFyZ2Uge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1sYXJnZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PXRhYmxldCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstbW9iaWxlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWFsbC1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09ZGVza3RvcCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstZGVza3RvcCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGJvcmRlci1iYXNpYygkcG9zaXRpb246YWxsLCAkYm9yZGVyLWNvbG9yOiRib3JkZXItZ3JheSwgJGJvcmRlci13aWR0aDoxcHgpIHtcclxuICAgIEBpZigkcG9zaXRpb249PXRvcCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09Ym90dG9tKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09cmlnaHQpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZml4ZWQtYmcoJHBvcywgJG1pbi1oZWlnaHQ6MjQwcHgpIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3M7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcclxuICAgIC8vIERpcmVjdGlvbiBoYXMgYmVlbiBvbWl0dGVkIGFuZCBoYXBwZW5zIHRvIGJlIGEgY29sb3Itc3RvcFxyXG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKT09ZmFsc2Uge1xyXG4gICAgICAgICRjb2xvci1zdG9wczogJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzO1xyXG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcclxuICAgIH1cclxuICAgIGJhY2tncm91bmQ6IG50aChudGgoJGNvbG9yLXN0b3BzLCAxKSwgMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XHJcbn1cclxuIiwiQGltcG9ydCBcImFic3RyYWN0c1wiO1xyXG5AaW1wb3J0IFwiYmFzZS9mb250YXdlc29tZS9mb250LWF3ZXNvbWUtbWl4LXZhclwiO1xyXG4ubGluay1saXN0IHtcclxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgIEBpbmNsdWRlIGJvcmRlci1iYXNpYyhib3R0b20sIGNvbG9yKGdyZXktYm9yZGVyKSk7XHJcblxyXG4gICAgJjplbXB0eSB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgLyphW3RpdGxlXTpmb2N1czphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IGF0dHIodGl0bGUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IDAuMmVtO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMC4xZW07XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC4xZW07XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgZm9udC1mYW1pbHk6IFNlZ29lIFVJICFpbXBvcnRhbnQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcclxuICAgICAgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50O1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgQGluY2x1ZGUgbGluaztcclxuICAgIH1cclxuICAgIC8qYTpub3QoLmMtZm9vdGVyX19saW5rcyk6dmlzaXRlZDoge1xyXG5cdCAgICAgIGNvbG9yIDogY29sb3IobWF1dmUtdGF1cGUpO1xyXG5cdCAgfSovXHJcbiAgfVxyXG5cclxuICAmLmMtcmVsYXRlZC1saW5rcyB7XHJcbiAgICBtYXJnaW46IHNwYWNlKDIpIDA7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQzKTtcclxuICAgIH1cclxuXHJcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IHNwYWNlKDIpO1xyXG4gICAgICBAaW5jbHVkZSBib3JkZXItYmFzaWMoYm90dG9tLCBjb2xvcihncmV5LWJvcmRlcikpO1xyXG5cclxuICAgICAgJjplbXB0eSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZzogc3BhY2UoMikgMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1iYXNpYyhib3R0b20sIGNvbG9yKGdyZXktYm9yZGVyKSk7XHJcbiAgICAgIEBpbmNsdWRlIGxpbms7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmMtcmVsYXRlZC1saW5rcy0tMmNvbCB7XHJcbiAgICBAZXh0ZW5kIC5jLXJlbGF0ZWQtbGlua3M7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEoc20pIHtcclxuICAgICAgdWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtICN7c3BhY2UoMil9KTtcclxuXHJcbiAgICAgICAgYTp2aXNpdGVkIHtcclxuICAgICAgICAgIGNvbG9yOiAjN2UzZDUwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jLXJlbGF0ZWQtbGlua3MtLW11bHRpIHtcclxuICAgIC5jdXJyZW50LXBhZ2Uge1xyXG4gICAgICBhIHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBjb2xvcjogY29sb3IoZ3JleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGluZy10aXRsZSB7XHJcbiAgICAgIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoZDIpO1xyXG4gICAgICAgIHBhZGRpbmc6IHNwYWNlKDIpIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbXBvcnQgXCJFOi9HaXRMYWItUnVubmVyL2J1aWxkcy9YZENxNE16ZS8wL3dlYnNpdGUvdHRjLmNhL3NyYy9VSS9zYXNzL2Jhc2UvbGlua3MvX2xpbmstYnV0dG9uLnNjc3NcIjtcblxyXG4gIEBpbXBvcnQgXCJFOi9HaXRMYWItUnVubmVyL2J1aWxkcy9YZENxNE16ZS8wL3dlYnNpdGUvdHRjLmNhL3NyYy9VSS9zYXNzL3ZhcmlhbnRzL2xpbmstbGlzdC9kZWZhdWx0LnNjc3NcIjtcblxyXG59XHJcbkBpbXBvcnQgXCJFOi9HaXRMYWItUnVubmVyL2J1aWxkcy9YZENxNE16ZS8wL3dlYnNpdGUvdHRjLmNhL3NyYy9VSS9zYXNzL3N0eWxlcy9saW5rLWxpc3QvbGlzdC12ZXJ0aWNhbC5zY3NzXCI7XG5cclxuXHJcbkBpbmNsdWRlIG1xKCR1bnRpbDpzbSkge1xyXG4gIC5jLXByb21vX19saW5rcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwcmltYXJ5KTtcclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogY29sb3IocHJpbWFyeS1jb250cmFzdCkgIWltcG9ydGFudDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgbWFyZ2luLXRvcDogc3BhY2UoMik7XHJcblx0ICBcclxuXHQgIFx0YTp2aXNpdGVkIHtcclxuXHRcdCAgICAgICBjb2xvciA6ICM3ZTMwNDc7XHJcblx0XHQgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmMtcmVsYXRlZC1saW5rcy0tMmNvbCB7XHJcbiAgICBsaTpmaXJzdC1jaGlsZCBhIHtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVyLWJhc2ljKHRvcCwgY29sb3IoZ3JleS1ib3JkZXIpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKHNtKSB7XHJcbiAgLmMtcHJvbW9fX2xpbmtzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHByaW1hcnktY29udHJhc3QpO1xyXG4gICAgbGkge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGNvbG9yKHNlY29uZGFyeSk7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHNwYWNlKDIpO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3tzcGFjZSgyKX0gLSA1cHgpO1xyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuYy1yZWxhdGVkLWxpbmtzLS0yY29sIHtcclxuICAgIGxpOmZpcnN0LWNoaWxkIGEsXHJcbiAgICBsaTpudGgtY2hpbGQoMikgYXtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVyLWJhc2ljKHRvcCwgY29sb3IoZ3JleS1ib3JkZXIpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKGxnKSB7XHJcbiAgLmxpbmstbGlzdCB7XHJcbiAgICAmLmMtcmVsYXRlZC1saW5rcy0tbXVsdGkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0gc3BhY2UoMTMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBVc2UgY29sb3IgZnVuY3Rpb25zIGZvciBUVENcclxuLy8gTmFtZXMgdGFrZW4gZnJvbSBodG1sY3NzY29sb3IuY29tIGlmIG5vdCBkZXNjcmlwdGl2ZSBlbm91Z2ggZnJvbSB6ZXBsaW5cclxuJGNvbG9yczogKFxyXG4gIHdoaXRlOiAjZmZmZmZmLFxyXG4gIHdoaXRlLXNtb2tlOiAjZjNmM2YzLFxyXG4gIGNoZXJyeS1yZWQ6ICNkYTI1MWQsXHJcbiAgc2NhcmxldDojNzQwMDAwLFxyXG4gIGNhcm1pbmU6ICNhMzAwMWMsXHJcbiAgY2VydWxlYW46IzAwNzBjZCxcclxuICBvY2Vhbi1ibHVlOiAjMDY1NmE1LFxyXG4gIGNlcnVsZWFuLXR3bzogIzAwOWFkZSxcclxuICBnb2xkZW4teWVsbG93OiAjZmZjNjI3LFxyXG4gIHdhcm0tZ3JleTogIzc2NzY3NixcclxuICBncmV5Mjk6ICM0YTRhNGEsXHJcbiAgZ3JleTcwOiAjYjNiM2IzLFxyXG4gIGR1c3R5LWdyZXk6ICNlZGVkZWQsXHJcbiAgd2FybS1ncmV5LTI6ICM5Nzk3OTcsXHJcbiAgZGltLWdyZXk6ICM2OTY5NjksXHJcbiAgd2hpdGUtdHdvOiAjZDVkNWQ1LFxyXG4gIHdoaXRlLXRocmVlOiAjZDJkMmQyLFxyXG4gIGdhaW5zYm9ybzogI2Q4ZDhkOCxcclxuICBuZXJvOiAjMWUxZTFlLFxyXG4gIGdvbGRlbi1wb3BweTogI2Y4YzMwMCxcclxuICBleHByZXNzLWdyZWVuOiAjMDA5MjNmLFxyXG4gIG5pZ2h0LWJsdWU6ICMwMjQxODIsXHJcbiAgY29tbXVuaXR5LWdyZXk6ICM4MDgwODAsXHJcbiAgbWF1dmUtdGF1cGU6ICM5NzU4NkIsXHJcbiAgYmxhY2s6ICMwMDAwMDAsXHJcbik7XHJcblxyXG4kZnVuY3Rpb25hbC1jb2xvcnM6IChcclxuICBwcmltYXJ5LWNvbnRyYXN0OiBjb2xvcih3aGl0ZSksXHJcbiAgcHJpbWFyeS1jb250cmFzdC1kYXJrOiBjb2xvcih3aGl0ZS1zbW9rZSksXHJcbiAgcHJpbWFyeTogY29sb3IoY2hlcnJ5LXJlZCksXHJcbiAgcHJpbWFyeS1kYXJrOiBjb2xvcihzY2FybGV0KSxcclxuICBwcmltYXJ5LWRhcmtlcjogY29sb3IoY2FybWluZSksXHJcbiAgc2Vjb25kYXJ5OiBjb2xvcihjZXJ1bGVhbiksXHJcbiAgc2Vjb25kYXJ5LWRhcms6IGNvbG9yKG9jZWFuLWJsdWUpLFxyXG4gIHNlY29uZGFyeS1saWdodDogY29sb3IoY2VydWxlYW4tdHdvKSxcclxuICBhY2NlbnQteWVsbG93OiBjb2xvcihnb2xkZW4teWVsbG93KSxcclxuICBncmV5OiBjb2xvcihncmV5MjkpLFxyXG4gIGdyZXktbWVudTogY29sb3IoZHVzdHktZ3JleSksXHJcbiAgZ3JleS1ib3JkZXI6IGNvbG9yKHdhcm0tZ3JleSksXHJcbiAgZ3JleS1ib3JkZXItMjogY29sb3Iod2hpdGUtdGhyZWUpLFxyXG4gIGdyZXktcGxhY2Vob2xkZXI6IGNvbG9yKGdyZXk3MCksXHJcbiAgZ3JleS0yOiBjb2xvcih3YXJtLWdyZXktMiksXHJcbiAgY2Fyb3VzZWwtZG90czogY29sb3IoZGltLWdyZXkpLFxyXG4gIGdyZXktbGlnaHQ6IGNvbG9yKGdhaW5zYm9ybyksXHJcbiAgdGFiLS1kaXNhYmxlZDogY29sb3Iod2hpdGUtdHdvKSxcclxuICBiYWNrZHJvcDogcmdiYSgwLDAsMCwwLjcpLFxyXG4gIGJsYWNrOiBjb2xvcihibGFjayksXHJcbiAgc2l0ZS13aWRlLWFsZXJ0OiBjb2xvcihnb2xkZW4tcG9wcHkpLFxyXG4gIHZpc2l0ZWQtLWxpbms6IGNvbG9yKG1hdXZlLXRhdXBlKSxcclxuKTtcclxuXHJcbi8vQmFja2dyb3VuZHMgY29sb3JzXHJcbiRiZy10cmFuc3BhcmVudDp0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGJnLWJhc2ljLWNvbG9yOiNGRkZGRkYgIWRlZmF1bHQ7XHJcbiRiZy1iYXNpYy1jb2xvci1hY3RpdmU6ICNjY2NjY2MgIWRlZmF1bHQ7XHJcbiRiZy1saWdodC1ncmF5OiAjZjdmN2Y3ICFkZWZhdWx0O1xyXG4kYmctbGlnaHQtZ3JheS1hY3RpdmU6ICNkYWRhZGEgIWRlZmF1bHQ7XHJcbiRiZy1ibHVlOiM4OUM2Q0M7XHJcbiRiZy1ibHVlLWFjdGl2ZTogIzE1OTA5YyAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnU6I2VkZWJlYiAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnUtYWN0aXZlOiNmNmY2ZjYgIWRlZmF1bHQ7XHJcbiRiZy1ibGFjazojMDAwMDAwO1xyXG4kYmctYmxhY2stYWN0aXZlOiMzZDNkM2Q7XHJcbi8vVGV4dCBjb2xvcnNcclxuJHRleHQtd2hpdGU6I2ZmZiAhZGVmYXVsdDtcclxuJHRleHQtaGVhZGluZy1jb2xvcjogIzIyMiAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWM6Izc0NzQ3NCAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWMtYWN0aXZlOiM4Nzg3ODcgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJsdWU6Izg5QzZDQyAhZGVmYXVsdDtcclxuJHRleHQtYmx1ZS1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuJHRleHQtc3VibWVudS1hY3RpdmU6ICMyMjIgIWRlZmF1bHQ7XHJcbiR0ZXh0LWRpc2FibGVkOiAjYWFhICFkZWZhdWx0O1xyXG4kdGV4dC1ibGFjazogIzAwMDAwMCAhZGVmYXVsdDtcclxuLy9Cb3JkZXIgY29sb3JzXHJcbiRib3JkZXItZ3JheTogI2QyZDJkMiAhZGVmYXVsdDtcclxuJGJvcmRlci13aGl0ZTogI2ZmZmZmZiAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1jb2xvcjogIzg5QzZDQyAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuXHJcbi8vU3R5bGVzIGZvciBlYWNoIGNvbXBvbmVudCBzZXBhcmF0ZWx5XHJcbi8vQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24taGVhZGVyLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYmctYWN0aXZlOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi10b2dnbGVkLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYm9yZGVyOiAkYm9yZGVyLWdyYXk7XHJcbi8vQnJlYWRjcnVtYlxyXG4kYnJlYWRjcnVtYi1kcm9wZG93bi1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRicmVhZGNydW1iLWRyb3Bkb3duLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJGJyZWFkY3J1bWItZHJvcGRvd24tdGV4dC1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbiRicmVhZGNydW1iLWJnOnRyYW5zcGFyZW50O1xyXG4kYnJlYWRjcnVtYi1jb2xvcjokdGV4dC1iYXNpYztcclxuJGJyZWFkY3J1bWItY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWUtYWN0aXZlO1xyXG4vL0J1dHRvbnMgY29sb3JzXHJcbiRidG4tZ3JlZW4tbGlnaHQ6ICNhMGNlNGU7XHJcbiRidG4tZ3JlZW46ICM5MmJlNDM7XHJcbiRidG4tcmVkLWFjdGl2ZTogI2MzNGUzMDtcclxuJGJ0bi1yZWQ6ICNiYzQ1MjY7XHJcbi8vQ2Fyb3VzZWxcclxuJGNhcm91c2VsLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGNhcm91c2VsLW5hdi1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kY2Fyb3VzZWwtbmF2LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0NvbnRhaW5lciBjb21wb25lbnRcclxuJGNvbnRhaW5lci10aXRsZS1yb3ctYmc6ICRiZy1saWdodC1ncmF5O1xyXG4vL0V2ZW50IExpc3RcclxuJGV2ZW50LWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRldmVudC1saXN0LWl0ZW0tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZXZlbnQtbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kZXZlbnQtbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9DYWxlbmRhclxyXG4kY2FsZW5kYXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kY2FsZW5kYXItaGVhZGVyLWJnOiRiZy1iYXNpYy1jb2xvci1hY3RpdmU7XHJcbiRjYWxlbmRhci1kYXktY29sb3ItYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4vL0ZlZWRcclxuJGZlZWQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmZWVkLWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbi8vRmllbGQgRWRpdG9yXHJcbiRmaWVsZC1lZGl0b3ItYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWVsZC1lZGl0b3ItdGFibGUtYm9yZGVyOiRiZy1saWdodC1ncmF5O1xyXG4kZmllbGQtZWRpdG9yLXRleHQtaGVhZGVyOiR0ZXh0LWJsYWNrO1xyXG4kZmllbGQtZWRpdG9yLXRleHQ6JHRleHQtYmFzaWM7XHJcbi8vRmlsZSBMaXN0XHJcbiRmaWxlLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuJGZpbGUtbGlzdC10aXRsZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC10aXRsZS1ib3JkZXI6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRmaWxlLWxpc3QtaXRlbS1zaXplOiR0ZXh0LWJhc2ljO1xyXG4kZmlsZS1saXN0LWl0ZW0tYm9yZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9GbGlwXHJcbiRmbGlwLWJnOnRyYW5zcGFyZW50O1xyXG4kZmxpcC1zbGlkZXMtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4vL0dhbGxlcnlcclxuJGdhbGxlcmlhLWNvbnRhaW5lci1iZzokYmctYmxhY2s7XHJcbiRnYWxsZXJ5LWluZm8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZ2FsbGVyeS1pbmZvLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRnYWxsZXJ5LWluZm8tdGV4dDokdGV4dC1iYXNpYztcclxuJGdhbGxlcnktbmF2LWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJGdhbGxlcnktbmF2OiR0ZXh0LWJhc2ljO1xyXG4kZ2FsbGVyeS1jb3VudGVyLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4vL0xhbmd1YWdlIHNlbGVjdG9yXHJcbiRsYW5nLXNlbGVjdG9yLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRsYW5nLXNlbGVjdG9yLWl0ZW0tYmctYWN0aXZlOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXI6JGJvcmRlci13aGl0ZTtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1NpdGUgc2VsZWN0b3JcclxuJHNpdGUtc2VsZWN0b3ItY29sb3I6JHRleHQtYmFzaWM7XHJcbi8vTGluayBMaXN0XHJcbiRsaW5rLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaGVhZGVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbGluay1saXN0LWl0ZW1zLWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRsaW5rLWxpc3QtaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vTG9naW5cclxuJGxvZ2luLWJnOnRyYW5zcGFyZW50O1xyXG4vL0xvZ291dFxyXG4kbG9nb3V0LWJnOnRyYW5zcGFyZW50O1xyXG4kbG9nb3V0LWxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxvZ291dC1saW5rLXRleHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGxvZ291dC1saW5rLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL01hcFxyXG4kbWFwLWJnOnRyYW5zcGFyZW50O1xyXG4kbWFwLWJvcmRlcjpub25lO1xyXG4vL1BhZ2UgTGlzdFxyXG4kcGFnZS1saXN0LWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLXRpdGxlLXRleHQ6JHRleHQtYmxhY2s7XHJcbiRwYWdlLWxpc3QtaXRlbS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9QYWdpbmF0aW9uXHJcbiRsaXN0LXBhZ2luYXRpb24tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjokdGV4dC13aGl0ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6JHRleHQtYmx1ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtYmc6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vUGxheSBsaXN0IFxyXG4kcGxheS1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kcGxheS1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRwbGF5LWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHBsYXktbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJHBsYXktbGlzdC1uYXYtYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiRwbGF5LWxpc3QtaXRlbS1iZzokYmctbGlnaHQtZ3JheTtcclxuJHBsYXktbGlzdC1pdGVtLWFjdGl2ZS1iZzokYmctYmx1ZTtcclxuJHBsYXktbGlzdC1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHBsYXktbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Qcm9tb1xyXG4kcHJvbW8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kcHJvbW8tYmctaGVybzpyZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiRwcm9tby1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kcHJvbW8taGVyby10ZXh0LWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kcHJvbW8tc2hhZG93LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1JpY2ggVGV4dCBDb250ZW50XHJcbiRyaWNoLWNvbnRlbnQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRyaWNoLWNvbnRlbnQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRyaWNoLWNvbnRlbnQtYm9yZGVyOm5vbmU7XHJcbi8vU2VhcmNoXHJcbiRzZWFyY2gtZmlsdGVyOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWZpbHRlci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9NZW51IGNvbG9yc1xyXG4kbWVudS1ob3Zlci1jb2xvcjojMWI4MDllO1xyXG4kbWVudS1hY3RpdmUtY29sb3I6IzE3NmY4OTtcclxuLy9OYXZpZ2F0aW9uXHJcbiRuYXYtYmc6dHJhbnNwYXJlbnQ7XHJcbiRuYXYtY29sb3Itcm9vdDokdGV4dC1iYXNpYztcclxuJG5hdi1jb2xvci1yb290LWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJG5hdi1ib3JkZXItcm9vdDokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWJvcmRlci1yb290LWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWNvbG9yLXN1Ym1lbnU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtY29sb3Itc3VibWVudS1hY3RpdmU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctcm9vdDokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudTokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudS1hY3RpdmU6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJvcmRlci1zdWJtZW51OiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRuYXYtc3VibWVudS1pdGVtLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRuYXYtc3VibWVudS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vU29jaWFsIE1lZGlhIFNoYXJlXHJcbiRzb2NpYWwtbWVkaWEtc2hhcmUtYmc6dHJhbnNwYXJlbnQ7XHJcbi8vVGFic1xyXG4kdGFiLWhlYWRpbmctYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0YWItaGVhZGluZy1hY3RpdmUtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdGFiLWhlYWRpbmctY29sb3I6JHRleHQtaGVhZGluZy1jb2xvcjtcclxuJHRhYi1oZWFkaW5nLWFjdGl2ZS1jb2xvcjokdGV4dC1ibGFjaztcclxuJHRhYi1jb250YWluZXItYmc6dHJhbnNwYXJlbnQ7XHJcbiR0YWItY29udGFpbmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1RpdGxlXHJcbiR0aXRsZS1iZzp0cmFuc3BhcmVudDtcclxuJHRpdGxlLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdGl0bGUtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuLy9Ub2dnbGVcclxuJHRvZ2dsZS1oZWFkZXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLWNvbnRlbnQtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLXNob3ctY29sb3I6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtYnRuLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLWJ0bi1hY3RpdmUtYmc6I2UwZTBlMDtcclxuJHNlYXJjaC1idG4tYWN0aXZlLWJvcmRlcjojYWRhZGFkO1xyXG4vL0ltYWdlIGNvbXBvbmVudFxyXG4kaW1hZ2UtY2FwdGlvbi1jb2xvcjokdGV4dC1iYXNpYztcclxuLy9NZWRpYSBMaW5rIENvbXBvbmVudFxyXG4kbWVkaWEtbGluay1iZzp0cmFuc3BhcmVudDtcclxuJG1lZGlhLWxpbmstYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRtZWRpYS1saW5rLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbWVkaWEtbGluay1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1RhZyBDb21wb25lbnRcclxuJHRhZy1jb2xvcjokdGV4dC1iYXNpYztcclxuJHRhZy1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kdGFnLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbiR0YWctbGluay1iZyA6JGJnLWJsdWU7XHJcbiR0YWctbGluay1iZy1hY3RpdmUgOiRiZy1ibHVlLWFjdGl2ZTtcclxuJHRhZy1saW5rLWNvbG9yIDokdGV4dC13aGl0ZTtcclxuLy9MaW5rIENvbXBvbmVudFxyXG4kbGluay1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstdGV4dC1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kbGluay1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9PdmVybGF5XHJcbiRvdmVybGF5LWJnOiRiZy1saWdodC1ncmF5O1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtdGl0bGUtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRzZWFyY2gtdGl0bGUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kc2VhcmNoLWl0ZW0tYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWFjdGl2ZTokdGV4dC1ibHVlO1xyXG4kc2VhcmNoLWZpbHRlci1yYWRpdXMtYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWJnOiRib3JkZXItZ3JheTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJ0bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbi8vU2VyYWNoIFBhZ2luYXRpb25cclxuJHNlYXJjaC1wYWdpbmF0aW9uLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24taG92ZXItY29sb3I6JHRleHQtYmx1ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJnOiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9TZWFyY2ggc2VsZWN0b3JcclxuJHNlcmFjaC1zZWxlY3Rvci12YXJpYW50LWNvbG9yLWFjdGl2ZTogJHRleHQtYmx1ZS1hY3RpdmU7XHJcbi8vVHlwZWhlYWRcclxuJHR0LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiR0dC1wcmljZS1jb2xvcjokdGV4dC1ibHVlO1xyXG4kdHQtZHJvcGRvd24tYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0dC1zdWdnZXN0aW9uLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbiR0dC1kcm9wZG93bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4vL1ZpZGVvXHJcbiR2aWRlby1jb250cm9sLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHZpZGVvLXRpbWUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiR2aWRlby10aW1lLXRvdGFsLWJnOiRiZy1ibGFjaztcclxuJHZpZGVvLXRpbWUtaGFuZGxlLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiR2aWRlby10aW1lLWhhbmRsZS1iZzokYmctYmxhY2s7XHJcbi8vTWFpblxyXG4kcGFnZS1iZzogJGJnLWJhc2ljLWNvbG9yO1xyXG4kcGFnZS1iZy1lZGl0b3I6bm9uZTtcclxuIiwiQGltcG9ydCAnLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnfmlvdGFjc3MtdG9vbHMtdHlwZS90b29scy50eXBlJztcblxuQG1peGluIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpIHtcbiAgZm9udC1mYW1pbHk6IGlmKCRmb250LWZhbWlseSAhPSBudWxsLCAkZm9udC1mYW1pbHksICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuQG1peGluIHVpLXR5cG9ncmFwaHkoJHN0eWxlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xuICAgICRzdHlsZTogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XG4gICAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRzdHlsZSwgZm9udC1mYW1pbHkpO1xuXG4gICAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeS1iYXNlKCRmb250LWZhbWlseSk7XG4gICAgQGluY2x1ZGUgaW90YS10eXBlKG1hcC1nZXQoJHN0eWxlLCBzaXplcykpO1xuXG4gICAgLy8gUmVtb3ZlIHByb3BlcnRpZXMgdGhhdCBkbyBub3QgbmVlZCB0byBiZSBnZW5lcmF0ZWQgYmVsb3dcbiAgICAkcHJvcHM6IG1hcC1yZW1vdmUoJHN0eWxlLCBmb250LWZhbWlseSwgbWFyZ2luLCBzaXplcyk7XG4gICAgJGtleXM6IG1hcC1rZXlzKCRwcm9wcyk7XG5cbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAgICN7JGtleX06IG1hcC1nZXQoJHByb3BzLCAka2V5KTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4oJ0NvdWxkIG5vdCBmaW5kIGAjeyRzdHlsZX1gIGluIGAkdWktdHlwb2dyYXBoeS1zdHlsZXNgJyk7XG4gIH1cbn1cblxuQG1peGluIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSkge1xuICBtYXJnaW46IG1hcC1nZXQobWFwLWdldCgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSksIG1hcmdpbik7XG59XG4iLCJAbWl4aW4gX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcykge1xuXG4gIEBpZiAoIGxlbmd0aCgkc2l6ZXMpID09IDIgKSB7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAkc2l6ZXM7ICBcbiAgfVxuICBcbn1cbiIsIi8vIGh0dHBzOi8vam9lY2lhbmZsb25lLmNvL2FydGljbGUvc2Fzcy1weC10by1yZW1zXHJcbi8vIEJ1dCBObyBuZWVkIGZvciBwaXhlbCBmYWxsYmFjayBhbnltb3JlIHNlZSBzdXBwb3J0XHJcbi8vIGFuZCBmb3IgaW51aXQgdHlwZSB0b29sIChyZXNwb25zaXZlKSB3ZSBuZWVkIGp1c3QgYSByZXR1cm5lZCByZW0gdmFsdWUsIG5vIG5lZWQgZm9yIG1peGluc1xyXG5cclxuJGJhc2U6IDYyLjUlO1xyXG5cclxuQGZ1bmN0aW9uIGdldC12YWx1ZSgkbikge1xyXG4gIEByZXR1cm4gJG4gLyAoJG4gKiAwICsgMSk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBnZXQtcmVtKCRmb250LXNpemUpIHtcclxuICAkYmFzZS1zaXplOiBnZXQtdmFsdWUoJGJhc2UgLyAxMDApO1xyXG4gICRiYXNlLXB4LXNpemU6IDE2ICogJGJhc2Utc2l6ZTtcclxuICBAcmV0dXJuICgoZ2V0LXZhbHVlKCRmb250LXNpemUpIC8gJGJhc2UtcHgtc2l6ZSkgKyByZW0pO1xyXG59IiwiJGV4dGVuc2lvbnM6IHBkZiB4bHMgcHB0IGRvYztcclxuXHJcbkBtaXhpbiBsaW5rIHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGxpbmspO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWQge1xyXG4gIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgY29sb3I6IGNvbG9yKHByaW1hcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWRzbSB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICBjb2xvcjogY29sb3IocHJpbWFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstLXBkZiB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShwZGYpO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1hcnJvdyB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShwZGYpO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHNwYWNlKDEpO1xyXG4gICAgaGVpZ2h0OiBzcGFjZSgyLjUpO1xyXG4gICAgd2lkdGg6IHNwYWNlKDIuNSk7XHJcbiAgICBib3R0b206IDNweDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvYXJyb3ctYmFja2dyb3VuZC1yaWdodC1vdXRsaW5lLnN2ZycpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay1leHRlbnNpb25zIHtcclxuICBAZWFjaCAkZXh0ZW5zaW9uIGluICRleHRlbnNpb25zIHtcclxuICAgICZbaHJlZio9XCIjeyRleHRlbnNpb259XCJdIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogc3BhY2UoMC41KTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkZXh0ZW5zaW9uID09IHBkZiB7XHJcbiAgICAgICZbaHJlZio9XCIjeyRleHRlbnNpb259XCJdOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL3BkZi1yZWQuc3ZnKTtcclxuICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjNweCAyNXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAmW2hyZWYqPVwiI3skZXh0ZW5zaW9ufVwiXTo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiLiN7JGV4dGVuc2lvbn1cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiQG1peGluIF9pb3RhLWdlbmVyYXRlLXR5cGUtc2l6ZXMoJHZhbHVlcywgJGJyZWFrcG9pbnRzKSB7XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ21hcCcge1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCR2YWx1ZXMsIG51bGwpIHtcblxuICAgICAgQGluY2x1ZGUgX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKG1hcC1nZXQoJHZhbHVlcywgbnVsbCkpO1xuXG4gICAgfVxuICBcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHNpemVzIGluICR2YWx1ZXMge1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xuICAgICAgXG4gICAgICAgIEBtZWRpYSAje21hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCl9IHtcbiAgICAgIFxuICAgICAgICAgIEBpbmNsdWRlIF9pb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZXMpO1xuXG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbnVtYmVyJyBvciB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG5cbiAgICBAaW5jbHVkZSBfaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHZhbHVlcyk7XG5cbiAgfVxufVxuIiwiLyoqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcclxuICovXG4udS10eXBlLS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi51LXR5cGUtLXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udS10eXBlLS1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udS10eXBlLS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogYnJlYWtwb2ludHMgKi9cbi5saW5rLWxpc3QgaDEsIC5saW5rLWxpc3QgaDIsIC5saW5rLWxpc3QgaDMsIC5saW5rLWxpc3QgaDQsIC5saW5rLWxpc3QgaDUsIC5saW5rLWxpc3QgaDYge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3Njtcbn1cblxuLmxpbmstbGlzdCBoMTplbXB0eSwgLmxpbmstbGlzdCBoMjplbXB0eSwgLmxpbmstbGlzdCBoMzplbXB0eSwgLmxpbmstbGlzdCBoNDplbXB0eSwgLmxpbmstbGlzdCBoNTplbXB0eSwgLmxpbmstbGlzdCBoNjplbXB0eSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5saW5rLWxpc3QgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubGluay1saXN0IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qYVt0aXRsZV06Zm9jdXM6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBhdHRyKHRpdGxlKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgcGFkZGluZzogM3B4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAwLjJlbTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDAuMWVtO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMWVtO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZSBVSSAhaW1wb3J0YW50O1xyXG4gICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgfSovXG4gIC8qYTpub3QoLmMtZm9vdGVyX19saW5rcyk6dmlzaXRlZDoge1xyXG5cdCAgICAgIGNvbG9yIDogY29sb3IobWF1dmUtdGF1cGUpO1xyXG5cdCAgfSovXG59XG5cbi5saW5rLWxpc3QgbGkgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5saW5rLWxpc3QgbGkgYSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG5cbi5saW5rLWxpc3QgbGkgYTpob3ZlciwgLmxpbmstbGlzdCBsaSBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCB7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuXG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDMge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDMge1xuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICB9XG59XG5cbi5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGgxLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoMSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDIsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGgyLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDMsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGg0LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoNCwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDUsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGg1LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoNiwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDYge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3Njc2NzY7XG59XG5cbi5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGgxOmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoMTplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDI6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGgyOmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMzplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDM6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGg0OmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoNDplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDU6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGg1OmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoNjplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDY6ZW1wdHkge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBhLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDE2cHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNzY3Njc2O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMDA3MGNkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBhLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBhIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cblxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgYTpob3ZlciwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgYTpob3ZlciwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgYTpmb2N1cywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBsaSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gIH1cbiAgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgbGkgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzdlM2Q1MDtcbiAgfVxufVxuXG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tbXVsdGkgLmN1cnJlbnQtcGFnZSBhIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiAjNGE0YTRhO1xufVxuXG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tbXVsdGkgLmhlYWRpbmctdGl0bGUgcCB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMTZweCAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLW11bHRpIC5oZWFkaW5nLXRpdGxlIHAge1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG59XG5cbi51LXR5cGUtLWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnUtdHlwZS0tcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi51LXR5cGUtLW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi51LXR5cGUtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vKiBicmVha3BvaW50cyAqL1xuLmxpbmstbGlzdC5saXN0LXZlcnRpY2FsIGgzIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QyZDJkMjtcbn1cblxuLmxpbmstbGlzdC5saXN0LXZlcnRpY2FsIGEge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5saW5rLWxpc3QubGlzdC12ZXJ0aWNhbCBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5jLXByb21vX19saW5rcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RhMjUxZDtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgYSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5jLXByb21vX19saW5rcyBsaSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgbGkgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzdlMzA0NztcbiAgfVxuICAuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGxpOmZpcnN0LWNoaWxkIGEge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzY3Njc2O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuYy1wcm9tb19fbGlua3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbiAgLmMtcHJvbW9fX2xpbmtzIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwNzBjZDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygxNnB4IC0gNXB4KTtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9XG4gIC5jLXByb21vX19saW5rcyBsaTpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgbGk6Zmlyc3QtY2hpbGQgYSxcbiAgLmMtcmVsYXRlZC1saW5rcy0tMmNvbCBsaTpudGgtY2hpbGQoMikgYSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3Njc2NzY7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMjVweCkge1xuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tbXVsdGkge1xuICAgIG1hcmdpbi1yaWdodDogLTEwNHB4O1xuICB9XG59XG4iLCIkc3BhY2U6IDhweCAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBzcGFjZSgkc2l6ZTogMSkge1xyXG4gIEByZXR1cm4gJHNwYWNlICogJHNpemU7XHJcbn1cclxuIiwiLy9tb2RkZWQgdG8gdXNlIHB4XHJcblxyXG5AY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcclxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxyXG5cclxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XHJcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXHJcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBSZXNwb25zaXZlIG1vZGVcclxuLy8vXHJcbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcclxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXHJcbi8vL1xyXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxyXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gb2xkLWllLnNjc3NcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXHJcbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJyZWFrcG9pbnQgbGlzdFxyXG4vLy9cclxuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXHJcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXHJcbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXHJcbi8vL1xyXG4vLy8gQHR5cGUgTWFwXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLWJyZWFrcG9pbnRzOiAoXHJcbiAgICBtb2JpbGU6ICAzMjBweCxcclxuICAgIHRhYmxldDogIDc0MHB4LFxyXG4gICAgZGVza3RvcDogOTgwcHgsXHJcbiAgICB3aWRlOiAgICAxMzAwcHhcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXHJcbi8vL1xyXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXHJcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcclxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3NcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xyXG4vLy8gIC8vXHJcbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXHJcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xyXG5cclxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vXHJcbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxyXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcclxuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxyXG4vLy9cclxuLy8vIEB0eXBlIG1hcFxyXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcclxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcclxuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XHJcbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XHJcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XHJcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XHJcbiAgICAgICAgQHJldHVybiAkcHg7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcclxuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcclxuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcclxuLy8vXHJcbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXHJcbi8vL1xyXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC5lbGVtZW50IHtcclxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcclxuLy8vICAgICAgY29sb3I6IHJlZDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGdyZWVuO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcclxuLy8vICAgICAgY29sb3I6IHRlYWw7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcclxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcclxuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG5AbWl4aW4gbXEoXHJcbiAgICAkZnJvbTogZmFsc2UsXHJcbiAgICAkdW50aWw6IGZhbHNlLFxyXG4gICAgJGFuZDogZmFsc2UsXHJcbiAgICAkZW1zLW9uOiBmYWxzZSxcclxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcclxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxyXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxyXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuKSB7XHJcbiAgICAkbWluLXdpZHRoOiAwO1xyXG4gICAgJG1heC13aWR0aDogMDtcclxuICAgICRtZWRpYS1xdWVyeTogJyc7XHJcblxyXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXHJcbiAgICBAaWYgJGZyb20ge1xyXG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkZnJvbSksICgkZnJvbSkpO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSksIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxyXG4gICAgQGlmICR1bnRpbCB7XHJcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkdW50aWwpLCgkdW50aWwpKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgJG1heC13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtLCBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykgLSAxcHgpOyBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcclxuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXHJcbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xyXG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICR0YXJnZXQtd2lkdGg6IGlmKCRlbXMtb24sIG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCksICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XHJcblxyXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXHJcbiAgICAgICAgQGlmIChcclxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxyXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIGFuZCAoXHJcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXHJcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8vIFF1aWNrIHNvcnRcclxuLy8vXHJcbi8vLyBAYXV0aG9yIFNhbSBSaWNoYXJkc1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gU29ydGVkIExpc3RcclxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XHJcbiAgICAkbGVzczogICgpO1xyXG4gICAgJGVxdWFsOiAoKTtcclxuICAgICRsYXJnZTogKCk7XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcclxuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XHJcblxyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGVxdWFsOiBhcHBlbmQoJGVxdWFsLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtIDwgJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcclxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxhcmdlOiBhcHBlbmQoJGxhcmdlLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcclxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XHJcbiAgICAkbWFwLXNvcnRlZDogKCk7XHJcbiAgICAkbWFwLWtleXM6IG1hcC1rZXlzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcclxuXHJcbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcclxuICAgICAgICAkaW5kZXg6IGluZGV4KCRtYXAtdmFsdWVzLCAkdmFsdWUpO1xyXG4gICAgICAgICRrZXk6IG50aCgkbWFwLWtleXMsICRpbmRleCk7XHJcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xyXG5cclxuICAgICAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxyXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxyXG4gICAgICAgICRtYXAtdmFsdWVzOiBzZXQtbnRoKCRtYXAtdmFsdWVzLCAkaW5kZXgsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJG1hcC1zb3J0ZWQ7XHJcbn1cclxuXHJcbi8vLyBBZGQgYSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xyXG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxyXG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xyXG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcclxuICAgICRtcS1icmVha3BvaW50czogX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtcS1icmVha3BvaW50cykgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XHJcbi8vL1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XHJcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIGJvZHk6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBjb2xvcjogI0MwOTg1MztcclxuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDA7XHJcblxyXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cclxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcclxuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XHJcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9hYnN0cmFjdHMvdmFyc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vYWJzdHJhY3RzL21peGluc1wiO1xyXG4ubGluay1saXN0Lmxpc3QtdmVydGljYWwge1xyXG4gICAgaDMge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRiZy1iYXNpYy1jb2xvcjtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogM3B4IDVweDtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXItYmFzaWMoKTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW4tbGVmdDogJG1pZGRsZS1tYXJnaW47XHJcbiAgICB9XHJcbn1cclxuIiwiJGV4dHJhc21hbGwtbWFyZ2luOjVweDtcclxuJHNtYWxsLW1hcmdpbjoxMHB4O1xyXG4kbWlkZGxlLW1hcmdpbjoyMHB4O1xyXG4kbGFyZ2UtbWFyZ2luOjMwcHg7XHJcbiRleHRyYWxhcmdlLW1hcmdpbjo0MHB4O1xyXG4iXX0= */
