/* Media Query */
/* Colors */
/* Base */
/**
 * Mixins
 */
/**
 * Media Query
 */
/**
   * UTILITY MIXINS
   */
@media only screen and (max-width: 767.98px) {
  .home .accordion {
    overflow: hidden;
    text-overflow: ellipsis;
    word-wrap: break-word;
    max-height: 80px;
    display: block;
  }
  .home .accordion.open {
    max-height: none;
  }
  .home .accordion-cta {
    color: #ae9478;
    padding: 2px 30px 2px 0;
    margin: 15px 0 25px;
    background: url(/build/images/plus-square.08a40570.svg) right center no-repeat;
    font-weight: 600;
    display: inline-block;
  }
  .home .accordion-cta.open {
    background-image: url(/build/images/minus-square.ffcf0d71.svg);
  }
}

.home .heading {
  background: url(/build/images/bg-heading-home.6bd484ca.svg) calc(100% - 75px) 90px no-repeat #f6f6f6;
}

@media only screen and (max-width: 1365.98px) {
  .home .heading {
    background: url(/build/images/bg-heading-mobile.8df7a82f.svg) center 7px no-repeat #f6f6f6;
  }
}

.home .heading .heading-content {
  width: 49%;
}

@media only screen and (max-width: 1365.98px) {
  .home .heading .heading-content {
    width: 100%;
  }
}

.home .heading .illustration {
  background-image: url(/build/images/home-mobile-bg-3.fa5fba01.webp);
  border-radius: 10px;
  background-size: cover;
  margin-bottom: 10px;
  padding: 14px;
}

.home .heading .illustration p {
  color: #ffffff;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
}

/* Media Query */
/* Colors */
/* Base */
/**
 * Mixins
 */
/**
 * Media Query
 */
/**
   * UTILITY MIXINS
   */
.courses-list {
  /*flex-wrap: wrap;*/
  display: block;
  justify-content: space-between;
}

@media only screen and (max-width: 767.98px) {
  .courses-list {
    justify-content: center;
  }
}

.courses-list .hire {
  text-align: center;
}

@media only screen and (min-width: 1680px) {
  .courses-list .hire img {
    max-width: 350px;
    height: 234px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1365.98px) {
  .courses-list .hire img {
    max-width: 350px;
    height: 234px;
  }
}

.courses-list .course-item {
  /*margin-bottom: 40px;
        margin-left: 15px;
        margin-right: 15px;*/
  margin: 40px 15px 0px;
  display: block;
  float: left;
}

@media only screen and (max-width: 767.98px) {
  .courses-list .course-item {
    margin-top: 20px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1365.98px) {
  .courses-list .course-item {
    max-width: 47%;
    margin: 30px 0px 0px 15px;
  }
}

@media only screen and (min-width: 1024px) and (max-width: 1365.98px) {
  .courses-list .course-item {
    max-width: 32%;
  }
}

.courses-list .course-item .course-item-title {
  font-size: 28px;
  line-height: 1;
}

@media only screen and (max-width: 1365.98px) {
  .courses-list .course-item .course-item-title {
    font-size: 28px;
    margin-bottom: 5px;
  }
}

.courses-list .course-item .course-item-link {
  color: #2b2b2b;
}

.courses-list .course-item .course-item-link .course-item-container {
  box-shadow: 3px 3px 14px rgba(0, 0, 0, 0.08);
  border-radius: 10px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview {
  border-radius: 10px 10px 0 0;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .icon-container {
  width: 60px;
  height: 60px;
  color: #ffffff;
  z-index: 1;
  position: absolute;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview:hover .course-teacher {
  height: 100%;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .item-title {
  position: absolute;
  color: #ffffff;
  font-size: 34px;
  font-weight: 600;
  margin: 80px auto 90px;
  justify-content: center;
}

@media only screen and (max-width: 1365.98px) {
  .courses-list .course-item .course-item-link .course-item-container .course-item-preview .item-title {
    font-size: 28px;
  }
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-teacher {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 100%);
  height: 125px;
  left: 0;
  right: 0;
  bottom: -1px;
  position: absolute;
  display: flex;
  align-items: end;
  color: #ffffff;
  padding: 0 0 10px 10px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-teacher .teacher-photo {
  width: 48px;
  padding-right: 5px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-teacher .teacher-details {
  padding: 0 0 5px 10px;
  line-height: 16px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-teacher .teacher-details .teacher-title {
  font-weight: 600;
  font-size: 14px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-teacher .teacher-details .teacher-name {
  font-size: 14px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-old-price,
.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-price {
  height: 125px;
  left: inherit;
  right: 0;
  bottom: -1px;
  position: absolute;
  display: flex;
  align-items: end;
  color: #ffffff;
  padding: 0 10px 15px 0;
  line-height: 16px;
  font-weight: 600;
  font-size: 14px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-old-price p,
.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-price p {
  background: white;
  border-radius: 2px;
  color: #a521fc;
  padding: 2px 5px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-old-price {
  right: 50px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-preview .course-old-price p {
  background: none;
  color: #ffffff;
  text-decoration: line-through;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details {
  background-color: #ffffff;
  display: flex;
  justify-content: space-between;
  padding: 20px 30px;
  font-size: 14px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details .duration,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .unit,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .difficulty {
  display: flex;
  flex-direction: column;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details .duration .course-item-details-title,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .unit .course-item-details-title,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .difficulty .course-item-details-title {
  font-weight: 600;
  font-size: 14px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details .duration .course-item-details-text,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .unit .course-item-details-text,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .difficulty .course-item-details-text {
  font-size: 14px;
  display: flex;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details .duration .course-item-details-text .moon,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .unit .course-item-details-text .moon,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .difficulty .course-item-details-text .moon {
  width: 12px;
  height: 13px;
  display: block;
  margin: 3px 4px 0 0;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details .duration .course-item-details-text .moon.empty svg,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .unit .course-item-details-text .moon.empty svg,
.courses-list .course-item .course-item-link .course-item-container .course-item-details .difficulty .course-item-details-text .moon.empty svg {
  fill: none;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details.promote {
  padding: 30px 30px;
}

.courses-list .course-item .course-item-link .course-item-container .course-item-details.promote span {
  width: 100%;
  font-weight: 600;
  font-size: 18px;
  color: #a521fc;
}

@media only screen and (min-width: 768px) and (max-width: 1365.98px) {
  .courses-list .swiper-slide .course-item {
    max-width: 100%;
  }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGNGNUdUO0VFNkdTLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGVBQWU7QUErQ3ZDOztBQXpLQTs7RUE2SDRCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsY0Y5R1o7RUUrR1ksZ0JBQWdCO0FBaUQ1Qzs7QUFqTEE7RUFxSXdCLFdBQVc7QUFnRG5DOztBQXJMQTtFQXdJNEIsZ0JBQWdCO0VBQ2hCLGNGL0hiO0VFZ0lhLDZCQUE2QjtBQWlEekQ7O0FBM0xBO0VBZ0pvQix5QkZ0SUw7RUV1SUssYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIsZUFBZTtBQStDbkM7O0FBbk1BOzs7RUF3SndCLGFBQWE7RUFDYixzQkFBc0I7QUFpRDlDOztBQTFNQTs7O0VBMko0QixnQkFBZ0I7RUFDaEIsZUFBZTtBQXFEM0M7O0FBak5BOzs7RUErSjRCLGVBQWU7RUFDZixhQUFhO0FBd0R6Qzs7QUF4TkE7OztFQWtLZ0MsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2QsbUJBQW1CO0FBNERuRDs7QUFqT0E7OztFQXdLd0MsVUFBVTtBQStEbEQ7O0FBdk9BO0VBa0xvQixrQkFBa0I7QUF5RHRDOztBQTNPQTtFQW9Md0IsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsY0Z0S1I7QUVpT2hCOztBRC9OTTtFQ25CTjtJQWlNZ0IsZUFBZTtFQXNEN0I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zYXNzL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaG9tZS5zY3NzIiwid2VicGFjazovLy8uLi9zYXNzL2Fic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL3Nhc3MvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb3Vyc2UtaXRlbS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIE1lZGlhIFF1ZXJ5ICovXG4kZGVza3RvcF9sYXB0b3A6ICcobWluLXdpZHRoOiAxMzY2cHgpJztcbiRkZXNrdG9wOiAnKG1pbi13aWR0aDogMTY4MHB4KSc7XG4kbGFwdG9wOiAnKG1pbi13aWR0aDogMTM2NnB4KSBhbmQgKG1heC13aWR0aDogMTY3OS45OHB4KSc7XG4kdGFibGV0OiAnKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMzY1Ljk4cHgpJztcbiR0YWJsZXRfbGFuZHNjYXBlOiAnKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTM2NS45OHB4KSc7XG4kdGFibGV0X3BvcnRyYWl0OiAnKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzLjk4cHgpJztcbiRtb2JpbGU6ICcobWF4LXdpZHRoOiA3NjcuOThweCknO1xuJG1vYmlsZV9sYW5kc2NhcGU6ICcobWluLXdpZHRoOiA1NjhweCkgYW5kIChtYXgtd2lkdGg6IDc2Ny45OHB4KSc7XG4kbW9iaWxlX3BvcnRyYWl0OiAnKG1heC13aWR0aDogNTY3Ljk4cHgpJztcbiR0YWJsZXRfbW9iaWxlOiAnKG1heC13aWR0aDogMTM2NS45OHB4KSc7XG5cbi8qIENvbG9ycyAqL1xuJHdoaXRlOiAjZmZmZmZmO1xuJGJsYWNrOiAjMDAwMDAwO1xuJGdyYXlMaWdodDogI2Y2ZjZmNjtcbiRncmF5TGlnaHRIb3ZlcjogZGFya2VuKCNmNmY2ZjYsIDEwJSk7XG4kZ3JleURhcmtlcjogIzJiMmIyYjtcbiRncmV5RGFyazogIzNhM2EzYTtcbiRncmV5RGFya0hvdmVyOiBkYXJrZW4oIzNhM2EzYSwgMTAlKTtcbiRwdXJwbGU6ICNhNTIxZmM7XG4kcHVycGxlSG92ZXI6IGRhcmtlbigjYTUyMWZjLCAxMCUpO1xuJGJyb3duOiAjYWU5NDc4O1xuJGJyb3duSG92ZXI6IGRhcmtlbigjYWU5NDc4LCAxMCUpO1xuJGdyZXlGb3JtOiAjZDVkNWQ1O1xuJHBpbms6ICNmZjVlZGY7XG5cbi8qIEJhc2UgKi9cbiRmb250LWZhbWlseS1iYXNlOiAnV29yayBTYW5zJywgSGVsdmV0aWNhO1xuJGZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xuJGZvbnQtc2l6ZS10aXRsZTogODBweDtcbiRsaW5lLWhlaWdodC1iYXNlOiAxLjQzO1xuJGNvbG9yLWJhc2U6ICRncmV5RGFyaztcbiRiZ0NvbG9yLWJhc2U6ICR3aGl0ZTtcbiRwcmltYXJ5OiAkcHVycGxlO1xuJGxpbmstZGVjb3JhdGlvbjogbm9uZTtcbiRzcGFjZXItbWVkaXVtOiAxMHB4O1xuJHNwYWNlci1zbWFsbDogNXB4OyIsIi8qKlxuICogTWl4aW5zXG4gKi9cblxuLyoqXG4gKiBNZWRpYSBRdWVyeVxuICovXG5cbiBAbWl4aW4gc2NyZWVuKCRzaXplKSB7XG4gICAgQGlmICRzaXplID09IGRlc2t0b3BfbGFwdG9wIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skZGVza3RvcF9sYXB0b3B9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSBkZXNrdG9wIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skZGVza3RvcH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IGxhcHRvcCB7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICN7JGxhcHRvcH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IHRhYmxldCB7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICN7JHRhYmxldH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IHRhYmxldF9sYW5kc2NhcGUge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyR0YWJsZXRfbGFuZHNjYXBlfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gdGFibGV0X3BvcnRyYWl0IHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skdGFibGV0X3BvcnRyYWl0fSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gbW9iaWxlIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skbW9iaWxlfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gbW9iaWxlX2xhbmRzY2FwZSB7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICN7JG1vYmlsZV9sYW5kc2NhcGV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSBtb2JpbGVfcG9ydHJhaXQge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyRtb2JpbGVfcG9ydHJhaXR9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSB0YWJsZXRfbW9iaWxlIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skdGFibGV0X21vYmlsZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skc2l6ZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBVVElMSVRZIE1JWElOU1xuICAgKi9cbiAgXG4gIC8vIENsZWFyZml4XG4gIEBtaXhpbiBjbGVhcmZpeCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gcmVtb3ZlIGJhc2Ugc3R5bGUgaW5wdXQgb2YgYWxsIGJyb3dzZXJcbiAgQG1peGluIHJlbW92ZS1icm93c2VyLXN0eWxlKCkge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogV2ViS2l0ICovXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lOyAvKiBNb3ppbGxhICovXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuICBcbiAgLy8gUGxhY2Vob2xkZXJcbiAgQG1peGluIG9wdGlvbmFsLWF0LXJvb3QoJHNlbCkge1xuICAgIEBhdC1yb290ICN7aWYobm90ICYsICRzZWwsIHNlbGVjdG9yLWFwcGVuZCgmLCAkc2VsKSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBcbiAgQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgICBAaW5jbHVkZSBvcHRpb25hbC1hdC1yb290KCc6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXInKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIFxuICAgIEBpbmNsdWRlIG9wdGlvbmFsLWF0LXJvb3QoJzotbW96LXBsYWNlaG9sZGVyJykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICBcbiAgICBAaW5jbHVkZSBvcHRpb25hbC1hdC1yb290KCc6Oi1tb3otcGxhY2Vob2xkZXInKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIFxuICAgIEBpbmNsdWRlIG9wdGlvbmFsLWF0LXJvb3QoJzotbXMtaW5wdXQtcGxhY2Vob2xkZXInKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIFRleHQgb3ZlcmZsb3dcbiAgQG1peGluIHRleHQtb3ZlcmZsb3coKSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIFxuICAvLyBSZXRpbmFcbiAgQG1peGluIHJldGluYSgkaW1hZ2UsICR3aWR0aCwgJGhlaWdodCkge1xuICAgIEBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIuNi8yKSxcbiAgICAgICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gICAgICAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS4zKSxcbiAgICAgIChtaW4tcmVzb2x1dGlvbjogMS4zZHBweCkge1xuICAgICAgLyogU2VydmluZyAyeCBpbWFnZSBvbiBSZXRpbmEgZGlzcGxheSAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRpbWFnZSk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gICIsIkBpbXBvcnQgJ3Nhc3MvYWJzdHJhY3RzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdzYXNzL2Fic3RyYWN0cy9taXhpbnMnO1xuXG4uaG9tZSB7XG4gICAgQGluY2x1ZGUgc2NyZWVuKG1vYmlsZSkge1xuICAgICAgICAuYWNjb3JkaW9uIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYWNjb3JkaW9uLWN0YSB7XG4gICAgICAgICAgICBjb2xvcjogJGJyb3duO1xuICAgICAgICAgICAgcGFkZGluZzogMnB4IDMwcHggMnB4IDA7XG4gICAgICAgICAgICBtYXJnaW46IDE1cHggMCAyNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL3N2Zy9wbHVzLXNxdWFyZS5zdmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9zdmcvbWludXMtc3F1YXJlLnN2Z1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9zdmcvYmctaGVhZGluZy1ob21lLnN2Z1wiKSBjYWxjKDEwMCUgLSA3NXB4KSA5MHB4IG5vLXJlcGVhdCAgJGdyYXlMaWdodDtcbiAgICAgICAgQGluY2x1ZGUgc2NyZWVuKHRhYmxldF9tb2JpbGUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9zdmcvYmctaGVhZGluZy1tb2JpbGUuc3ZnXCIpIGNlbnRlciA3cHggbm8tcmVwZWF0ICAkZ3JheUxpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkaW5nLWNvbnRlbnQge1xuICAgICAgICAgICAgd2lkdGg6IDQ5JTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNjcmVlbih0YWJsZXRfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5pbGx1c3RyYXRpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2hvbWUtbW9iaWxlLWJnLTMud2VicFwiKTsgXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OyBcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7IFxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDsgXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IFxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59IiwiLyogTWVkaWEgUXVlcnkgKi9cbiRkZXNrdG9wX2xhcHRvcDogJyhtaW4td2lkdGg6IDEzNjZweCknO1xuJGRlc2t0b3A6ICcobWluLXdpZHRoOiAxNjgwcHgpJztcbiRsYXB0b3A6ICcobWluLXdpZHRoOiAxMzY2cHgpIGFuZCAobWF4LXdpZHRoOiAxNjc5Ljk4cHgpJztcbiR0YWJsZXQ6ICcobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEzNjUuOThweCknO1xuJHRhYmxldF9sYW5kc2NhcGU6ICcobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWF4LXdpZHRoOiAxMzY1Ljk4cHgpJztcbiR0YWJsZXRfcG9ydHJhaXQ6ICcobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjMuOThweCknO1xuJG1vYmlsZTogJyhtYXgtd2lkdGg6IDc2Ny45OHB4KSc7XG4kbW9iaWxlX2xhbmRzY2FwZTogJyhtaW4td2lkdGg6IDU2OHB4KSBhbmQgKG1heC13aWR0aDogNzY3Ljk4cHgpJztcbiRtb2JpbGVfcG9ydHJhaXQ6ICcobWF4LXdpZHRoOiA1NjcuOThweCknO1xuJHRhYmxldF9tb2JpbGU6ICcobWF4LXdpZHRoOiAxMzY1Ljk4cHgpJztcblxuLyogQ29sb3JzICovXG4kd2hpdGU6ICNmZmZmZmY7XG4kYmxhY2s6ICMwMDAwMDA7XG4kZ3JheUxpZ2h0OiAjZjZmNmY2O1xuJGdyYXlMaWdodEhvdmVyOiBkYXJrZW4oI2Y2ZjZmNiwgMTAlKTtcbiRncmV5RGFya2VyOiAjMmIyYjJiO1xuJGdyZXlEYXJrOiAjM2EzYTNhO1xuJGdyZXlEYXJrSG92ZXI6IGRhcmtlbigjM2EzYTNhLCAxMCUpO1xuJHB1cnBsZTogI2E1MjFmYztcbiRwdXJwbGVIb3ZlcjogZGFya2VuKCNhNTIxZmMsIDEwJSk7XG4kYnJvd246ICNhZTk0Nzg7XG4kYnJvd25Ib3ZlcjogZGFya2VuKCNhZTk0NzgsIDEwJSk7XG4kZ3JleUZvcm06ICNkNWQ1ZDU7XG4kcGluazogI2ZmNWVkZjtcblxuLyogQmFzZSAqL1xuJGZvbnQtZmFtaWx5LWJhc2U6ICdXb3JrIFNhbnMnLCBIZWx2ZXRpY2E7XG4kZm9udC1zaXplLWJhc2U6IDE2cHg7XG4kZm9udC1zaXplLXRpdGxlOiA4MHB4O1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNDM7XG4kY29sb3ItYmFzZTogJGdyZXlEYXJrO1xuJGJnQ29sb3ItYmFzZTogJHdoaXRlO1xuJHByaW1hcnk6ICRwdXJwbGU7XG4kbGluay1kZWNvcmF0aW9uOiBub25lO1xuJHNwYWNlci1tZWRpdW06IDEwcHg7XG4kc3BhY2VyLXNtYWxsOiA1cHg7IiwiLyoqXG4gKiBNaXhpbnNcbiAqL1xuXG4vKipcbiAqIE1lZGlhIFF1ZXJ5XG4gKi9cblxuIEBtaXhpbiBzY3JlZW4oJHNpemUpIHtcbiAgICBAaWYgJHNpemUgPT0gZGVza3RvcF9sYXB0b3Age1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyRkZXNrdG9wX2xhcHRvcH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IGRlc2t0b3Age1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyRkZXNrdG9wfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gbGFwdG9wIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skbGFwdG9wfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gdGFibGV0IHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skdGFibGV0fSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gdGFibGV0X2xhbmRzY2FwZSB7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICN7JHRhYmxldF9sYW5kc2NhcGV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSB0YWJsZXRfcG9ydHJhaXQge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyR0YWJsZXRfcG9ydHJhaXR9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSBtb2JpbGUge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyRtb2JpbGV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSBtb2JpbGVfbGFuZHNjYXBlIHtcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgI3skbW9iaWxlX2xhbmRzY2FwZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IG1vYmlsZV9wb3J0cmFpdCB7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICN7JG1vYmlsZV9wb3J0cmFpdH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRzaXplID09IHRhYmxldF9tb2JpbGUge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyR0YWJsZXRfbW9iaWxlfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAjeyRzaXplfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIFVUSUxJVFkgTUlYSU5TXG4gICAqL1xuICBcbiAgLy8gQ2xlYXJmaXhcbiAgQG1peGluIGNsZWFyZml4IHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG4gIFxuICAvLyByZW1vdmUgYmFzZSBzdHlsZSBpbnB1dCBvZiBhbGwgYnJvd3NlclxuICBAbWl4aW4gcmVtb3ZlLWJyb3dzZXItc3R5bGUoKSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvKiBXZWJLaXQgKi9cbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIE1vemlsbGEgKi9cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG4gIFxuICAvLyBQbGFjZWhvbGRlclxuICBAbWl4aW4gb3B0aW9uYWwtYXQtcm9vdCgkc2VsKSB7XG4gICAgQGF0LXJvb3QgI3tpZihub3QgJiwgJHNlbCwgc2VsZWN0b3ItYXBwZW5kKCYsICRzZWwpKX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIFxuICBAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAgIEBpbmNsdWRlIG9wdGlvbmFsLWF0LXJvb3QoJzo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcicpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgXG4gICAgQGluY2x1ZGUgb3B0aW9uYWwtYXQtcm9vdCgnOi1tb3otcGxhY2Vob2xkZXInKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIFxuICAgIEBpbmNsdWRlIG9wdGlvbmFsLWF0LXJvb3QoJzo6LW1vei1wbGFjZWhvbGRlcicpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgXG4gICAgQGluY2x1ZGUgb3B0aW9uYWwtYXQtcm9vdCgnOi1tcy1pbnB1dC1wbGFjZWhvbGRlcicpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBcbiAgLy8gVGV4dCBvdmVyZmxvd1xuICBAbWl4aW4gdGV4dC1vdmVyZmxvdygpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgXG4gIC8vIFJldGluYVxuICBAbWl4aW4gcmV0aW5hKCRpbWFnZSwgJHdpZHRoLCAkaGVpZ2h0KSB7XG4gICAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gICAgICAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi42LzIpLFxuICAgICAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4zKSxcbiAgICAgIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgKG1pbi1yZXNvbHV0aW9uOiAxLjNkcHB4KSB7XG4gICAgICAvKiBTZXJ2aW5nIDJ4IGltYWdlIG9uIFJldGluYSBkaXNwbGF5ICovXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGltYWdlKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJHdpZHRoICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgIiwiQGltcG9ydCAnLi4vc2Fzcy9hYnN0cmFjdHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL3Nhc3MvYWJzdHJhY3RzL21peGlucyc7XG5cbi5jb3Vyc2VzLWxpc3Qge1xuICAgIC8qZmxleC13cmFwOiB3cmFwOyovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIEBpbmNsdWRlIHNjcmVlbihtb2JpbGUpIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5oaXJlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNjcmVlbihkZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIzNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgc2NyZWVuKHRhYmxldCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMzRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgLmNvdXJzZS1pdGVtIHtcbiAgICAgICAgLyptYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyovXG4gICAgICAgIG1hcmdpbjogNDBweCAxNXB4IDBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBzY3JlZW4obW9iaWxlKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHNjcmVlbih0YWJsZXQpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDclO1xuICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDBweCAwcHggMTVweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBzY3JlZW4odGFibGV0X2xhbmRzY2FwZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jb3Vyc2UtaXRlbS10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNjcmVlbih0YWJsZXRfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY291cnNlLWl0ZW0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlEYXJrZXI7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5jb3Vyc2UtaXRlbS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDNweCAzcHggMTRweCByZ2JhKDAsMCwwLDAuMDgpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLmNvdXJzZS1pdGVtLXByZXZpZXcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMCAwO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAuaWNvbi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIC5jb3Vyc2UtdGVhY2hlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLml0ZW0tdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDgwcHggYXV0byA5MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzY3JlZW4odGFibGV0X21vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuY291cnNlLXRlYWNoZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAwLCAwLCAwKSAwJSwgJGJsYWNrIDEwMCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxMHB4IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAudGVhY2hlci1waG90byB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRlYWNoZXItZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDVweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZWFjaGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGVhY2hlci1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuY291cnNlLW9sZC1wcmljZSxcbiAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEyNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4IDE1cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHVycGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuY291cnNlLW9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY291cnNlLWl0ZW0tZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgLmR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAudW5pdCxcbiAgICAgICAgICAgICAgICAgICAgLmRpZmZpY3VsdHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsgXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1pdGVtLWRldGFpbHMtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1pdGVtLWRldGFpbHMtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1vb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAzcHggNHB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5lbXB0eSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb3Vyc2UtaXRlbS1kZXRhaWxzLnByb21vdGUge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwdXJwbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBzY3JlZW4odGFibGV0KSB7XG4gICAgICAgIC5zd2lwZXItc2xpZGUge1xuICAgICAgICAgICAgLmNvdXJzZS1pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/