.two-panel-cta-component {
  position: relative;
  overflow: hidden; }
  @media (min-width: 960px) {
    .two-panel-cta-component__block {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; } }
  .two-panel-cta-component__background {
    position: relative;
    background-color: #fff;
    padding: 40px 20px;
    padding-bottom: 100px;
    border: 5px solid #004D61;
    margin-right: 25px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .u-shaded-background .two-panel-cta-component__background {
      background-color: #f5f5f5; }
    @media (min-width: 960px) {
      .two-panel-cta-component__background {
        width: calc(55% + 110px);
        padding: 50px 130px 50px 50px;
        margin-right: 0px; } }
    @media (min-width: 1330px) {
      .two-panel-cta-component__background {
        padding: 70px 160px 70px 70px; } }
  .two-panel-cta-component__foreground-block {
    padding: 40px;
    background-color: #004D61;
    position: relative;
    z-index: 10; }
  .two-panel-cta-component__foreground {
    position: relative;
    z-index: 20;
    width: 95%;
    margin-top: -45px;
    margin-left: 5%;
    border-radius: 5px; }
    @media (min-width: 960px) {
      .two-panel-cta-component__foreground {
        margin-left: -110px;
        margin-top: 50px;
        margin-bottom: 50px;
        width: 45%;
        border-top: 15px solid #fff;
        border-bottom: 15px solid #fff; }
        .u-shaded-background .two-panel-cta-component__foreground {
          border-color: #f5f5f5; } }
  .two-panel-cta-component__description {
    font-size: 1.5rem;
    margin-bottom: 15px;
    color: #E3553D;
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 800; }
    @media (min-width: 960px) {
      .two-panel-cta-component__description {
        font-size: 2.25rem; } }
  .two-panel-cta-component__link {
    font-size: 1.125rem;
    font-weight: 800;
    color: #004D61;
    text-decoration: none;
    font-family: "Montserrat", Arial, sans-serif;
    display: table;
    margin-bottom: 35px;
    text-decoration: none;
    background-image: -webkit-gradient(linear, left top, right top, from(#E3553D), color-stop(50%, #E3553D), color-stop(50%, #009CDE), to(#009CDE));
    background-image: linear-gradient(to right, #E3553D, #E3553D 50%, #009CDE 50%, #009CDE);
    background-position: 100% 100%;
    background-repeat: no-repeat;
    background-size: 200% 2px;
    -webkit-transition: background-position .3s;
    transition: background-position .3s; }
    .two-panel-cta-component__link:hover {
      background-position: 0 100%; }
    @media (min-width: 1330px) {
      .two-panel-cta-component__link {
        margin-bottom: 45px; } }
  .two-panel-cta-component__foreground-description {
    color: #fff;
    font-size: 1.25rem;
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .two-panel-cta-component__foreground-description {
        margin-bottom: 35px; } }
  .two-panel-cta-component__icon {
    width: 25px;
    height: 17px;
    margin-bottom: 20px; }
    .two-panel-cta-component__icon > svg {
      fill: #fff; }
  .two-panel-cta-component__job-title {
    font-size: 1rem;
    color: #fff; }
  .two-panel-cta-component__author {
    font-size: 1rem;
    color: #fff;
    font-weight: bold; }
  .two-panel-cta-component__image-frame {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    margin-bottom: 25px;
    max-width: 155px; }
    .two-panel-cta-component__image-frame > img {
      max-width: 155px;
      width: 100%;
      height: auto; }
    @media (min-width: 960px) {
      .two-panel-cta-component__image-frame {
        margin-right: 20px;
        margin-bottom: 0px;
        width: auto;
        height: auto;
        border-radius: 0px;
        background: transparent;
        padding: 0px; } }
  @media (min-width: 960px) {
    .two-panel-cta-component__citation {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; } }
  .two-panel-cta-component__circle {
    width: 110px;
    height: 110px;
    background-color: #E3553D;
    border-radius: 50%;
    position: absolute;
    bottom: 0px;
    left: 0px;
    z-index: 5;
    -webkit-transform: translate(-35%, 50%);
            transform: translate(-35%, 50%); }
  .two-panel-cta-component__square {
    position: absolute;
    top: -45px;
    right: -55px;
    width: 220px;
    height: 112px;
    background-color: #CFC5A8;
    border-top-right-radius: 50px;
    border-bottom-left-radius: 50px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjA0LWNvbXBvbmVudHMvdHdvLXBhbmVsLWN0YS1jb21wb25lbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsInNldHRpbmdzL19jb2xvdXJzLnNjc3MiLCJ0b29scy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwic2V0dGluZ3MvX3R5cG9ncmFwaHkuc2NzcyIsInRvb2xzL21peGlucy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDSSxrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUM0RGhCO0lEM0RBO01BRVEsb0JBQWE7TUFBYixvQkFBYTtNQUFiLGFBQWE7TUFDYix5QkFBbUI7VUFBbkIsc0JBQW1CO2NBQW5CLG1CQUFtQixFQUFBLEVBRTFCO0VBQ0Q7SUFDSSxrQkFBa0I7SUFDbEIsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIseUJFUjBCO0lGUzFCLGtCQUFrQjtJQUNsQixvQkFBYTtJQUFiLG9CQUFhO0lBQWIsYUFBYTtJQUNiLDRCQUFpQjtJQUFqQiw2QkFBaUI7UUFBakIscUJBQWlCO1lBQWpCLGlCQUFpQjtJQUNqQix3QkFBdUI7UUFBdkIscUJBQXVCO1lBQXZCLHVCQUF1QixFQUFBO0lBQ3ZCO01BQ0kseUJBQXlCLEVBQUE7SUMwQ2pDO01EckRBO1FBY1Esd0JBQXdCO1FBQ3hCLDZCQUE2QjtRQUM3QixpQkFBaUIsRUFBQSxFQUt4QjtJQ2dDRDtNRHJEQTtRQW1CUSw2QkFBNkIsRUFBQSxFQUVwQztFQUNEO0lBQ0ksYUFBYTtJQUNiLHlCRTNCMEI7SUY0QjFCLGtCQUFrQjtJQUNsQixXQUFXLEVBQUE7RUFFZjtJQUNJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2Ysa0JBQWtCLEVBQUE7SUNtQnRCO01EekJBO1FBUVEsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsVUFBVTtRQUNWLDJCQUEyQjtRQUMzQiw4QkFBOEIsRUFBQTtRQUM5QjtVQUNJLHFCQUFxQixFQUFBLEVBQ3hCO0VBR1Q7SUFDSSxpQkd6Qm9EO0lIMEJwRCxtQkFBbUI7SUFDbkIsY0VqRG9CO0lGa0RwQiw0Q0k1RHNEO0lKNkR0RCxnQkFBZ0IsRUFBQTtJQ0NwQjtNRE5BO1FBT1Esa0JHL0JnRCxFQUFBLEVIaUN2RDtFQUNEO0lBQ0ksbUJHbkNvRDtJSG9DcEQsZ0JBQWdCO0lBQ2hCLGNFL0QwQjtJRmdFMUIscUJBQXFCO0lBQ3JCLDRDSXZFc0Q7SUp3RXRELGNBQWM7SUFDZCxtQkFBbUI7SUtzQ3ZCLHFCQUFxQjtJQUNyQiwrSUFBbUg7SUFBbkgsdUZBQW1IO0lBQ25ILDhCQUE4QjtJQUM5Qiw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLDJDQUFtQztJQUFuQyxtQ0FBbUMsRUFBQTtJTGxEbEM7TUtvREcsMkJBQTJCLEVBQUE7SUp4RC9CO01ESUE7UUFVUSxtQkFBbUIsRUFBQSxFQUUxQjtFQUNEO0lBQ0ksV0FBVztJQUNYLGtCR2pEb0Q7SUhrRHBELG1CQUFtQixFQUFBO0lDcEJ2QjtNRGlCQTtRQUtRLG1CQUFtQixFQUFBLEVBRTFCO0VBQ0Q7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLG1CQUFtQixFQUFBO0lBSHRCO01BS08sVUFBVSxFQUFBO0VBR2xCO0lBQ0ksZUdoRW9EO0lIaUVwRCxXQUFXLEVBQUE7RUFFZjtJQUNJLGVHcEVvRDtJSHFFcEQsV0FBVztJQUNYLGlCQUFpQixFQUFBO0VBRXJCO0lBQ0ksbUJBQVU7UUFBVixjQUFVO1lBQVYsVUFBVTtJQUNWLG1CQUFtQjtJQUNuQixnQkFBZ0IsRUFBQTtJQUhuQjtNQUtPLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0lDakRwQjtNRDBDQTtRQVVRLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsV0FBVztRQUNYLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLFlBQVksRUFBQSxFQUduQjtFQzdERDtJRDhEQTtNQUVRLG9CQUFhO01BQWIsb0JBQWE7TUFBYixhQUFhO01BQ2IseUJBQW1CO1VBQW5CLHNCQUFtQjtjQUFuQixtQkFBbUIsRUFBQSxFQUUxQjtFQUNEO0lBQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYix5QkUzSG9CO0lGNEhwQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsVUFBVTtJQUNWLHVDQUErQjtZQUEvQiwrQkFBK0IsRUFBQTtFQUVuQztJQUNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixhQUFhO0lBQ2IseUJFM0lpQjtJRjRJakIsNkJBQTZCO0lBQzdCLCtCQUErQixFQUFBIiwiZmlsZSI6IjA0LWNvbXBvbmVudHMvdHdvLXBhbmVsLWN0YS1jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uL2NvcmVcIjtcclxuXHJcbi50d28tcGFuZWwtY3RhLWNvbXBvbmVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgJl9fYmxvY2sge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZ2V0LWJyZWFrcG9pbnQobWluLCBtZWRpdW0pKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fYmFja2dyb3VuZCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcclxuICAgICAgICBib3JkZXI6IDVweCBzb2xpZCBicmFuZC1jb2xvdXIoJ2FscGhhJyk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgLnUtc2hhZGVkLWJhY2tncm91bmQgJiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZ2V0LWJyZWFrcG9pbnQobWluLCBtZWRpdW0pKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDU1JSArIDExMHB4KTtcclxuICAgICAgICAgICAgcGFkZGluZzogNTBweCAxMzBweCA1MHB4IDUwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGdldC1icmVha3BvaW50KG1pbiwgbGFyZ2UpKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDcwcHggMTYwcHggNzBweCA3MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2ZvcmVncm91bmQtYmxvY2sge1xyXG4gICAgICAgIHBhZGRpbmc6IDQwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYnJhbmQtY29sb3VyKCdhbHBoYScpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgIH1cclxuICAgICZfX2ZvcmVncm91bmQge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAyMDtcclxuICAgICAgICB3aWR0aDogOTUlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC00NXB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1JTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChnZXQtYnJlYWtwb2ludChtaW4sIG1lZGl1bSkpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMTBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgIC51LXNoYWRlZC1iYWNrZ3JvdW5kICYge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZjVmNWY1O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fZGVzY3JpcHRpb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgY29sb3I6IGJyYW5kLWNvbG91cignY2hhcmxpZScpO1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiB0eXBvZ3JhcGh5KCdmb250LWZhbWlseS1oZWFkaW5nLWJhc2UnKTtcclxuICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZ2V0LWJyZWFrcG9pbnQobWluLCBtZWRpdW0pKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDM2cHgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2xpbmsge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgICAgY29sb3I6IGJyYW5kLWNvbG91cignYWxwaGEnKTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6IHR5cG9ncmFwaHkoJ2ZvbnQtZmFtaWx5LWhlYWRpbmctYmFzZScpO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgbGluay1hbmltYXRpb24oYnJhbmQtY29sb3VyKCdicmF2bycpLCBicmFuZC1jb2xvdXIoJ2NoYXJsaWUnKSk7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChnZXQtYnJlYWtwb2ludChtaW4sIGxhcmdlKSkge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2ZvcmVncm91bmQtZGVzY3JpcHRpb24ge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChnZXQtYnJlYWtwb2ludChtaW4sIG1lZGl1bSkpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19pY29uIHtcclxuICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICA+IHN2ZyB7XHJcbiAgICAgICAgICAgIGZpbGw6ICNmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fam9iLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICAgICZfX2F1dGhvciB7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbiAgICAmX19pbWFnZS1mcmFtZSB7XHJcbiAgICAgICAgZmxleDogbm9uZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgIG1heC13aWR0aDogMTU1cHg7XHJcbiAgICAgICAgPiBpbWcge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE1NXB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGdldC1icmVha3BvaW50KG1pbiwgbWVkaXVtKSkge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgICAgIH1cclxuICAgXHJcbiAgICB9XHJcbiAgICAmX19jaXRhdGlvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChnZXQtYnJlYWtwb2ludChtaW4sIG1lZGl1bSkpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19jaXJjbGUge1xyXG4gICAgICAgIHdpZHRoOiAxMTBweDtcclxuICAgICAgICBoZWlnaHQ6IDExMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJyYW5kLWNvbG91cignY2hhcmxpZScpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgbGVmdDogMHB4O1xyXG4gICAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTM1JSwgNTAlKTtcclxuICAgIH1cclxuICAgICZfX3NxdWFyZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogLTQ1cHg7XHJcbiAgICAgICAgcmlnaHQ6IC01NXB4O1xyXG4gICAgICAgIHdpZHRoOiAyMjBweDtcclxuICAgICAgICBoZWlnaHQ6IDExMnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJyYW5kLWNvbG91cignZ29sZicpO1xyXG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MHB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwcHg7XHJcbiAgICB9XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3Rvb2xzL2Z1bmN0aW9ucy9tYXBzXCI7XHJcblxyXG4vLyAjIENvbG9yc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHBhbGV0dGU6IChcclxuICAgIGNvbG91ci1nb2JsaW46ICMzQTg0MzMsXHJcbiAgICBjb2xvdXItdHVhdGFyYTogIzNDM0MzQixcclxuICAgIGNvbG91ci1hc3Ryb25hdXQtYmx1ZTogIzAwNEQ2MSxcclxuICAgIGNvbG91ci1jZXJ1bGVhbjogIzAwOUNERSxcclxuICAgIGNvbG91ci1jaGlubzogI0NGQzVBOCxcclxuICAgIGNvbG91ci1jYW4tY2FuOiAjRDY5OEJGLFxyXG4gICAgY29sb3VyLWNpbm5hYmFyOiAjRTM1NTNELFxyXG4gICAgY29sb3VyLW15LXNpbjogI0ZGQjMyM1xyXG4pO1xyXG5cclxuQGZ1bmN0aW9uIHBhbGV0dGUoJGtleSkge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRwYWxldHRlLCAka2V5KTtcclxufVxyXG5cclxuJGJyYW5kLWNvbG91cnM6IChcclxuICAgIGFscGhhOiBwYWxldHRlKCdjb2xvdXItYXN0cm9uYXV0LWJsdWUnKSxcclxuICAgIGJyYXZvOiBwYWxldHRlKCdjb2xvdXItY2VydWxlYW4nKSxcclxuICAgIGNoYXJsaWU6IHBhbGV0dGUoJ2NvbG91ci1jaW5uYWJhcicpLFxyXG4gICAgZGVsdGE6IHBhbGV0dGUoJ2NvbG91ci1teS1zaW4nKSxcclxuICAgIGVjaG86IHBhbGV0dGUoJ2NvbG91ci1nb2JsaW4nKSxcclxuICAgIGZveHRyb3Q6IHBhbGV0dGUoJ2NvbG91ci1jYW4tY2FuJyksXHJcbiAgICBnb2xmOiBwYWxldHRlKCdjb2xvdXItY2hpbm8nKSxcclxuICAgIGhvdGVsOiBwYWxldHRlKCdjb2xvdXItdHVhdGFyYScpXHJcbik7XHJcblxyXG5AZnVuY3Rpb24gYnJhbmQtY29sb3VyKCRrZXkpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkYnJhbmQtY29sb3VycywgJGtleSk7XHJcbn1cclxuXHJcbiRmdW5jdGlvbmFsLWNvbG91cnM6IChcclxuICAgIGJvZHk6IChcclxuICAgICAgICBiYXNlOiBicmFuZC1jb2xvdXIoJ2hvdGVsJylcclxuICAgIClcclxuKTtcclxuXHJcbkBmdW5jdGlvbiBmdW5jdGlvbmFsLWNvbG91cigkc2VjdGlvbiwgJHZhbHVlKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkZnVuY3Rpb25hbC1jb2xvdXJzLCAkc2VjdGlvbiwgJHZhbHVlKTtcclxufSIsIiRyZWMtYmFzZWxpbmU6IDE2cHggIWRlZmF1bHQ7XHJcbiRyZWMtZmFsbGJhY2s6IGZhbHNlICFkZWZhdWx0O1xyXG4kcmVjLXB4LW9ubHk6IGZhbHNlICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIHJlYy1zZXBhcmF0b3IoJGxpc3QsICRzZXBhcmF0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRzZXBhcmF0b3IgPT0gXCJjb21tYVwiIG9yICRzZXBhcmF0b3IgPT0gXCJzcGFjZVwiIHtcclxuICAgIEByZXR1cm4gYXBwZW5kKCRsaXN0LCBudWxsLCAkc2VwYXJhdG9yKTtcclxuICB9IFxyXG4gIFxyXG4gIEBpZiBmdW5jdGlvbi1leGlzdHMoXCJsaXN0LXNlcGFyYXRvclwiKSA9PSB0cnVlIHtcclxuICAgIEByZXR1cm4gbGlzdC1zZXBhcmF0b3IoJGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgLy8gbGlzdC1zZXBhcmF0b3IgcG9seWZpbGwgYnkgSHVnbyBHaXJhdWRlbCAoaHR0cHM6Ly9zYXNzLWNvbXBhdGliaWxpdHkuZ2l0aHViLmlvLyNsaXN0X3NlcGFyYXRvcl9mdW5jdGlvbilcclxuICAkdGVzdC1saXN0OiAoKTtcclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICAkdGVzdC1saXN0OiBhcHBlbmQoJHRlc3QtbGlzdCwgJGl0ZW0sIHNwYWNlKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gaWYoJHRlc3QtbGlzdCA9PSAkbGlzdCwgc3BhY2UsIGNvbW1hKTtcclxufVxyXG5cclxuQG1peGluIHJlYy1iYXNlbGluZSgkem9vbTogMTAwJSkge1xyXG4gIGZvbnQtc2l6ZTogJHpvb20gLyAxNnB4ICogJHJlYy1iYXNlbGluZTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlYy1jb252ZXJ0KCR0bywgJHZhbHVlcy4uLikge1xyXG4gICRyZXN1bHQ6ICgpO1xyXG4gICRzZXBhcmF0b3I6IHJlYy1zZXBhcmF0b3IoJHZhbHVlcyk7XHJcbiAgXHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCB1bml0KCR2YWx1ZSkgPT0gXCJyZW1cIiBhbmQgJHRvID09IFwicHhcIiB7XHJcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdmFsdWUgLyAxcmVtICogJHJlYy1iYXNlbGluZSArIDBweCwgJHNlcGFyYXRvcik7XHJcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCB1bml0KCR2YWx1ZSkgPT0gXCJweFwiIGFuZCAkdG8gPT0gXCJyZW1cIiB7XHJcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdmFsdWUgLyAkcmVjLWJhc2VsaW5lICsgMHJlbSwgJHNlcGFyYXRvcik7XHJcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcImxpc3RcIiB7XHJcbiAgICAgICR2YWx1ZS1zZXBhcmF0b3I6IHJlYy1zZXBhcmF0b3IoJHZhbHVlKTtcclxuICAgICAgJHZhbHVlOiByZWMtY29udmVydCgkdG8sICR2YWx1ZS4uLik7XHJcbiAgICAgICR2YWx1ZTogcmVjLXNlcGFyYXRvcigkdmFsdWUsICR2YWx1ZS1zZXBhcmF0b3IpO1xyXG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gaWYobGVuZ3RoKCRyZXN1bHQpID09IDEsIG50aCgkcmVzdWx0LCAxKSwgJHJlc3VsdCk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHZhbHVlcy4uLikge1xyXG4gIEBpZiAkcmVjLXB4LW9ubHkge1xyXG4gICAgQHJldHVybiByZWMtY29udmVydChweCwgJHZhbHVlcy4uLik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHJlYy1jb252ZXJ0KHJlbSwgJHZhbHVlcy4uLik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gcmVtKCRwcm9wZXJ0aWVzLCAkdmFsdWVzLi4uKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnRpZXMpID09IFwibWFwXCIge1xyXG4gICAgQGVhY2ggJHByb3BlcnR5IGluIG1hcC1rZXlzKCRwcm9wZXJ0aWVzKSB7XHJcbiAgICAgIEBpbmNsdWRlIHJlbSgkcHJvcGVydHksIG1hcC1nZXQoJHByb3BlcnRpZXMsICRwcm9wZXJ0eSkpO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcclxuICAgICAgQGlmICRyZWMtZmFsbGJhY2sgb3IgJHJlYy1weC1vbmx5IHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06IHJlYy1jb252ZXJ0KHB4LCAkdmFsdWVzLi4uKTtcclxuICAgICAgfVxyXG4gICAgICBAaWYgbm90ICRyZWMtcHgtb25seSB7XHJcbiAgICAgICAgI3skcHJvcGVydHl9OiByZWMtY29udmVydChyZW0sICR2YWx1ZXMuLi4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIiR0eXBvZ3JhcGh5OiAoIFxyXG4gICAgZm9udC1mYW1pbHktYm9keS1iYXNlOiAoJ1JvYm90bycsIFwiRnJhbmtsaW4gR290aGljIE1lZGl1bVwiLCBUYWhvbWEsIHNhbnMtc2VyaWYpLCBcclxuICAgIGZvbnQtZmFtaWx5LWhlYWRpbmctYmFzZTogKCdNb250c2VycmF0JywgQXJpYWwsIHNhbnMtc2VyaWYpLCBcclxuICAgIGZvbnQtbGluZS1oZWlnaHQtYmFzZTogMS41LCBmb250LXNpemUtYmFzZTogMTZweCk7XHJcbkBmdW5jdGlvbiB0eXBvZ3JhcGh5KCRrZXkpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkdHlwb2dyYXBoeSwgJGtleSk7XHJcbn0iLCIvLyBUZXh0IG92ZXJmbG93XHJcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcclxuQG1peGluIHRleHQtb3ZlcmZsb3cge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuQG1peGluIHN0YW5kYXJkLWNvbnRhaW5lcigkbGVmdC1wYWRkaW5nOiAyNXB4LCAkcmlnaHQtcGFkZGluZzogMjVweCkge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkbGVmdC1wYWRkaW5nO1xyXG4gICAgcGFkZGluZy1yaWdodDogJHJpZ2h0LXBhZGRpbmc7XHJcbiAgICBtYXgtd2lkdGg6ICRncmlkO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbkBtaXhpbiBncmlkLWJsb2NrKCRjb2xzLCAkZ3JpZC1nYXAtaG9yaXpvbnRhbCwgJGdyaWQtZ2FwLXZlcnRpY2FsKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtJGdyaWQtZ2FwLWhvcml6b250YWwgLzI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0kZ3JpZC1nYXAtaG9yaXpvbnRhbCAvMjtcclxuICAgID4qIHtcclxuICAgICAgICB3aWR0aDogY2FsYygoKDEwMCUgLyAjeyRjb2xzfSkgLSAoI3skZ3JpZC1nYXAtaG9yaXpvbnRhbH0pKSk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdyaWQtZ2FwLXZlcnRpY2FsO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdyaWQtZ2FwLWhvcml6b250YWwgLyAyO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ3JpZC1nYXAtaG9yaXpvbnRhbCAvIDI7XHJcbiAgICB9XHJcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICBjb2x1bW4tZ2FwOiAkZ3JpZC1nYXAtaG9yaXpvbnRhbDtcclxuICAgICAgICByb3ctZ2FwOiAkZ3JpZC1nYXAtdmVydGljYWw7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgkY29scywgMWZyKTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xyXG4gICAgICAgID4qIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gTm8gQnVsbGV0cyBvbiBsaXN0c1xyXG5AbWl4aW4gbm8tYnVsbGV0IHtcclxuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxuQG1peGluIG5vLWJ1bGxldHMge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGxpIHtcclxuICAgICAgICBAaW5jbHVkZSBuby1idWxsZXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0YWJsZWZ5KCR2YWxpZ25tZW50OiBtaWRkbGUpIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhbGlnbm1lbnQ7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgQGluY2x1ZGUgZ3V0dGVycyhpbnNpZGUpO1xyXG59XHJcblxyXG5AbWl4aW4gaW1nLXJlc3BvbnNpdmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbkBtaXhpbiBmbHVpZC10eXBlKCRwcm9wZXJ0aWVzLCAkbWluLXZ3LCAkbWF4LXZ3LCAkbWluLXZhbHVlLCAkbWF4LXZhbHVlKSB7XHJcbiAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJG1pbi12YWx1ZTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXZ3KSB7XHJcbiAgICAgICAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcclxuICAgICAgICAgICAgI3skcHJvcGVydHl9OiBjYWxjKCN7JG1pbi12YWx1ZX0gKyAje3N0cmlwLXVuaXQoJG1heC12YWx1ZSAtICRtaW4tdmFsdWUpfSAqICgxMDB2dyAtICN7JG1pbi12d30pIC8gI3tzdHJpcC11bml0KCRtYXgtdncgLSAkbWluLXZ3KX0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XHJcbiAgICAgICAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcclxuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkbWF4LXZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xyXG4gICAgQGlmIHR5cGUtb2YoJG51bWJlcik9PVwibnVtYmVyXCJhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcclxuICAgICAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcclxuICAgIH1cclxuICAgIEByZXR1cm4gJG51bWJlcjtcclxufVxyXG5cclxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAoJGhlaWdodCAvICR3aWR0aCkgKiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay1hbmltYXRpb24oJGJhY2tncm91bmQ6IGJyYW5kLWNvbG91cignYnJhdm8nKSwgJGJhY2tncm91bmQtaG92ZXI6IGJyYW5kLWNvbG91cignY2hhcmxpZScpKSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkYmFja2dyb3VuZC1ob3ZlciA1MCUsICRiYWNrZ3JvdW5kIDUwJSwgJGJhY2tncm91bmQpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAycHg7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIC4zcztcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstYW5pbWF0aW9uLWFsdGVybmF0ZSgkYmFja2dyb3VuZC1ob3ZlcjogYnJhbmQtY29sb3VyKCdjaGFybGllJyksICRhbHdheXNfYWN0aXZlOiBmYWxzZSkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJhY2tncm91bmQtaG92ZXI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgLjJzIGN1YmljLWJlemllcigwLC41LDAsMSk7XHJcbiAgICB9XHJcbiAgICBAaWYgJGFsd2F5c19hY3RpdmUge1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGlvcy1kZXZpY2VzIHtcclxuICAgIEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lKSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzYWZhcmktYnJvd3NlciB7XHJcbiAgICBAbWVkaWEgbm90IGFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOi4wMDFkcGNtKSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbn0iXX0= */
