/* ----------
 @ Bourbon
---------- */
/* ----------
 @ Bootstrap Variables
---------- */
/* ----------
 @ Custom Variables
---------- */
/* --------------------
 @@ Project Specific Variables
-------------------- */
/* ----------
 @ Options
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Misc
---------- */
/* ----------
 @ Custom Utilities
---------- */
/* Project specific mixins */
/* ----------
 @ A mixin to handle some site entity colors
---------- */
/* --------------------
 @@ Mixins
-------------------- */
/* ----------
 @ Maintain Aspect Ratio
	- *** requires that the element has an inner container element if there is inner content
	- $x => x portion of ratio
	- $y => y portion of ratio
    - $c => set to 'false' to skip :first-child styling
---------- */
/* ----------
 @ Background Image
	- Shortcut for linking images in the configured images folder
	- $i => image file name (relative to images folder)
	- $rest => any additional 'background' property shortcut declarations (ie: no-repeat)
---------- */
/* ----------
 @ Size
 	- Shortcut for setting height and width
 	- $width => width of element
 	- $height => height of element
 	- Single value will set both values (e.g. size(100%);
---------- */
/* --------------------
 @@ Functions
-------------------- */
/* ----------
 @ Color Get
 	- get value from the $theme-colors map
---------- */
/* ----------
 @ Breakpoint Get
 	- get value from the $grid-breakpoints map
 	- $type => 'max' | 'min', depending on media query type
---------- */
/* ----------
 @ Rems
	- convert pixels to rems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Map Deep Get
 	- get value from nested maps
---------- */
/* ----------
 @ Weight Get
 	- get value from the $font-weights map
---------- */
.c-banner-large {
  margin: 0;
}

.c-banner-large + * {
  margin-top: 5rem;
}

.c-banner-large__swoop {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
  min-height: 40rem;
  z-index: -1;
}

.c-banner-large__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  max-width: 80%;
  height: 40rem;
  z-index: 0;
  padding-top: 0;
}

.c-banner-large__pre-title {
  color: #ffcd00;
}

.c-banner-large__title {
  color: #fff;
  line-height: 1.15152;
}

@media only screen and (min-width: 1900px) {
  .c-banner-large__content {
    height: 37.8vw;
  }
}

@media only screen and (max-width: 768px) {
  .c-banner-large + * {
    margin-top: 3rem;
  }
  .c-banner-large__content {
    height: 23rem;
  }
  .c-banner-large__swoop {
    min-height: 24rem;
  }
}

@media only screen and (max-width: 640px) {
  .c-banner-large__pre-title {
    font-size: 1.05556rem;
  }
  .c-banner-large__title {
    font-size: 2.22222rem;
  }
}

.c-podcast-host {
  position: relative;
  margin: 11rem calc(1476px / 12 * 1) 0;
  padding: 4.4rem 6rem;
  color: #fff;
  background-color: #2670c2;
  background-image: url("../../img/beadwork-single-blue.svg");
  background-repeat: no-repeat;
  background-size: 30rem auto;
  background-position: top -6rem right -1rem;
  border-radius: 10px;
}

.c-podcast-host__image-wrapper {
  position: absolute;
  top: -5.5rem;
  left: -5.5rem;
  width: 11rem;
  height: 11rem;
  border: 10px solid #2670c2;
  border-radius: 50%;
  overflow: hidden;
}

.c-podcast-host__blurb {
  overflow: hidden;
}

.c-podcast-host__expand-btn {
  display: none;
  margin: 2rem auto 0;
}

@media only screen and (max-width: 1439px) {
  .c-podcast-host {
    margin: 11rem calc(100% / 12 * 1) 0;
  }
  .c-podcast-host__image-wrapper {
    left: calc(100% / 12 * 1 * -1);
  }
}

@media only screen and (max-width: 768px) {
  .c-podcast-host {
    margin: 11rem 0 0;
    padding: 6rem 1rem 1rem;
  }
  .c-podcast-host__image-wrapper {
    width: 10rem;
    height: 10rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    border-width: 7px;
  }
  .c-podcast-host__blurb {
    height: calc((1rem * 1.4 * 6) + 1rem + (1.33333rem * 1.3));
  }
  .c-podcast-host__expand-btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.c-podcast-card-large {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #2e2e2e;
  background-color: #fff;
  border-radius: 10px;
  -webkit-box-shadow: 3px 3px 13px rgba(0, 0, 0, 0.075);
          box-shadow: 3px 3px 13px rgba(0, 0, 0, 0.075);
  overflow: hidden;
  -webkit-transition: -webkit-transform 150ms ease-out;
  transition: -webkit-transform 150ms ease-out;
  transition: transform 150ms ease-out;
  transition: transform 150ms ease-out, -webkit-transform 150ms ease-out;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.c-podcast-card-large:hover, .c-podcast-card-large:focus {
  text-decoration: none;
  color: #2e2e2e;
  -webkit-transform: scale(1.03) !important;
          transform: scale(1.03) !important;
}

.c-podcast-card-large__image-wrapper {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background-color: #2670c2;
}

.c-podcast-card-large__image-wrapper::before {
  content: '';
  width: 0;
  height: 0;
  padding-bottom: 65%;
}

.c-podcast-card-large__image {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-podcast-card-large__content {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 0;
  padding: 2rem;
}

.c-podcast-card-large__date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: calc((2rem + 1.5rem + 1rem) * -1);
  padding: 1.5rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  background-color: #ffcd00;
}

.c-podcast-card-large__date::before {
  content: '';
  width: 2px;
  height: 1em;
  margin-right: 0.5em;
  background-color: #ff6a13;
}

.c-podcast-card-large__title {
  margin-top: 2rem;
  font-family: kiro, sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.11111;
}

.c-podcast-card-large__blurb {
  margin-bottom: 1.5rem;
}

.c-podcast-card-large__link {
  --link-color: #0057b7;
  margin-top: auto;
}

.c-podcasts {
  margin-top: 5rem;
}

.c-podcasts__items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.c-podcasts__item {
  width: calc((100% - 2rem) / 2);
  margin-top: 2rem;
}

.c-podcasts__item:nth-child(even) {
  margin-left: 2rem;
}

@media only screen and (max-width: 768px) {
  .c-podcasts {
    margin-top: 3rem;
  }
  .c-podcasts__item {
    width: 100%;
    margin-top: 2rem;
  }
  .c-podcasts__item:nth-child(even) {
    margin-left: 0;
  }
}

.c-podcasts-intro {
  position: relative;
}

.c-podcasts-intro::before {
  content: '';
  position: absolute;
  top: -18rem;
  right: 0;
  display: block;
  width: 50rem;
  height: 53rem;
  background-image: url("../../img/beadwork-single-rotated-colour.svg");
  background-position: right -30rem top 0;
  background-repeat: no-repeat;
  background-size: contain;
}

.post-type-archive-podcasts .g-footer {
  margin-top: 8rem;
}

@media only screen and (max-width: 1439px) {
  .c-podcasts-intro::before {
    top: -12rem;
  }
}

@media only screen and (max-width: 991px) {
  .c-podcasts-intro::before {
    top: -10rem;
    width: 30rem;
    background-position: right -18rem top 0;
  }
}

@media only screen and (max-width: 768px) {
  .c-podcasts-intro::before {
    top: -8rem;
    width: 25rem;
    background-position: right -15rem top 0;
  }
  .post-type-archive-podcasts .g-footer {
    margin-top: 6rem;
  }
}

@media only screen and (max-width: 480px) {
  .c-podcasts-intro::before {
    top: -7rem;
    width: 20rem;
    background-position: right -12rem top 0;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl91dGlsaXRpZXMuc2NzcyIsInBhZ2UtdGVtcGxhdGVzL2FyY2hpdmUtcG9kY2FzdHMuY3NzIiwiX2N1c3RvbS11dGlsaXRpZXMuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIl9taXhpbnMuc2NzcyIsIi4uLy4uLy4uL2Jhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvX2Jhbm5lci1sYXJnZS5zY3NzIiwiY29tcG9uZW50cy9fcG9kY2FzdC1ob3N0LnNjc3MiLCJjb21wb25lbnRzL19wb2RjYXN0LWNhcmQtbGFyZ2Uuc2NzcyIsImNvbXBvbmVudHMvX3BvZGNhc3RzLnNjc3MiLCJwYWdlLXRlbXBsYXRlcy9hcmNoaXZlLXBvZGNhc3RzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O1lDRVk7QURJWjs7WUNEWTtBQ0xaOztZRFFZO0FFUlo7O3NCRldzQjtBRVB0Qjs7WUZVWTtBRUpaOztZRk9ZO0FFK0VaOztZRjVFWTtBRThIWjs7WUYzSFk7QUVtSlo7O1lGaEpZO0FDcEJaOztZRHVCWTtBRzdCWiw0QkFBQTtBQUVBOztZSCtCWTtBSWpDWjs7c0JKb0NzQjtBSWhDdEI7Ozs7OztZSnVDWTtBSWhCWjs7Ozs7WUpzQlk7QUlYWjs7Ozs7O1lKa0JZO0FJTlo7O3NCSlNzQjtBSUx0Qjs7O1lKU1k7QUlDWjs7OztZSklZO0FJV1o7Ozs7O1lKTFk7QUlnQlo7OztZSlpZO0FJd0JaOzs7WUpwQlk7QUtsRlo7RUFDSSxTQUFTO0FMb0ZiOztBS3JGQTtFQUlRLGdCQUFnQjtBTHFGeEI7O0FLbEZBO0VBQ0ksa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLFdBQVc7QUxxRmY7O0FLbkZBO0VBQ0ksb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO01BQXRCLDBCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxhQUFhO0VBQ2IsVUFBVTtFQUNWLGNBQWM7QUxzRmxCOztBS3BGQTtFQUNJLGNIYjJCO0FGb0cvQjs7QUtyRkE7RUFDSSxXQUFXO0VBQ1gsb0JBQWdCO0FMd0ZwQjs7QUtyRkE7RUFDSTtJQUNJLGNBQWM7RUx3RnBCO0FBQ0Y7O0FLckZBO0VBQ0k7SUFFUSxnQkFBZ0I7RUx1RjFCO0VLcEZFO0lBQ0ksYUFBYTtFTHNGbkI7RUtwRkU7SUFDSSxpQkFBaUI7RUxzRnZCO0FBQ0Y7O0FLbkZBO0VBQ0k7SUFDSSxxQkQ4QjRDO0VKd0RsRDtFS3BGRTtJQUNJLHFCRDJCNEM7RUoyRGxEO0FBQ0Y7O0FNbkpBO0VBQ0ksa0JBQWtCO0VBQ2xCLHFDQUErRDtFQUMvRCxvQkFBd0M7RUFDeEMsV0FBVztFQUNYLHlCSmMyQjtFSWIzQiwyREFBMkQ7RUFDM0QsNEJBQTRCO0VBQzVCLDJCQUEyQjtFQUMzQiwwQ0FBMEM7RUFDMUMsbUJBQW1CO0FOc0p2Qjs7QU1wSkE7RUFDSSxrQkFBa0I7RUFDbEIsWUFBNkI7RUFDN0IsYUFBOEI7RUFDOUIsWUp1SnFCO0VJdEpyQixhSnNKcUI7RUlySnJCLDBCSkMyQjtFSUEzQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FOdUpwQjs7QU1ySkE7RUFDSSxnQkFBZ0I7QU53SnBCOztBTXRKQTtFQUNJLGFBQWE7RUFDYixtQkFBbUI7QU55SnZCOztBTXRKQTtFQUNJO0lBQ0ksbUNBQW1DO0VOeUp6QztFTXZKRTtJQUNJLDhCQUE4QjtFTnlKcEM7QUFDRjs7QU10SkE7RUFDSTtJQUNJLGlCQUFpQjtJQUNqQix1Qko2R2dDO0VGNEN0QztFTXZKRTtJQUNJLFlKMkh3QjtJSTFIeEIsYUowSHdCO0lJekh4QixTQUFTO0lBQ1QsbUNBQTJCO1lBQTNCLDJCQUEyQjtJQUMzQixpQkFBaUI7RU55SnZCO0VNdkpFO0lBQ0ksMERBQTBEO0VOeUpoRTtFTXZKRTtJQUNJLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0VOeUpuQjtBQUNGOztBT2pOQTtFQUNJLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBQXNCO0VBQXRCLDZCQUFzQjtNQUF0QiwwQkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLGNMc0YyQjtFS3JGM0Isc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixxREFBMEM7VUFBMUMsNkNBQTBDO0VBQzFDLGdCQUFnQjtFQUNoQixvREFBb0M7RUFBcEMsNENBQW9DO0VBQXBDLG9DQUFvQztFQUFwQyxzRUFBb0M7RUFDcEMsbUNBQTJCO1VBQTNCLDJCQUEyQjtBUG9OL0I7O0FPN05BO0VBYVEscUJBQXFCO0VBQ3JCLGNMMkV1QjtFSzFFdkIseUNBQWlDO1VBQWpDLGlDQUFpQztBUG9OekM7O0FPak5BO0VBQ0ksbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHlCTEYyQjtBRnNOL0I7O0FPdk5BO0VBTVEsV0FBVztFQUNYLFFBQVE7RUFDUixTQUFTO0VBQ1QsbUJBQW1CO0FQcU4zQjs7QU9sTkE7RUFDSSxXQUFXO0VBQ1gsb0JBQWlCO0tBQWpCLGlCQUFpQjtBUHFOckI7O0FPbk5BO0VBQ0ksbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixTQUFTO0VBQ1QsYUFBYTtBUHNOakI7O0FPcE5BO0VBQ0ksb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQiw2Q0FBc0Q7RUFDdEQsb0JBQW9CO0VBQ3BCLGVIeUNnRDtFR3hDaEQsZ0JMbUZhO0VLbEZiLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIseUJMbkMyQjtBRjBQL0I7O0FPaE9BO0VBWVEsV0FBVztFQUNYLFVBQVU7RUFDVixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLHlCTHpDdUI7QUZpUS9COztBT3JOQTtFQUNJLGdCQUFnQjtFQUNoQiw2Qkw2RG1DO0VLNURuQyxlSHdCZ0Q7RUd2QmhELGdCTGlFUztFS2hFVCxvQkFBZ0I7QVB3TnBCOztBT3ROQTtFQUNJLHFCQUFxQjtBUHlOekI7O0FPdk5BO0VBQ0kscUJBQWE7RUFDYixnQkFBZ0I7QVAwTnBCOztBUWhTQTtFQUNJLGdCQUFnQjtBUm1TcEI7O0FRalNBO0VBQ0ksb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWU7QVJvU25COztBUWxTQTtFQUNJLDhCQUErQztFQUMvQyxnQk4ySXNCO0FGMEoxQjs7QVF2U0E7RUFLUSxpQk53SWtCO0FGOEoxQjs7QVFsU0E7RUFDSTtJQUNJLGdCQUFnQjtFUnFTdEI7RVFuU0U7SUFDSSxXQUFXO0lBQ1gsZ0JOOEhrQjtFRnVLeEI7RVF2U0U7SUFLUSxjQUFjO0VScVN4QjtBQUNGOztBUzVUQTtFQUNJLGtCQUFrQjtBVCtUdEI7O0FTaFVBO0VBSVEsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsUUFBUTtFQUNSLGNBQWM7RUFDZCxZQUFZO0VBQ1osYUFBYTtFQUNiLHFFQUFxRTtFQUNyRSx1Q0FBdUM7RUFDdkMsNEJBQTRCO0VBQzVCLHdCQUF3QjtBVGdVaEM7O0FTN1RBO0VBQ0ksZ0JBQWdCO0FUZ1VwQjs7QVM3VEE7RUFDSTtJQUVRLFdBQVc7RVQrVHJCO0FBQ0Y7O0FTM1RBO0VBQ0k7SUFFUSxXQUFXO0lBQ1gsWUFBWTtJQUNaLHVDQUF1QztFVDZUakQ7QUFDRjs7QVN6VEE7RUFDSTtJQUlRLFVBQVU7SUFDVixZQUFZO0lBQ1osdUNBQXVDO0VUeVRqRDtFU3RURTtJQUNJLGdCQUFnQjtFVHdUdEI7QUFDRjs7QVNyVEE7RUFDSTtJQUVRLFVBQVU7SUFDVixZQUFZO0lBQ1osdUNBQXVDO0VUdVRqRDtBQUNGIiwiZmlsZSI6InBhZ2UtdGVtcGxhdGVzL2FyY2hpdmUtcG9kY2FzdHMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm91cmJvbi9jb3JlL19ib3VyYm9uLnNjc3NcIjtcblxuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvbWl4aW5zXCI7IiwiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQ3VzdG9tIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBQcm9qZWN0IFNwZWNpZmljIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE9wdGlvbnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVXRpbGl0aWVzXG4tLS0tLS0tLS0tICovXG4vKiBQcm9qZWN0IHNwZWNpZmljIG1peGlucyAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQSBtaXhpbiB0byBoYW5kbGUgc29tZSBzaXRlIGVudGl0eSBjb2xvcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFpbnRhaW4gQXNwZWN0IFJhdGlvXG5cdC0gKioqIHJlcXVpcmVzIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGFuIGlubmVyIGNvbnRhaW5lciBlbGVtZW50IGlmIHRoZXJlIGlzIGlubmVyIGNvbnRlbnRcblx0LSAkeCA9PiB4IHBvcnRpb24gb2YgcmF0aW9cblx0LSAkeSA9PiB5IHBvcnRpb24gb2YgcmF0aW9cbiAgICAtICRjID0+IHNldCB0byAnZmFsc2UnIHRvIHNraXAgOmZpcnN0LWNoaWxkIHN0eWxpbmdcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgU2l6ZVxuIFx0LSBTaG9ydGN1dCBmb3Igc2V0dGluZyBoZWlnaHQgYW5kIHdpZHRoXG4gXHQtICR3aWR0aCA9PiB3aWR0aCBvZiBlbGVtZW50XG4gXHQtICRoZWlnaHQgPT4gaGVpZ2h0IG9mIGVsZW1lbnRcbiBcdC0gU2luZ2xlIHZhbHVlIHdpbGwgc2V0IGJvdGggdmFsdWVzIChlLmcuIHNpemUoMTAwJSk7XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIEZ1bmN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJHRoZW1lLWNvbG9ycyBtYXBcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJyZWFrcG9pbnQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXBcbiBcdC0gJHR5cGUgPT4gJ21heCcgfCAnbWluJywgZGVwZW5kaW5nIG9uIG1lZGlhIHF1ZXJ5IHR5cGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFJlbXNcblx0LSBjb252ZXJ0IHBpeGVscyB0byByZW1zXG5cdC0gJHAgPT4gcGl4ZWwgdmFsdWVcblx0LSAkYiA9PiBiYXNlIHNpemUgKHRvIHVzZSBpbiBmb3JtdWxhKSAtIGRlZmF1bHRzIHRvICRmb250LXNpemVzIHJvb3QgdmFyaWFibGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE1hcCBEZWVwIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSBuZXN0ZWQgbWFwc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgV2VpZ2h0IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGZvbnQtd2VpZ2h0cyBtYXBcbi0tLS0tLS0tLS0gKi9cbi5jLWJhbm5lci1sYXJnZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtYmFubmVyLWxhcmdlICsgKiB7XG4gIG1hcmdpbi10b3A6IDVyZW07XG59XG5cbi5jLWJhbm5lci1sYXJnZV9fc3dvb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MHJlbTtcbiAgei1pbmRleDogLTE7XG59XG5cbi5jLWJhbm5lci1sYXJnZV9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA0MHJlbTtcbiAgei1pbmRleDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5jLWJhbm5lci1sYXJnZV9fcHJlLXRpdGxlIHtcbiAgY29sb3I6ICNmZmNkMDA7XG59XG5cbi5jLWJhbm5lci1sYXJnZV9fdGl0bGUge1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDEuMTUxNTI7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkwMHB4KSB7XG4gIC5jLWJhbm5lci1sYXJnZV9fY29udGVudCB7XG4gICAgaGVpZ2h0OiAzNy44dnc7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYy1iYW5uZXItbGFyZ2UgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICB9XG4gIC5jLWJhbm5lci1sYXJnZV9fY29udGVudCB7XG4gICAgaGVpZ2h0OiAyM3JlbTtcbiAgfVxuICAuYy1iYW5uZXItbGFyZ2VfX3N3b29wIHtcbiAgICBtaW4taGVpZ2h0OiAyNHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5jLWJhbm5lci1sYXJnZV9fcHJlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMDU1NTZyZW07XG4gIH1cbiAgLmMtYmFubmVyLWxhcmdlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjIyMjIycmVtO1xuICB9XG59XG5cbi5jLXBvZGNhc3QtaG9zdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAxMXJlbSBjYWxjKDE0NzZweCAvIDEyICogMSkgMDtcbiAgcGFkZGluZzogNC40cmVtIDZyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY3MGMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvYmVhZHdvcmstc2luZ2xlLWJsdWUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDMwcmVtIGF1dG87XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAtNnJlbSByaWdodCAtMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuLmMtcG9kY2FzdC1ob3N0X19pbWFnZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC01LjVyZW07XG4gIGxlZnQ6IC01LjVyZW07XG4gIHdpZHRoOiAxMXJlbTtcbiAgaGVpZ2h0OiAxMXJlbTtcbiAgYm9yZGVyOiAxMHB4IHNvbGlkICMyNjcwYzI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmMtcG9kY2FzdC1ob3N0X19ibHVyYiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jLXBvZGNhc3QtaG9zdF9fZXhwYW5kLWJ0biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogMnJlbSBhdXRvIDA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQzOXB4KSB7XG4gIC5jLXBvZGNhc3QtaG9zdCB7XG4gICAgbWFyZ2luOiAxMXJlbSBjYWxjKDEwMCUgLyAxMiAqIDEpIDA7XG4gIH1cbiAgLmMtcG9kY2FzdC1ob3N0X19pbWFnZS13cmFwcGVyIHtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgLyAxMiAqIDEgKiAtMSk7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYy1wb2RjYXN0LWhvc3Qge1xuICAgIG1hcmdpbjogMTFyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDZyZW0gMXJlbSAxcmVtO1xuICB9XG4gIC5jLXBvZGNhc3QtaG9zdF9faW1hZ2Utd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwcmVtO1xuICAgIGhlaWdodDogMTByZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgfVxuICAuYy1wb2RjYXN0LWhvc3RfX2JsdXJiIHtcbiAgICBoZWlnaHQ6IGNhbGMoKDFyZW0gKiAxLjQgKiA2KSArIDFyZW0gKyAoMS4zMzMzM3JlbSAqIDEuMykpO1xuICB9XG4gIC5jLXBvZGNhc3QtaG9zdF9fZXhwYW5kLWJ0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjb2xvcjogIzJlMmUyZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxM3B4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1vdXQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlOmhvdmVyLCAuYy1wb2RjYXN0LWNhcmQtbGFyZ2U6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMmUyZTJlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDMpICFpbXBvcnRhbnQ7XG59XG5cbi5jLXBvZGNhc3QtY2FyZC1sYXJnZV9faW1hZ2Utd3JhcHBlciB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY3MGMyO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2ltYWdlLXdyYXBwZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogNjUlO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2NvbnRlbnQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAycmVtO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2RhdGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiBjYWxjKCgycmVtICsgMS41cmVtICsgMXJlbSkgKiAtMSk7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZDAwO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2RhdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmExMztcbn1cblxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlX190aXRsZSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGZvbnQtZmFtaWx5OiBraXJvLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjExMTExO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2JsdXJiIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2xpbmsge1xuICAtLWxpbmstY29sb3I6ICMwMDU3Yjc7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5jLXBvZGNhc3RzIHtcbiAgbWFyZ2luLXRvcDogNXJlbTtcbn1cblxuLmMtcG9kY2FzdHNfX2l0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uYy1wb2RjYXN0c19faXRlbSB7XG4gIHdpZHRoOiBjYWxjKCgxMDAlIC0gMnJlbSkgLyAyKTtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLmMtcG9kY2FzdHNfX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmMtcG9kY2FzdHMge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cbiAgLmMtcG9kY2FzdHNfX2l0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cbiAgLmMtcG9kY2FzdHNfX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uYy1wb2RjYXN0cy1pbnRybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtcG9kY2FzdHMtaW50cm86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTE4cmVtO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA1MHJlbTtcbiAgaGVpZ2h0OiA1M3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2JlYWR3b3JrLXNpbmdsZS1yb3RhdGVkLWNvbG91ci5zdmdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0zMHJlbSB0b3AgMDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuXG4ucG9zdC10eXBlLWFyY2hpdmUtcG9kY2FzdHMgLmctZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogOHJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcbiAgLmMtcG9kY2FzdHMtaW50cm86OmJlZm9yZSB7XG4gICAgdG9wOiAtMTJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYy1wb2RjYXN0cy1pbnRybzo6YmVmb3JlIHtcbiAgICB0b3A6IC0xMHJlbTtcbiAgICB3aWR0aDogMzByZW07XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTE4cmVtIHRvcCAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmMtcG9kY2FzdHMtaW50cm86OmJlZm9yZSB7XG4gICAgdG9wOiAtOHJlbTtcbiAgICB3aWR0aDogMjVyZW07XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTE1cmVtIHRvcCAwO1xuICB9XG4gIC5wb3N0LXR5cGUtYXJjaGl2ZS1wb2RjYXN0cyAuZy1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDZyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYy1wb2RjYXN0cy1pbnRybzo6YmVmb3JlIHtcbiAgICB0b3A6IC03cmVtO1xuICAgIHdpZHRoOiAyMHJlbTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMTJyZW0gdG9wIDA7XG4gIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS1cbiBAIEN1c3RvbSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcImNoaWxkLXRoZW1lL2Fzc2V0cy9zY3NzL3ZhcmlhYmxlc1wiO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVXRpbGl0aWVzXG4tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJjaGlsZC10aGVtZS9hc3NldHMvc2Nzcy9taXhpbnNcIjtcblxuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL21peGluc1wiO1xuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL3Jlc2V0XCI7XG5AaW1wb3J0IFwiYmFzZS10aGVtZS9hc3NldHMvc2Nzcy91dGlsaXRpZXMvYmFzZVwiO1xuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL3dwLWJhc2VcIjsiLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIFByb2plY3QgU3BlY2lmaWMgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBPcHRpb25zXG4tLS0tLS0tLS0tICovXG5cbiRlbmFibGUtcmVzcG9uc2l2ZS10ZXh0Olx0dHJ1ZTtcblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG5cbiRicmFuZC1ibHVlOiAgICAgICAgICAgICMwMDU3Yjc7XG4kYnJhbmQteWVsbG93OiAgICAgICAgICAjZmZjZDAwO1xuJGJyYW5kLW9yYW5nZTogICAgICAgICAgI2ZmNmExMztcbiRicmFuZC1ncmVlbjogICAgICAgICAgICMwYjhkMmI7XG4kYnJhbmQtYmFieS1ibHVlOiAgICAgICAjNzFjNWU4O1xuJGJyYW5kLWxpZ2h0LWJsdWU6ICAgICAgIzI2NzBjMjtcbiRicmFuZC1kYXJrLWJsdWU6ICAgICAgICMwMDQ4OTg7XG5cbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICRicmFuZC1ibHVlO1xuJGJyYW5kLXNlY29uZGFyeTogICAgICAgJGJyYW5kLXllbGxvdztcbiRicmFuZC10ZXJ0aWFyeTogICAgICAgICRicmFuZC1vcmFuZ2U7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC1tZXJnZSgkdGhlbWUtY29sb3JzLCAoXG4gICAgYmx1ZTogJGJyYW5kLWJsdWUsXG4gICAgeWVsbG93OiAkYnJhbmQteWVsbG93LFxuICAgIG9yYW5nZTogJGJyYW5kLW9yYW5nZSxcbiAgICBncmVlbjogJGJyYW5kLWdyZWVuLFxuICAgIGJhYnktYmx1ZTogJGJyYW5kLWJhYnktYmx1ZSxcbiAgICBsaWdodC1ibHVlOiAkYnJhbmQtbGlnaHQtYmx1ZSxcbiAgICBkYXJrLWJsdWU6ICRicmFuZC1kYXJrLWJsdWUsXG4gICAgcHJpbWFyeTogJGJyYW5kLXByaW1hcnksXG4gICAgc2Vjb25kYXJ5OiAkYnJhbmQtc2Vjb25kYXJ5LFxuICAgIHRlcnRpYXJ5OiAkYnJhbmQtdGVydGlhcnksXG4gICAgc3VjY2VzczogIzY2YjEzMixcbiAgICBpbmZvOiAkYnJhbmQtcHJpbWFyeSxcbiAgICB3YXJuaW5nOiAkYnJhbmQteWVsbG93LFxuICAgIGRhbmdlcjogJGJyYW5kLW9yYW5nZVxuKSk7XG5cbi8vIEJhdG9jaGUgQ29sb3Vyc1xuXG4kYmF0b2NoZS1wcmltYXJ5OiAgICAgICAgICMwMDU3Yjc7IC8vIEJsdWVcbiRiYXRvY2hlLXNlY29uZGFyeTogICAgICAgIzcxYzVlODsgLy8gTGlnaHQgQmx1ZVxuJGJhdG9jaGUtdGVydGlhcnk6ICAgICAgICAjZmZjZDAwOyAvLyBZZWxsb3dcbiRiYXRvY2hlLWRhcmstYmx1ZTogICAgICAgIzAwMmI0NTsgLy8gRGFyayBCbHVlXG4kYmF0b2NoZS1vcmFuZ2U6ICAgICAgICAgICNmZjZhMTM7IC8vIE9yYW5nZVxuJGJhdG9jaGUtZ3JlZW46ICAgICAgICAgICAjNGM4ZDJiOyAvLyBHcmVlblxuJGJhdG9jaGUtcGluazogICAgICAgICAgICAjZjA0NjY0OyAvLyBQaW5rXG4kYmF0b2NoZS1wdXJwbGU6ICAgICAgICAgICM2ZTQxYjQ7IC8vIFB1cnBsZVxuJGJhdG9jaGUtdGVhbDogICAgICAgICAgICAjMDBhMGFhOyAvLyBUZWFsXG4kYmF0b2NoZS1yZWQ6ICAgICAgICAgICAgICNkMjI4Mjg7IC8vIFJlZFxuXG4kYmF0b2NoZS1jb2xvcnM6IChcbiAgICBibHVlOiAkYmF0b2NoZS1wcmltYXJ5LFxuICAgIGxpZ2h0LWJsdWU6ICRiYXRvY2hlLXNlY29uZGFyeSxcbiAgICB5ZWxsb3c6ICRiYXRvY2hlLXRlcnRpYXJ5LFxuICAgIGRhcmstYmx1ZTogJGJhdG9jaGUtZGFyay1ibHVlLFxuICAgIG9yYW5nZTogJGJhdG9jaGUtb3JhbmdlLFxuICAgIGdyZWVuOiAkYmF0b2NoZS1ncmVlbixcbiAgICBwaW5rOiAkYmF0b2NoZS1waW5rLFxuICAgIHB1cnBsZTogJGJhdG9jaGUtcHVycGxlLFxuICAgIHRlYWw6ICRiYXRvY2hlLXRlYWwsXG4gICAgcmVkOiAkYmF0b2NoZS1yZWQsXG4pO1xuXG4vLyBjZXJ0YWluIHNpdGUgZWxlbWVudHMgYW5kIHNlY3Rpb25zIGhhdmUgYXNzaWduZWQgY29sb3JzLi4uIGFzc2lnbmFibGUgaGVyZVxuJGVudGl0eS1jb2xvcnM6IChcbiAgICBhcnRpc2FuLXZpbGxhZ2U6IHBpbmssXG4gICAgYmF0b2NoZS1oaXN0b3JpYy1zaXRlOiBwdXJwbGUsXG4gICAgZWxkZXJzLWxvZGdlOiBibHVlLFxuICAgIGZvb2QtdHJ1Y2stYWxsZXk6IHJlZCxcbiAgICBsaXR0bGUtamlnZ2Vycy12aWxsYWdlOiBwdXJwbGUsXG4gICAgbWFpbi1zdGFnZTogZGFyay1ibHVlLFxuICAgIG1pY2hpZi1jb3JuZXI6IG9yYW5nZSxcbiAgICBzZWNvbmQtc3RhZ2U6IGdyZWVuLFxuICAgIHZveWFnZXVyLWdhbWVzLWRlbW9uc3RyYXRpb246IHRlYWwsXG4gICAgY29udGVzdC1hZ2VzOiBvcmFuZ2UsXG4gICAgY29udGVzdC1jYXRlZ29yaWVzOiBibHVlLFxuICAgIHZlbmRvcnM6IHB1cnBsZSxcbiAgICBzdG9yZS1jYXRlZ29yaWVzOiBvcmFuZ2UsXG4gICAgeWVsbG93OiB5ZWxsb3csXG4gICAgbGlnaHQtYmx1ZTogbGlnaHQtYmx1ZVxuKTtcblxuJGJvZHktYmc6ICAgICAgICAgICAgICAgI2YwZjBmMDtcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICMyZTJlMmU7XG5cbiRsaW5rLWNvbG9yOiAgICAgICAgICAgICRicmFuZC1wcmltYXJ5O1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpO1xuXG4kbGluZS1jb2xvcjogXHRcdFx0I2RkZDtcblxuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuXG4kYmFzZUZvbnRTaXplOiAxOHB4O1xuXG4kcm9vdEZvbnRTaXplOiBzdHJpcC11bml0KCRiYXNlRm9udFNpemUpIC8gMTYgKiAxMDAlOyAvLyBGb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zIHRoZSByb290IGZvbnQgc2l6ZSBzaG91bGQgYmUgc2V0IHRvICUsIG1vc3QgYnJvd3NlcnMgaGF2ZSBhIGJhc2UgZm9udCBzaXplIG9mIDE2cHhcblxuJGZvbnQtc2l6ZXM6IChcbiAgICByb290OiAkcm9vdEZvbnRTaXplLFxuICAgIGgxOiA2NHB4LFxuICAgIGgyOiA0MHB4LFxuICAgIGgzOiAyNHB4LFxuICAgIGg0OiAyMHB4LFxuICAgIGg1OiAyMHB4LFxuICAgIGg2OiAxOHB4LFxuICAgIGxlYWQ6IDIycHgsXG4gICAgYmxvY2txdW90ZTogNDBweFxuKTtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuXG4kbGVhZC1mb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgbGVhZCkpO1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiByZW1zKG1hcC1nZXQoJGZvbnQtc2l6ZXMsIGJsb2NrcXVvdGUpKTtcblxuJGZvbnQtZmFtaWx5LWJhc2U6IGFjdW1pbi1wcm8sIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogJGZvbnQtZmFtaWx5LWJhc2U7XG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6IGtpcm8sIHNhbnMtc2VyaWY7XG5cbiRmYS1mb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcblxuJGZvbnQtd2VpZ2h0czogKFxuICAgIGJsYWNrOiA4MDAsXG4gICAgYm9sZDogNzAwLFxuICAgIHNlbWlib2xkOiA2MDAsXG4gICAgcmVndWxhcjogNDAwLFxuICAgIGxpZ2h0OiAzMDAsXG4gICAgdGhpbjogMzAwXG4pO1xuXG4kZm9udC13ZWlnaHQtYmFzZTogbWFwLWdldCgkZm9udC13ZWlnaHRzLCByZWd1bGFyKTtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogbWFwLWdldCgkZm9udC13ZWlnaHRzLCBib2xkKTtcbiRsZWFkLWZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRmb250LXdlaWdodHMsIHNlbWktYm9sZCk7XG5cbiRsaW5lLWhlaWdodC1iYXNlOiAxLjY1O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiRsaW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiRsaW5rLWhvdmVyLWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG5cbi8qIC0tLS0tLS0tLS1cbiBAIExheW91dFxuLS0tLS0tLS0tLSAqL1xuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IFx0IDJyZW07XG4kZ3JpZC1wYWRkaW5nOlx0XHRcdCAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuXG4kdmVydGljYWwtbWFyZ2luLWJhc2U6XHQgMS41cmVtO1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAgIHhzOiAwLCAvLyBOb3Qgc3VyZSB3aHkgYnV0IHRoaXMgbXVzdCBiZSB6ZXJvXG4gICAgc206IDU3NnB4LFxuICAgIG1kOiA3NjlweCxcbiAgICBsZzogOTkycHgsXG4gICAgeGw6IDE0NDBweFxuKTtcblxuJGNvbnRhaW5lci13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpKyhzdHJpcC11bml0KCRncmlkLWd1dHRlci13aWR0aCkgKiBzdHJpcC11bml0KCRiYXNlRm9udFNpemUpKTtcblxuJGhlYWRlci1oZWlnaHQ6IDZyZW07XG5cbiRjaXJjbGUtaW1hZ2Utc2l6ZTogMTFyZW07XG4kY2lyY2xlLWltYWdlLW1vYmlsZS1zaXplOiAxMHJlbTtcblxuLyogLS0tLS0tLS0tLVxuIEAgTWlzY1xuLS0tLS0tLS0tLSAqL1xuXG4kaHItYm9yZGVyLWNvbG9yOiAkbGluZS1jb2xvcjtcbiRoci1ib3JkZXItd2lkdGg6IDFweDtcblxuJGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuJGJvcmRlci1yYWRpdXMtbGc6ICRib3JkZXItcmFkaXVzICogMS41O1xuJGJvcmRlci1yYWRpdXMtc206ICRib3JkZXItcmFkaXVzIC8gMS41OyIsIi8qIFByb2plY3Qgc3BlY2lmaWMgbWl4aW5zICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIEEgbWl4aW4gdG8gaGFuZGxlIHNvbWUgc2l0ZSBlbnRpdHkgY29sb3JzXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBnZXRFbnRpdHlDb2xvcigkZW50aXR5TmFtZSkge1xuICAgIEBpZiAobWFwLWhhcy1rZXkoJGVudGl0eS1jb2xvcnMsICRlbnRpdHlOYW1lKSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJhdG9jaGUtY29sb3JzLCBtYXAtZ2V0KCRlbnRpdHktY29sb3JzLCAkZW50aXR5TmFtZSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJhdG9jaGUtY29sb3JzLCAkZW50aXR5TmFtZSk7XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBNYWludGFpbiBBc3BlY3QgUmF0aW9cblx0LSAqKiogcmVxdWlyZXMgdGhhdCB0aGUgZWxlbWVudCBoYXMgYW4gaW5uZXIgY29udGFpbmVyIGVsZW1lbnQgaWYgdGhlcmUgaXMgaW5uZXIgY29udGVudFxuXHQtICR4ID0+IHggcG9ydGlvbiBvZiByYXRpb1xuXHQtICR5ID0+IHkgcG9ydGlvbiBvZiByYXRpb1xuICAgIC0gJGMgPT4gc2V0IHRvICdmYWxzZScgdG8gc2tpcCA6Zmlyc3QtY2hpbGQgc3R5bGluZ1xuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR4OiAxLCAkeTogMSwgJGM6IHRydWUpIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKCR5IC8gJHgpO1xuXHR9XG5cdEBpZiAoJGMgPT0gdHJ1ZSkge1xuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0QGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBCYWNrZ3JvdW5kIEltYWdlXG5cdC0gU2hvcnRjdXQgZm9yIGxpbmtpbmcgaW1hZ2VzIGluIHRoZSBjb25maWd1cmVkIGltYWdlcyBmb2xkZXJcblx0LSAkaSA9PiBpbWFnZSBmaWxlIG5hbWUgKHJlbGF0aXZlIHRvIGltYWdlcyBmb2xkZXIpXG5cdC0gJHJlc3QgPT4gYW55IGFkZGl0aW9uYWwgJ2JhY2tncm91bmQnIHByb3BlcnR5IHNob3J0Y3V0IGRlY2xhcmF0aW9ucyAoaWU6IG5vLXJlcGVhdClcbi0tLS0tLS0tLS0gKi9cblxuQG1peGluIGJnLWltYWdlKCRpLCAkcmVzdC4uLikge1xuXHRiYWNrZ3JvdW5kOiB1cmwoXCIjeyRpbWFnZXMtZm9sZGVyfS8jeyRpfVwiKSAkcmVzdDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgU2l6ZVxuIFx0LSBTaG9ydGN1dCBmb3Igc2V0dGluZyBoZWlnaHQgYW5kIHdpZHRoXG4gXHQtICR3aWR0aCA9PiB3aWR0aCBvZiBlbGVtZW50XG4gXHQtICRoZWlnaHQgPT4gaGVpZ2h0IG9mIGVsZW1lbnRcbiBcdC0gU2luZ2xlIHZhbHVlIHdpbGwgc2V0IGJvdGggdmFsdWVzIChlLmcuIHNpemUoMTAwJSk7XG4tLS0tLS0tLS0tICovXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCkge1xuXHR3aWR0aDogJHdpZHRoO1xuXHRoZWlnaHQ6ICRoZWlnaHQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgRnVuY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvciBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICR0aGVtZS1jb2xvcnMgbWFwXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBjb2xvci1nZXQoJGtleXMpIHtcblx0JGNvbG9yOiBtYXAtZGVlcC1nZXQoJHRoZW1lLWNvbG9ycywgJGtleXMpO1xuXHRAcmV0dXJuICRjb2xvcjtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgQnJlYWtwb2ludCBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcFxuIFx0LSAkdHlwZSA9PiAnbWF4JyB8ICdtaW4nLCBkZXBlbmRpbmcgb24gbWVkaWEgcXVlcnkgdHlwZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHR5cGUsICRrZXlzKSB7XG5cdCRicmVha3BvaW50OiBtYXAtZGVlcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRrZXlzKTtcblx0QGlmICgkdHlwZSA9PSAnbWF4Jyl7XG5cdFx0QHJldHVybiAkYnJlYWtwb2ludCAtIDE7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJGJyZWFrcG9pbnQ7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gcmVtcygkcCwgJGI6ICRiYXNlRm9udFNpemUpIHtcbiAgICBAcmV0dXJuIChzdHJpcC11bml0KCRwKSAvIHN0cmlwLXVuaXQoJGIpKSArIDByZW07XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1hcCBEZWVwIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSBuZXN0ZWQgbWFwc1xuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG5cdEBlYWNoICRrZXkgaW4gJGtleXMge1xuXHRcdCRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG5cdH1cblx0QHJldHVybiAkbWFwO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBXZWlnaHQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZm9udC13ZWlnaHRzIG1hcFxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gd2VpZ2h0LWdldCgka2V5cykge1xuXHQkd2VpZ2h0OiBtYXAtZGVlcC1nZXQoJGZvbnQtd2VpZ2h0cywgJGtleXMpO1xuXHRAcmV0dXJuICR3ZWlnaHQ7XG59IiwiLmMtYmFubmVyLWxhcmdlIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmICsgKiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVyZW07XG4gICAgfVxufVxuLmMtYmFubmVyLWxhcmdlX19zd29vcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQwcmVtO1xuICAgIHotaW5kZXg6IC0xO1xufVxuLmMtYmFubmVyLWxhcmdlX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogODAlO1xuICAgIGhlaWdodDogNDByZW07XG4gICAgei1pbmRleDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cbi5jLWJhbm5lci1sYXJnZV9fcHJlLXRpdGxlIHtcbiAgICBjb2xvcjogY29sb3ItZ2V0KHllbGxvdyk7XG59XG4uYy1iYW5uZXItbGFyZ2VfX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogKDM4IC8gMzMpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MDBweCkge1xuICAgIC5jLWJhbm5lci1sYXJnZV9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMzcuOHZ3O1xuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSB7XG4gICAgLmMtYmFubmVyLWxhcmdlIHsgICAgXG4gICAgICAgICYgKyAqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmMtYmFubmVyLWxhcmdlX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAyM3JlbTtcbiAgICB9XG4gICAgLmMtYmFubmVyLWxhcmdlX19zd29vcCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI0cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5jLWJhbm5lci1sYXJnZV9fcHJlLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW1zKDE5cHgpO1xuICAgIH1cbiAgICAuYy1iYW5uZXItbGFyZ2VfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW1zKDQwcHgpO1xuICAgIH1cbn0iLCIuYy1wb2RjYXN0LWhvc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46ICRjaXJjbGUtaW1hZ2Utc2l6ZSBjYWxjKCN7JGNvbnRhaW5lci13aWR0aH0gLyAxMiAqIDEpIDA7XG4gICAgcGFkZGluZzogKCRjaXJjbGUtaW1hZ2Utc2l6ZSAqIDAuNCkgNnJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQobGlnaHQtYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWcvYmVhZHdvcmstc2luZ2xlLWJsdWUuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcmVtIGF1dG87XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIC02cmVtIHJpZ2h0IC0xcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYy1wb2RjYXN0LWhvc3RfX2ltYWdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0oJGNpcmNsZS1pbWFnZS1zaXplIC8gMik7XG4gICAgbGVmdDogLSgkY2lyY2xlLWltYWdlLXNpemUgLyAyKTtcbiAgICB3aWR0aDogJGNpcmNsZS1pbWFnZS1zaXplO1xuICAgIGhlaWdodDogJGNpcmNsZS1pbWFnZS1zaXplO1xuICAgIGJvcmRlcjogMTBweCBzb2xpZCBjb2xvci1nZXQobGlnaHQtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYy1wb2RjYXN0LWhvc3RfX2JsdXJiIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmMtcG9kY2FzdC1ob3N0X19leHBhbmQtYnRuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvIDA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIHhsKSkge1xuICAgIC5jLXBvZGNhc3QtaG9zdCB7XG4gICAgICAgIG1hcmdpbjogMTFyZW0gY2FsYygxMDAlIC8gMTIgKiAxKSAwO1xuICAgIH1cbiAgICAuYy1wb2RjYXN0LWhvc3RfX2ltYWdlLXdyYXBwZXIge1xuICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLyAxMiAqIDEgKiAtMSk7XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBtZCkpIHtcbiAgICAuYy1wb2RjYXN0LWhvc3Qge1xuICAgICAgICBtYXJnaW46IDExcmVtIDAgMDtcbiAgICAgICAgcGFkZGluZzogNnJlbSAkZ3JpZC1wYWRkaW5nICRncmlkLXBhZGRpbmc7XG4gICAgfVxuICAgIC5jLXBvZGNhc3QtaG9zdF9faW1hZ2Utd3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAkY2lyY2xlLWltYWdlLW1vYmlsZS1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRjaXJjbGUtaW1hZ2UtbW9iaWxlLXNpemU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgICB9XG4gICAgLmMtcG9kY2FzdC1ob3N0X19ibHVyYiB7XG4gICAgICAgIGhlaWdodDogY2FsYygoMXJlbSAqIDEuNCAqIDYpICsgMXJlbSArICgxLjMzMzMzcmVtICogMS4zKSk7XG4gICAgfVxuICAgIC5jLXBvZGNhc3QtaG9zdF9fZXhwYW5kLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufSIsIi5jLXBvZGNhc3QtY2FyZC1sYXJnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm94LXNoYWRvdzogM3B4IDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wNzUpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2Utb3V0O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRib2R5LWNvbG9yO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDMpICFpbXBvcnRhbnQ7IC8vIFNpZGUgZWZmZWN0IG9mIEluVmlldyB0cmFuc2Zvcm1zIGJlaW5nIGRvbmUgYnkgR1NBUFxuICAgIH1cbn1cbi5jLXBvZGNhc3QtY2FyZC1sYXJnZV9faW1hZ2Utd3JhcHBlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQobGlnaHQtYmx1ZSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDY1JTtcbiAgICB9XG59XG4uYy1wb2RjYXN0LWNhcmQtbGFyZ2VfX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi5jLXBvZGNhc3QtY2FyZC1sYXJnZV9fY29udGVudCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAycmVtO1xufVxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlX19kYXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogY2FsYygoMnJlbSArIDEuNXJlbSArICN7cmVtcygxOHB4KX0pICogLTEpO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogcmVtcygxOHB4KTtcbiAgICBmb250LXdlaWdodDogd2VpZ2h0LWdldChzZW1pYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQoeWVsbG93KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItZ2V0KG9yYW5nZSk7XG4gICAgfVxufVxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogcmVtcygzNnB4KTtcbiAgICBmb250LXdlaWdodDogd2VpZ2h0LWdldChib2xkKTtcbiAgICBsaW5lLWhlaWdodDogKDQwIC8gMzYpO1xufVxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlX19ibHVyYiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuLmMtcG9kY2FzdC1jYXJkLWxhcmdlX19saW5rIHtcbiAgICAtLWxpbmstY29sb3I6ICN7Y29sb3ItZ2V0KGJsdWUpfTtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xufSIsIkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3BvZGNhc3QtY2FyZC1sYXJnZVwiO1xuXG4uYy1wb2RjYXN0cyB7XG4gICAgbWFyZ2luLXRvcDogNXJlbTtcbn1cbi5jLXBvZGNhc3RzX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uYy1wb2RjYXN0c19faXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAjeyRncmlkLWd1dHRlci13aWR0aH0pIC8gMik7XG4gICAgbWFyZ2luLXRvcDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgIFxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRncmlkLWd1dHRlci13aWR0aDtcbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkge1xuICAgIC5jLXBvZGNhc3RzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICB9XG4gICAgLmMtcG9kY2FzdHNfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgICAgICBcbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Jhbm5lci1sYXJnZVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcG9kY2FzdC1ob3N0XCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9wb2RjYXN0c1wiO1xuXG4uYy1wb2RjYXN0cy1pbnRybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMThyZW07XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDUwcmVtO1xuICAgICAgICBoZWlnaHQ6IDUzcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltZy9iZWFkd29yay1zaW5nbGUtcm90YXRlZC1jb2xvdXIuc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0zMHJlbSB0b3AgMDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIH1cbn1cbi5wb3N0LXR5cGUtYXJjaGl2ZS1wb2RjYXN0cyAuZy1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDhyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIHhsKSkge1xuICAgIC5jLXBvZGNhc3RzLWludHJvIHsgICAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IC0xMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbGcpKSB7XG4gICAgLmMtcG9kY2FzdHMtaW50cm8geyAgICBcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogLTEwcmVtO1xuICAgICAgICAgICAgd2lkdGg6IDMwcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTE4cmVtIHRvcCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBtZCkpIHtcbiAgICAuYy1wb2RjYXN0cy1pbnRybyB7ICAgIFxuICAgICAgICAvLyBwYWRkaW5nLXJpZ2h0OiAyMCU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogLThyZW07XG4gICAgICAgICAgICB3aWR0aDogMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMTVyZW0gdG9wIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBvc3QtdHlwZS1hcmNoaXZlLXBvZGNhc3RzIC5nLWZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLmMtcG9kY2FzdHMtaW50cm8geyAgICBcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogLTdyZW07XG4gICAgICAgICAgICB3aWR0aDogMjByZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMTJyZW0gdG9wIDA7XG4gICAgICAgIH1cbiAgICB9XG59Il19 */
