/* ===================================================================================
 *
 * @project        sjrw
 * @author         Caleb Zahnd <caleb@midcoast.iom>
 * @build          Fri, Jan 23, 2026 1:46 AM CST
 * @release        751b1deab150212ecea3c4f8554b86f0458f9a29 [Detached: 751b1deab150212ecea3c4f8554b86f0458f9a29]
 * @copyright      Copyright (c) 2026, Caleb Zahnd
 *
 *  Do not edit this file! This file is machine-generated and constantly overwritten.
 *  Any changes you make will be overwritten the next time the /src is compiled.
 *  Edit the /src files to make edits and updates.
 *
 * =================================================================================== */





@import url("https://fonts.googleapis.com/css2?family=Lato&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");












.span-1 {
  width: 8.3333333333%;
}

.span-2 {
  width: 16.6666666667%;
}

.span-3 {
  width: 25%;
}

.span-4 {
  width: 33.3333333333%;
}

.span-5 {
  width: 41.6666666667%;
}

.span-6 {
  width: 50%;
}

.span-7 {
  width: 58.3333333333%;
}

.span-8 {
  width: 66.6666666667%;
}

.span-9 {
  width: 75%;
}

.span-10 {
  width: 83.3333333333%;
}

.span-11 {
  width: 91.6666666667%;
}

.span-12 {
  width: 100%;
}







@font-face {
  font-family: "iconfont";
  src: url("../../assets/media/fonts/iconfont/iconfont.eot?pl06t");
  src: url("../../assets/media/fonts/iconfont/iconfont.eot?pl06t#iefix") format("eot"), url("../../assets/media/fonts/iconfont/iconfont.woff2?pl06t") format("woff2"), url("../../assets/media/fonts/iconfont/iconfont.woff?pl06t") format("woff"), url("../../assets/media/fonts/iconfont/iconfont.ttf?pl06t") format("truetype"), url("../../assets/media/fonts/iconfont/iconfont.svg?pl06t#iconfont") format("svg");
  font-weight: normal;
  font-style: normal;
}
.icon-account::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea01";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-down-long::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea02";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-down::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea03";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-left-long::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea04";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-left::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea05";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-right-long::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea06";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-right::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea07";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-up-long::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea08";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-up::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea09";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-bell::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0a";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-browser::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0b";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-calendar::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0c";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-caret-down::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0d";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-caret-left::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0e";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-caret-right::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea0f";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-caret-up::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea10";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-chat::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea11";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-check::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea12";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-checkbox-empty::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea13";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-checkbox::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea14";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-chevron-down::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea15";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-chevron-left::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea16";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-chevron-right::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea17";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-chevron-up::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea18";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-circle::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea19";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-clock::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1a";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-close-white::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1b";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-close::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1c";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-compose::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1d";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-document::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1e";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-download::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea1f";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-email-alt::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea20";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-email::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea21";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-facebook::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea22";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-home::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea23";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-info-alert::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea24";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-info::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea25";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-instagram::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea26";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-learn-alert::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea27";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-lightbulb::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea28";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-linkedin::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea29";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-loan::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2a";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-location::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2b";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-lock::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2c";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-midcoast::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2d";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-minus::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2e";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-person::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea2f";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-phone::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea30";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-pinterest::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea31";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-play-circle::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea32";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-play::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea33";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-plus::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea34";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-quote::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea35";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-reset::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea36";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-scroll-down::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea37";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-search::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea38";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-snapchat::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea39";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-star-half::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3a";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-star::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3b";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-three-dots::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3c";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-tiktok::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3d";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-twitter::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3e";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-video::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea3f";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-vimeo::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea40";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-website::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea41";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-yelp::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea42";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-youtube::before {
  font-family: "iconfont";
  speak: none;
  font-style: normal;
  font-weight: 100;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  content: "\ea43";
  font-size: 15px;
  color: inherit;
  
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


.content-type__large-text {
  height: 100%;
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  line-height: 1.2;
}
.content-type__large-text {
  font-size: 32px;
}
@media screen and (min-width: 544px) {
  .content-type__large-text {
    font-size: calc(32px + 18 * (100vw - 544px) / 896);
  }
}
@media screen and (min-width: 1440px) {
  .content-type__large-text {
    font-size: 50px;
  }
}


.content-type__metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.content-type__metric-value {
  text-align: center;
}
.content-type__metric-small-text {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  text-align: center;
}


.content-type__regular-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}


.content-type__small-text {
  height: 100%;
  font-size: 18px;
  font-size: 1.8rem;
}

.bl-multi-column {
  margin-top: 90px;
  margin-bottom: 90px;
}
.bl-multi-column > .container {
  justify-content: center;
  flex-wrap: wrap;
}
.bl-multi-column .column {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.bl-multi-column .column-gutters .column {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (max-width: 767px) {
  .bl-multi-column .column.span-1,
  .bl-multi-column .column.span-2,
  .bl-multi-column .column.span-3,
  .bl-multi-column .column.span-4,
  .bl-multi-column .column.span-5,
  .bl-multi-column .column.span-6,
  .bl-multi-column .column.span-7,
  .bl-multi-column .column.span-8,
  .bl-multi-column .column.span-9,
  .bl-multi-column .column.span-10,
  .bl-multi-column .column.span-11,
  .bl-multi-column .column.span-12 {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .bl-multi-column .column-width-full.column-2 .column {
    width: 50%;
  }
  .bl-multi-column .column-width-full.column-3 .column {
    width: 33.3333333333%;
  }
  .bl-multi-column .column-width-full.column-4 .column {
    width: 25%;
  }
  .bl-multi-column .column-width-full.column-5 .column {
    width: 20%;
  }
  .bl-multi-column .column-width-full.column-6 .column {
    width: 16.6666666667%;
  }
}
.bl-page-hero + .bl-multi-column {
  margin-top: 45px;
}
.bl-multi-column .column p {
  margin: 0;
  padding: 0;
}
.bl-multi-column .column p br {
  display: none;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbHVtbnMvc3JjL3Njc3MvYmwtY29sdW1ucy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvYmxvY2tzL19pbXBvcnQtZGVwZW5kZW5jaWVzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9jb3JlL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvZnVuY3Rpb25zL19pbml0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9jb3JlL2Z1bmN0aW9ucy9fZ2xvYmFsLWNvbmZpZy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9mdW5jdGlvbnMvX3JlbS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9mdW5jdGlvbnMvX2Jsb2ctbWF4LXdpZHRoLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9jb3JlL21peGlucy9ncmlkL19ibG9jay5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9taXhpbnMvZ3JpZC9fY29udGFpbmVyLWJyZWFrb3V0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9jb3JlL21peGlucy9ncmlkL19jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL2dyaWQvX2d1dHRlcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL2dyaWQvX3B1bGwuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL2dyaWQvX3B1c2guc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL2dyaWQvX3NwYW4uc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL19ibG9jay1lZGl0b3Iuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL19icmljay5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9taXhpbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9jb3JlL21peGlucy9fc2hhZGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL196LWluZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2Nzcy9wYXJ0aWFscy9faWNvbmZvbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL19pY29uZm9udC5zY3NzIiwiY29sdW1ucy9zcmMvc2Nzcy9jb2x1bW4tdHlwZXMvX2xhcmdlLXRleHQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zY3NzL2NvcmUvbWl4aW5zL19mbHVpZC10eXBlLnNjc3MiLCJjb2x1bW5zL3NyYy9zY3NzL2NvbHVtbi10eXBlcy9fbWV0cmljLnNjc3MiLCJjb2x1bW5zL3NyYy9zY3NzL2NvbHVtbi10eXBlcy9fcmVndWxhci10ZXh0LnNjc3MiLCJjb2x1bW5zL3NyYy9zY3NzL2NvbHVtbi10eXBlcy9fc21hbGwtdGV4dC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9taXhpbnMvX2ZvbnQtc2l6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL3Njc3MvY29yZS9taXhpbnMvX2JyZWFrcG9pbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQ1JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQ0E7QUFBQTtBQTZEUTtBQzlEUjtBQUNBO0FBQUE7QUNEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDRkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkE7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FBRUQ7RUFDQzs7O0FDM0REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QVpBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QWFBQTtFQUNJO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7O0FBMkVKO0VDOUVDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEdUVrQztFQ3RFbEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURvRUQ7RUNqRkMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0QwRTBDO0VDekUxQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHVFRDtFQ3BGQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDZFcUM7RUM1RXJDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEMEVEO0VDdkZDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEZ0YwQztFQy9FMUMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQ2RUQ7RUMxRkMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RtRnFDO0VDbEZyQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRGdGRDtFQzdGQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHNGMkM7RUNyRjNDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEbUZEO0VDaEdDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEeUZzQztFQ3hGdEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURzRkQ7RUNuR0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0Q0RndDO0VDM0Z4QyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHlGRDtFQ3RHQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRCtGbUM7RUM5Rm5DLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FENEZEO0VDekdDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEa0crQjtFQ2pHL0IsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQrRkQ7RUM1R0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RxR2tDO0VDcEdsQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRGtHRDtFQy9HQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHdHbUM7RUN2R25DLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEcUdEO0VDbEhDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEMkdxQztFQzFHckMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUR3R0Q7RUNySEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0Q4R3FDO0VDN0dyQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDJHRDtFQ3hIQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRGlIc0M7RUNoSHRDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEOEdEO0VDM0hDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEb0htQztFQ25IbkMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURpSEQ7RUM5SEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0R1SCtCO0VDdEgvQixPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRG9IRDtFQ2pJQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDBIZ0M7RUN6SGhDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEdUhEO0VDcElDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdENkh5QztFQzVIekMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQwSEQ7RUN2SUMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RnSW1DO0VDL0huQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDZIRDtFQzFJQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRG1JdUM7RUNsSXZDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEZ0lEO0VDN0lDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEc0l1QztFQ3JJdkMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURtSUQ7RUNoSkMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0R5SXdDO0VDeEl4QyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHNJRDtFQ25KQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDRJcUM7RUMzSXJDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEeUlEO0VDdEpDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEK0lpQztFQzlJakMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQ0SUQ7RUN6SkMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RrSmdDO0VDakpoQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRCtJRDtFQzVKQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHFKc0M7RUNwSnRDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEa0pEO0VDL0pDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEd0pnQztFQ3ZKaEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURxSkQ7RUNsS0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0QySmtDO0VDMUpsQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHdKRDtFQ3JLQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDhKbUM7RUM3Sm5DLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEMkpEO0VDeEtDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEaUttQztFQ2hLbkMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQ4SkQ7RUMzS0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RvS29DO0VDbktwQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRGlLRDtFQzlLQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHVLZ0M7RUN0S2hDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEb0tEO0VDakxDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEMEttQztFQ3pLbkMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUR1S0Q7RUNwTEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0Q2SytCO0VDNUsvQixPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDBLRDtFQ3ZMQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRGdMcUM7RUMvS3JDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FENktEO0VDMUxDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEbUwrQjtFQ2xML0IsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURnTEQ7RUM3TEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RzTG9DO0VDckxwQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRG1MRDtFQ2hNQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHlMc0M7RUN4THRDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEc0xEO0VDbk1DLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdENExvQztFQzNMcEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUR5TEQ7RUN0TUMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0QrTG1DO0VDOUxuQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDRMRDtFQ3pNQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRGtNK0I7RUNqTS9CLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEK0xEO0VDNU1DLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEcU1tQztFQ3BNbkMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURrTUQ7RUMvTUMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0R3TStCO0VDdk0vQixPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHFNRDtFQ2xOQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDJNbUM7RUMxTW5DLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEd01EO0VDck5DLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEOE1nQztFQzdNaEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQyTUQ7RUN4TkMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RpTmlDO0VDaE5qQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDhNRDtFQzNOQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRG9OZ0M7RUNuTmhDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEaU5EO0VDOU5DLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEdU5vQztFQ3ROcEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURvTkQ7RUNqT0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0QwTnNDO0VDek50QyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHVORDtFQ3BPQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDZOK0I7RUM1Ti9CLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEME5EO0VDdk9DLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEZ08rQjtFQy9OL0IsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQ2TkQ7RUMxT0MsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RtT2dDO0VDbE9oQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRGdPRDtFQzdPQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHNPZ0M7RUNyT2hDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEbU9EO0VDaFBDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEeU9zQztFQ3hPdEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURzT0Q7RUNuUEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0Q0T2lDO0VDM09qQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRHlPRDtFQ3RQQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRCtPbUM7RUM5T25DLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FENE9EO0VDelBDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEa1BvQztFQ2pQcEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUQrT0Q7RUM1UEMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0RxUCtCO0VDcFAvQixPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRGtQRDtFQy9QQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRHdQcUM7RUN2UHJDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEcVBEO0VDbFFDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEMlBpQztFQzFQakMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUR3UEQ7RUNyUUMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0Q4UGtDO0VDN1BsQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRDJQRDtFQ3hRQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRGlRZ0M7RUNoUWhDLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEOFBEO0VDM1FDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdEb1FnQztFQ25RaEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QURpUUQ7RUM5UUMsYURNZTtFQ0xmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0R1UWtDO0VDdFFsQyxPQVYyRDtBQVkzRDtFQUNBO0VBQ0E7OztBRG9RRDtFQ2pSQyxhRE1lO0VDTGY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXRDBRK0I7RUN6US9CLE9BVjJEO0FBWTNEO0VBQ0E7RUFDQTs7O0FEdVFEO0VDcFJDLGFETWU7RUNMZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdENlFrQztFQzVRbEMsT0FWMkQ7QUFZM0Q7RUFDQTtFQUNBOzs7QUNuQkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0k7RUFHQSxhbkJtRGtCO0VtQmxEbEIsYW5CcUQwQjtFbUJwRDFCOztBQ1JGO0VBQ0MsV0RJMEY7O0FDSDFGO0VBRkQ7SUFHRTs7O0FBRUQ7RUFMRDtJQU1FLFdERCtGOzs7O0FFWm5HO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQztFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJLGFyQjRDaUI7RXFCM0NqQixhckJtRHlCO0VxQmxEekI7OztBQ3ZCUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDYko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0k7RUMwQkYsV0FkUTtFQWVSLFdBZFE7OztBMUJQVjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VVVkg7RUFDQTs7QVZhRztFVWRIO0VBQ0E7O0FpQmNFO0UzQktLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQVlJOzs7QTJCdEJUO0UzQjZCUztJQUFxQjs7RUFDckI7SUFBcUI7O0VBQ3JCO0lBQXFCOztFQUNyQjtJQUFxQjs7RUFDckI7SUFBcUI7OztBQU03QjtFQUNJOztBQUlBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJIiwiZmlsZSI6ImNvbHVtbnMvc3JjL3Njc3MvYmwtY29sdW1ucy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJsb2NrOiBNdWx0aS1Db2x1bW5cbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBNaWRjb2FzdCBQbGF0Zm9ybVxuICogQHNpbmNlIDEuMFxuICovXG5cbi8qKiBJbXBvcnQgbmVjZXNzYXJ5IGRlcGVuZGVuY2llcyAqL1xuQGltcG9ydCAnX2ltcG9ydC1kZXBlbmRlbmNpZXMuc2Nzcyc7XG5cbkBpbXBvcnQgJ2NvbHVtbi10eXBlcy9fbGFyZ2UtdGV4dC5zY3NzJztcbkBpbXBvcnQgJ2NvbHVtbi10eXBlcy9fbWV0cmljLnNjc3MnO1xuQGltcG9ydCAnY29sdW1uLXR5cGVzL19yZWd1bGFyLXRleHQuc2Nzcyc7XG5AaW1wb3J0ICdjb2x1bW4tdHlwZXMvX3NtYWxsLXRleHQuc2Nzcyc7XG5cbi5ibC1tdWx0aS1jb2x1bW4ge1xuICAgIG1hcmdpbi10b3A6IDkwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgICBcbiAgICAmID4gLmNvbnRhaW5lciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGd1dHRlcnMoKTtcbiAgICB9XG4gICAgXG4gICAgLmNvbHVtbi1ndXR0ZXJzIC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBndXR0ZXJzKCk7XG4gICAgfVxuICAgIFxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSwgbWF4KSB7XG4gICAgICAgIC5jb2x1bW4uc3Bhbi0xLFxuICAgICAgICAuY29sdW1uLnNwYW4tMixcbiAgICAgICAgLmNvbHVtbi5zcGFuLTMsXG4gICAgICAgIC5jb2x1bW4uc3Bhbi00LFxuICAgICAgICAuY29sdW1uLnNwYW4tNSxcbiAgICAgICAgLmNvbHVtbi5zcGFuLTYsXG4gICAgICAgIC5jb2x1bW4uc3Bhbi03LFxuICAgICAgICAuY29sdW1uLnNwYW4tOCxcbiAgICAgICAgLmNvbHVtbi5zcGFuLTksXG4gICAgICAgIC5jb2x1bW4uc3Bhbi0xMCxcbiAgICAgICAgLmNvbHVtbi5zcGFuLTExLFxuICAgICAgICAuY29sdW1uLnNwYW4tMTIge1xuICAgICAgICAgICAgd2lkdGg6IHNwYW4oMTIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jb2x1bW4td2lkdGgtZnVsbCB7XG4gICAgICAgIFxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICYuY29sdW1uLTIgLmNvbHVtbiB7IHdpZHRoOiBzcGFuKDYpOyB9XG4gICAgICAgICAgICAmLmNvbHVtbi0zIC5jb2x1bW4geyB3aWR0aDogc3Bhbig0KTsgfVxuICAgICAgICAgICAgJi5jb2x1bW4tNCAuY29sdW1uIHsgd2lkdGg6IHNwYW4oMyk7IH1cbiAgICAgICAgICAgICYuY29sdW1uLTUgLmNvbHVtbiB7IHdpZHRoOiBzcGFuKDIuNCk7IH1cbiAgICAgICAgICAgICYuY29sdW1uLTYgLmNvbHVtbiB7IHdpZHRoOiBzcGFuKDIpOyB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgXG5cbiAgICAuYmwtcGFnZS1oZXJvICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gICAgfVxuXG4gICAgLmNvbHVtbiB7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgYnIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIvKipcbiAqIE5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBCbG9jayBzY3NzIHN0eWxlc2hlZXRzLiBUaGlzIGZpbGUgaXMgaW1wb3J0ZWQgaW50byBlYWNoIG9mIHRoZSBidWlsZHMgZm9yIEJsb2NrIHNjc3MuXG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbi8vIFxuQGltcG9ydCAnY29yZS9fdmFyaWFibGVzJztcblxuQGltcG9ydCAnY29yZS9mdW5jdGlvbnMvX2luaXQnO1xuXG5AaW1wb3J0ICdjb3JlL21peGlucy9ncmlkL19ibG9jayc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9ncmlkL19jb250YWluZXItYnJlYWtvdXQnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvZ3JpZC9fY29udGFpbmVyJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL2dyaWQvX2d1dHRlcnMnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvZ3JpZC9fcHVsbCc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9ncmlkL19wdXNoJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL2dyaWQvX3NwYW4nO1xuXG5AaW1wb3J0ICdjb3JlL21peGlucy9fYWxsY2hhcnMnO1xuXG5AaW1wb3J0ICdjb3JlL21peGlucy9fYmxvY2stZWRpdG9yJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL19icmVha3BvaW50JztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL19icmljayc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fYnJvd3Nlcic7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fYnV0dG9ucyc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fY292ZXJlcic7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fZmx1aWQtdHlwZSc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9faWNvbmZvbnQnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX21hcC1nZXQtbmV4dCc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fb3BhY2l0eSc7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fdHJhbnNpdGlvbnMnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX3dvcmR3cmFwJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL19jZW50ZXJlcic7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fY29sb3InO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX2VsbGlwc2lzJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL19mb250LXNpemUnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX2hvdmVyJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL19tYXAtZGVlcC1nZXQnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX29iamVjdC1maXQnO1xuQGltcG9ydCAnY29yZS9taXhpbnMvX3NoYWRlJztcbkBpbXBvcnQgJ2NvcmUvbWl4aW5zL192aXN1YWxseWhpZGRlbic7XG5AaW1wb3J0ICdjb3JlL21peGlucy9fei1pbmRleCc7XG5cbi8vQGltcG9ydCAnY29yZS90eXBvZ3JhcGh5L19mb250cyc7XG5AaW1wb3J0ICdjb3JlL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHktbWl4aW5zJztcblxuQGltcG9ydCAnY29yZS9mdW5jdGlvbnMvX2Jsb2ctbWF4LXdpZHRoJztcblxuQGltcG9ydCAncGFydGlhbHMvaWNvbmZvbnQnO1xuIiwiLyotLS0tLS0tLS0tLSovXG4vKiBWYXJpYWJsZXNcbi8qLS0tLS0tLS0tLS0qL1xuXG4vL0dsb2JhbCBHcmlkLCB2YXJpYWJsZXNcbiRnbG9iYWwtY29uZmlnOiAoXG5cdHRoZW1lLW5hbWU6ICdzanJ3Jyxcblx0YmxvY2stLXdpZHRoOiAxMDB2dyxcblx0d2lkdGg6IDE2MDBweCxcblx0bWF4LXdpZHRoOiAxNjAwcHgsXG5cdGJsb2ctbWF4LXdpZHRoOiAxMjAwcHgsXG5cdGNvbHVtbnM6IDEyLFxuXHRndXR0ZXJzOiAxNXB4LFxuXHRodG1sLWZvbnQtc2l6ZTogMTBweCxcblx0bWluLWhlYWRlci1oZWlnaHQ6IDc1cHgsXG4pO1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogIDAsXG5cdHNtOiAgNTQ0cHgsXG5cdG1kOiAgNzY4cHgsXG5cdGxnOiAgOTkycHgsXG5cdHhsOiAgMTIwMHB4LFxuXHR4bDI6IDE0NDBweCxcblx0eGwzOiAxNjAwcHgsXG4pO1xuXG4vL0NvbG9yc1xuJGNvbG9yczogKFxuXHRibGFjazpcdFx0XHRcdCMyMzIzMjUsXG5cdHdoaXRlOlx0XHRcdFx0I0ZGRkZGRixcblx0dWx0cmFsaWdodDpcdFx0XHQjZjJmMmYyLFxuXHR0cmFuc3BhcmVudDpcdFx0dHJhbnNwYXJlbnQsXG5cblx0cmVkOlx0XHRcdFx0I2MyMzcyNSxcblx0Ymx1ZTpcdFx0XHRcdCMxMjk0OTAsXG5cdGxpZ2h0LXN0b25lOlx0XHQjZWNlYmU3LFxuXG5cdGdyYXktZGFyazojMzkzOTM5LFxuXG5cdC8vIEJFTE9XIEFSRSBPTEQgTlZCIENPTE9SU1xuXG5cdGJsdWUtZGFya2VzdDpcdFx0IzE2MTcxOSxcblx0Ymx1ZS1ncmF5Olx0XHRcdCMyMTI1MjksXG5cdFxuXHRibHVlLWxpZ2h0Olx0XHRcdCM0MkMwRTgsXG5cdGJsdWUtYmFyZWx5Olx0XHQjRThFRkY2LFxuXHRibHVlLXVsdHJhbGlnaHQ6XHQjRjRGOEZDLFxuXHRncmVlbjpcdFx0XHRcdCM0N0EyNDcsXG5cdGdyZWVuLWxpZ2h0Olx0XHQjRURGNkU2LFxuXHRvcmFuZ2U6XHRcdFx0XHQjRjg4RTE0LFxuXHRvcmFuZ2UtbGlnaHQ6XHRcdCNEOTlFMUUsXG5cdGdyYXktdWx0cmFsaWdodDpcdCNmM2Y4ZmMsXG5cdGdyYXktbGlnaHQ6XHRcdFx0I0JEQzhENSxcblx0Z3JheTpcdFx0XHRcdCMzRTQ4NTEsXG5cdGdyYXktbWVkaXVtOlx0XHQjOUFBNkI0LFxuXHRwZWFjaDpcdFx0XHRcdCNGRkY4RTksXG5cdHllbGxvdzpcdFx0XHRcdCNFQkM4MUIsXG5cdHRydWUtYmxhY2s6XHRcdFx0IzAwMDAwMCxcbik7XG5cbi8vIFR5cG9ncmFwaGljIEltcG9ydHMgYW5kIFZhcmlhYmxlc1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TGF0byZmYW1pbHk9TW9udHNlcnJhdDppdGFsLHdnaHRAMCwxMDAuLjkwMDsxLDEwMC4uOTAwJmRpc3BsYXk9c3dhcCcpO1xuXG4kZm9udC1mYW1pbHktc2VyaWY6XHRcdFx0J01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6XHQnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG5cbiRmb250LWZhbWlseS1zZXJpZi1yZWd1bGFyOlx0XHRcdDQwMDtcbiRmb250LWZhbWlseS1zZXJpZi1zZW1pYm9sZDpcdFx0NjAwO1xuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZi10aGluOiAgICAgICAxMDA7XG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZi1leHRyYWxpZ2h0Olx0MjAwO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYtbGlnaHQ6ICAgICAgMzAwO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYtcmVndWxhcjpcdDQwMDtcblxuXG4vL1otSW5kZXggTWFuYWdlbWVudCAtLSB1dGlsaXplcyBTYXNzIE1hcHNcbi8vRWFzaWVzdCB3YXkgdG8gdXNlIGlzIHZpYSB0aGUgbWl4aW46IEBpbmNsdWRlIHotaW5kZXgoemVybyk7XG4kei1pbmRleDogKFxuXHRoZWF2ZW5cdFx0XHRcdFx0Olx0OTk5OSxcblx0c2VhcmNoXHRcdFx0XHRcdDpcdDEwMDAsXG5cdGhlYWRlclx0XHRcdFx0XHQ6XHQ2MDAsXG5cdGhhbWJ1cmdlclx0XHRcdFx0Olx0NTUwLFxuXHRzaXRlLW1lbnVcdFx0XHRcdDpcdDUwMCxcblx0Zm9vdGVyXHRcdFx0XHRcdDpcdDQwMCxcblx0YWJvdmVncm91bmRcdFx0XHRcdDpcdDEwMCxcblx0Z3Jhc3NcdFx0XHRcdFx0Olx0Mixcblx0Z3JvdW5kXHRcdFx0XHRcdDpcdDEsXG5cdHplcm9cdFx0XHRcdFx0Olx0MCxcblx0dW5kZXJncm91bmRcdFx0XHRcdDpcdC0xLFxuXHRoZWxsXHRcdFx0XHRcdDpcdC05OTk5XG4pO1xuXG4kYm94LXNoYWRvdzogNXB4IDVweCAxNnB4IC02cHggcmdiYSgwLCAwLCAwLCAuMzUpO1xuJGJvcmRlci1yYWRpdXM6ICA4cHg7XG5cbiR0cmFuc2l0aW9uczogKFxuXHRlYXNlXHRcdFx0OiBcdGVhc2UsXG5cdGxpbmVhclx0XHRcdDogXHRsaW5lYXIsXG5cdGVhc2UtaW5cdFx0XHQ6IFx0ZWFzZS1pbixcblx0ZWFzZS1vdXRcdFx0OiBcdGVhc2Utb3V0LFxuXHRlYXNlLWluLW91dFx0XHQ6IFx0ZWFzZS1pbi1vdXQsXG5cdHN0ZXAtc3RhcnRcdFx0OiBcdHN0ZXAtc3RhcnQsXG5cdHN0ZXAtZW5kXHRcdDogXHRzdGVwLWVuZCxcblxuXHQvLyBTcGVjaWFsIEVmZmVjdHNcblx0Ym91bmNlXHRcdFx0Olx0Y3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSksXG5cblx0Ly8gQ3ViaWNcblx0ZWFzZUluQ3ViaWNcdFx0Olx0Y3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKSxcblx0ZWFzZU91dEN1YmljIFx0Olx0Y3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKSxcblx0ZWFzZUluT3V0Q3ViaWNcdDpcdGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCksXG5cblx0Ly8gQ2lyY1xuXHRlYXNlSW5DaXJjICAgXHQ6XHRjdWJpYy1iZXppZXIoMC42MDAsIDAuMDQwLCAwLjk4MCwgMC4zMzUpLFxuXHRlYXNlT3V0Q2lyYyAgXHQ6XHRjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIwLCAwLjE2NSwgMS4wMDApLFxuXHRlYXNlSW5PdXRDaXJjXHQ6XHRjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1MCwgMC44NjApLFxuXG5cdC8vIEV4cG9cblx0ZWFzZUluRXhwbyAgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuOTUwLCAwLjA1MCwgMC43OTUsIDAuMDM1KSxcblx0ZWFzZU91dEV4cG8gIFx0Olx0Y3ViaWMtYmV6aWVyKDAuMTkwLCAxLjAwMCwgMC4yMjAsIDEuMDAwKSxcblx0ZWFzZUluT3V0RXhwb1x0Olx0Y3ViaWMtYmV6aWVyKDEuMDAwLCAwLjAwMCwgMC4wMDAsIDEuMDAwKSxcblxuXHQvLyBRdWFkXG5cdGVhc2VJblF1YWQgICAgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA4NSwgMC42ODAsIDAuNTMwKSxcblx0ZWFzZU91dFF1YWQgICAgXHQ6XHRjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApLFxuXHRlYXNlSW5PdXRRdWFkICBcdDpcdGN1YmljLWJlemllcigwLjQ1NSwgMC4wMzAsIDAuNTE1LCAwLjk1NSksXG5cblx0Ly8gUXVhcnRcblx0ZWFzZUluUXVhcnQgICAgXHQ6XHRjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMwLCAwLjY4NSwgMC4yMjApLFxuXHRlYXNlT3V0UXVhcnQgICBcdDpcdGN1YmljLWJlemllcigwLjE2NSwgMC44NDAsIDAuNDQwLCAxLjAwMCksXG5cdGVhc2VJbk91dFF1YXJ0IFx0Olx0Y3ViaWMtYmV6aWVyKDAuNzcwLCAwLjAwMCwgMC4xNzUsIDEuMDAwKSxcblxuXHQvLyBRdWludFxuXHRlYXNlSW5RdWludCAgICBcdDpcdGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCksXG5cdGVhc2VPdXRRdWludCAgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuMjMwLCAxLjAwMCwgMC4zMjAsIDEuMDAwKSxcblx0ZWFzZUluT3V0UXVpbnQgXHQ6XHRjdWJpYy1iZXppZXIoMC44NjAsIDAuMDAwLCAwLjA3MCwgMS4wMDApLFxuXG5cdC8vIFNpbmVcblx0ZWFzZUluU2luZSAgICAgXHQ6XHRjdWJpYy1iZXppZXIoMC40NzAsIDAuMDAwLCAwLjc0NSwgMC43MTUpLFxuXHRlYXNlT3V0U2luZSAgICBcdDpcdGN1YmljLWJlemllcigwLjM5MCwgMC41NzUsIDAuNTY1LCAxLjAwMCksXG5cdGVhc2VJbk91dFNpbmUgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKSxcblxuXHQvLyBCYWNrXG5cdGVhc2VJbkJhY2sgICAgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSksXG5cdGVhc2VPdXRCYWNrICAgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSksXG5cdGVhc2VJbk91dEJhY2sgIFx0Olx0Y3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCksXG4pOyIsIi8qKioqKioqKiovXG4vKiBTYXNzIEZ1bmN0aW9uc1xuLyoqKioqKioqKi9cblxuQGltcG9ydCAnX2lzLWludCc7XG5AaW1wb3J0ICdfZ2xvYmFsLWNvbmZpZyc7XG5AaW1wb3J0ICdfcmVtJztcbkBpbXBvcnQgJ19zdHJpcC11bml0JztcbkBpbXBvcnQgJ19ibG9nLW1heC13aWR0aCc7IiwiLyoqXG4gKiBGdW5jdGlvbiBmb3IgY2FsbGluZyB2YWx1ZXMgb3V0IG9mIHRoZSBnbG9iYWwgY29uZmlnIG1hcFxuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIFNKUldcbiAqL1xuXG4gQGZ1bmN0aW9uIGdsb2JhbC1jb25maWcoJG5hbWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsICRuYW1lKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBoYXMgcHggdW5pdHMsIGFuZCBpZiBzbywgY29udmVydCB0byByZW1cbiAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgICAgICBAcmV0dXJuIHJlbSgkdmFsdWUpOyAvLyBDYWxsIHRoZSByZW0oKSBmdW5jdGlvbiB0byBjb252ZXJ0IHB4IHRvIHJlbVxuICAgIH1cblxuICAgIC8vIFJldHVybiB0aGUgdmFsdWUgYXMgaXMgaWYgaXQncyBub3QgaW4gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbi8qKlxuICogcmVtKCkgZnVuY3Rpb24gdG8gY29udmVydCBweCB0byByZW1cbiAqIFVzYWdlOiBmb250LXNpemUoMTZweCk7XG4gKiBGdW5jdGlvbiByZXR1cm5zOiAxLjZyZW07XG4qL1xuXG5AZnVuY3Rpb24gcmVtKCRweFZhbHVlKSB7XG4gICAgJGJhc2VGb250U2l6ZTogbWFwLWdldCgkZ2xvYmFsLWNvbmZpZywgaHRtbC1mb250LXNpemUpOyAvLyBHZXQgdGhlIGJhc2UgZm9udCBzaXplIGZyb20gdGhlIGdsb2JhbCBjb25maWdcblxuICAgIC8vIEVuc3VyZSB0aGUgaW5wdXQgaGFzICdweCcgdW5pdHMgYW5kIGJhc2UgZm9udCBzaXplIGV4aXN0c1xuICAgIEBpZiB1bml0KCRweFZhbHVlKSA9PSAncHgnIGFuZCB0eXBlLW9mKCRiYXNlRm9udFNpemUpID09ICdudW1iZXInIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgYnkgZGl2aWRpbmcgdGhlIHB4IHZhbHVlIGJ5IHRoZSBiYXNlIGZvbnQgc2l6ZVxuICAgICAgICBAcmV0dXJuIG1hdGguZGl2KCRweFZhbHVlLCAkYmFzZUZvbnRTaXplKSAqIDFyZW07XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiBweCBvciBiYXNlIGZvbnQgc2l6ZSBpcyBpbnZhbGlkLCByZXR1cm4gdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgQHJldHVybiAkcHhWYWx1ZTtcbn0iLCIvKipcbiAqIE1peGluIGZvciByZXR1cm4gdGhlIGRlZmluZWQgbWF4LXdpZHRoIGZvciBibG9nIGVsZW1lbnRzXG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbkBmdW5jdGlvbiBibG9nLW1heC13aWR0aCgpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRnbG9iYWwtY29uZmlnLCBibG9nLW1heC13aWR0aCk7XG59IiwiLyoqXG4gKiBHcmlkIE1peGluOiBibG9jaygpXG4gKlxuICogRGVmaW5lcyB0aGUgYmFzZSBjb250YWluZXIgZm9yIGEgcGFnZSBibG9ja1xuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIFNKUldcbiAqL1xuXG5AbWl4aW4gYmxvY2soJHdpZHRoOiBtYXAtZ2V0KCRnbG9iYWwtY29uZmlnLCBibG9jay0td2lkdGgpLCAkZ3V0dGVyczogZmFsc2UsICRwb3NpdGlvbjogcmVsYXRpdmUpIHtcblx0cG9zaXRpb246ICRwb3NpdGlvbjtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogJHdpZHRoO1xuXHRtYXJnaW46IDAgYXV0bztcblx0QGlmICgkZ3V0dGVycyA9PSB0cnVlKSB7XG5cdFx0QGluY2x1ZGUgZ3V0dGVycygpO1xuXHR9XG59IiwiLyoqXG4gKiBNaXhpbjogYmxvY2soKVxuICpcbiAqIENyZWF0ZXMgYSBmdWxsLWJyb3dzZXItd2lkdGggY29udGFpbmVyIHdoZW4geW91IGFyZSBpbnNpZGUgYSBsaW1pdGVkLXdpZHRoIHBhcmVudCwgZWcsIGluc2lkZSBvZiBAbWl4aW4gY29udGFpbmVyKCkuXG4gKiBUaGlzIGlzIHNvbWV3aGF0IHVubmVjZXNzYXJ5LCBzaW5jZSBhbGwgY29tcG9uZW50cyBzdGFydCBpbnNpZGUgYSAxMDB2dyBibG9jay4gSG93ZXZlciwgaXQgY2FuIGJlIGhlbHBmdWwgaWYgeW91XG4gKiBuZWVkIHRvIGNyZWF0ZSBhIGZ1bGwgd2lkdGggY29tcG9uZW50IHRoYXQgaXMgaW5zaWRlIGEgLmNvbnRhaW5lciBwYXJlbnQuXG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbkBtaXhpbiBjb250YWluZXItYnJlYWtvdXQoKSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMHZ3O1xuXHRtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtNTB2dztcbiAgICBtYXJnaW4tcmlnaHQ6IC01MHZ3O1xufSIsIi8qKlxuICogR3JpZCBNaXhpbjogY29udGFpbmVyKClcbiAqXG4gKiBDcmVhdGVzIGEgY29udGFpbmVyIGZvciBhIHBhZ2UgYmxvY2sgdGhhdCBpcyAxMDAlIG9mIHRoZSAkZ2xvYmFsLXdpZHRoIGRlZmluZWQgaW4gdmFyaWFibGVzLnNjc3NcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZFxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbkBtaXhpbiBjb250YWluZXIoXG5cdCRmbGV4OiB0cnVlLFxuXHQkcGFkZGluZzogMCxcblx0JG1hcmdpbjogbnVsbCxcblx0Ly8gY2hhbmdlZCBmcm9tIHRydWUgdG8gbnVsbFxuXHQkd2lkdGg6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIHdpZHRoKSxcblx0JGZsZXgtZGlyZWN0aW9uOiByb3csXG5cdCRtYXgtd2lkdGg6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIHdpZHRoKVxuXHQpIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuXHRtYXJnaW46IDAgYXV0bztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHQvLyBGbGV4IGhhbmRsaW5nXG5cdEBpZiAkZmxleCA9PSB0cnVlIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiAkZmxleC1kaXJlY3Rpb247XG5cdH1cblxuXHQvLyBNYXJnaW4gaGFuZGxpbmc6IG5vdyBzdXBwb3J0cyByZWFsIENTUyB2YWx1ZXNcblx0QGlmICRtYXJnaW4gIT0gbnVsbCB7XG5cdFx0bWFyZ2luOiAkbWFyZ2luO1xuXHR9XG5cblx0Ly8gUGFkZGluZyB2aWEgZ3V0dGVycyBtaXhpblxuXHRAaWYgJHBhZGRpbmcge1xuXHRcdEBpbmNsdWRlIGd1dHRlcnMoJHBhZGRpbmcpO1xuXHR9XG59IiwiLyoqXG4gKiBHcmlkIE1peGluOiBndXR0ZXJzKClcbiAqXG4gKiBDcmVhdGVzIGxlZnQvcmlnaHQgZ3V0dGVycyBvbiBhbiBlbGVtZW50LiBQcmltYXJpbHkgdXNlZCBvbiBzcGFuKCkgZWxlbWVudHMsIGJ1dCBjYW4gYmUgdXRpbGl6ZWQgYW55d2hlcmUuXG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbiBAZnVuY3Rpb24gZ3V0dGVycygkZmFjdG9yOiAxKSB7XG5cdCRndXR0ZXJzOiAobWFwLWdldCgkZ2xvYmFsLWNvbmZpZywgZ3V0dGVycykgKiAkZmFjdG9yKTtcblx0QHJldHVybiByZW0oJGd1dHRlcnMpO1xufVxuXG5AbWl4aW4gZ3V0dGVycygkZmFjdG9yOiAxKSB7XG5cdHBhZGRpbmctbGVmdDogcmVtKGd1dHRlcnMoJGZhY3RvcikpO1xuXHRwYWRkaW5nLXJpZ2h0OiByZW0oZ3V0dGVycygkZmFjdG9yKSk7XG59IiwiLyoqXG4gKiBHcmlkIE1peGluOiBwdWxsKClcbiAqXG4gKiBQdWxscyBhbiBpdGVtIGxlZnQgdXNpbmcgbmVnYXRpdmUgbWFyZ2lucywgYmFzZWQgb24gMTItY29sdW1uIGdyaWRcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBTSlJXXG4gKi9cblxuQG1peGluIHB1bGwoJGNvbHVtbnM6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIGNvbHVtbnMpLCAkY29udGFpbmVyOiBtYXAtZ2V0KCRnbG9iYWwtY29uZmlnLCBjb2x1bW5zKSkge1xuXHRtYXJnaW4tbGVmdDogKHNwYW4oJGNvbHVtbnMsICRjb250YWluZXIpICogLTEpO1xufSIsIi8qKlxuICogR3JpZCBNaXhpbjogcHVzaCgpXG4gKlxuICogUHVzaGVzIGFuIGl0ZW0gcmlnaHQgdXNpbmcgcG9zaXRpdmUgbWFyZ2lucywgYmFzZWQgb24gMTItY29sdW1uIGdyaWRcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBTSlJXXG4gKi9cbiBcbiBAbWl4aW4gcHVzaCgkY29sdW1uczogbWFwLWdldCgkZ2xvYmFsLWNvbmZpZywgY29sdW1ucyksICRjb250YWluZXI6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIGNvbHVtbnMpKSB7XG5cdG1hcmdpbi1sZWZ0OiBzcGFuKCRjb2x1bW5zLCAkY29udGFpbmVyKTtcbn0iLCIvKipcbiAqIEdyaWQgTWl4aW46IHNwYW4oKVxuICpcbiAqIENyZWF0ZXMgYSBjb250YWluZXIgb2YgYSBkZWZpbmVkICUgd2lkdGgsIGJhc2VkIG9uIGEgMTIgY29sdW1uIGdyaWRcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBTSlJXXG4gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AZnVuY3Rpb24gc3BhbigkY29sdW1uczogbWFwLWdldCgkZ2xvYmFsLWNvbmZpZywgY29sdW1ucyksICRjb250YWluZXI6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIGNvbHVtbnMpKSB7XG5cdEByZXR1cm4gcGVyY2VudGFnZShtYXRoLmRpdigkY29sdW1ucywgJGNvbnRhaW5lcikpO1xufVxuXG5AbWl4aW4gc3BhbigkY29sdW1uczogbWFwLWdldCgkZ2xvYmFsLWNvbmZpZywgY29sdW1ucyksICRjb250YWluZXI6IG1hcC1nZXQoJGdsb2JhbC1jb25maWcsIGNvbHVtbnMpLCAkZmxleDogdHJ1ZSwgJGd1dHRlcnM6IHRydWUpIHtcblx0d2lkdGg6IHNwYW4oJGNvbHVtbnMsICRjb250YWluZXIpO1xuXHRAaWYgKCRmbGV4ID09IGZhbHNlKSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblx0QGlmICgkZ3V0dGVycyA9PSB0cnVlKSB7XG5cdFx0QGluY2x1ZGUgZ3V0dGVycygpO1xuXHR9XG59XG5cbi5zcGFuLTEge1xuXHR3aWR0aDogc3BhbigxKTtcbn1cbi5zcGFuLTIge1xuXHR3aWR0aDogc3BhbigyKTtcbn1cbi5zcGFuLTMge1xuXHR3aWR0aDogc3BhbigzKTtcbn1cbi5zcGFuLTQge1xuXHR3aWR0aDogc3Bhbig0KTtcbn1cbi5zcGFuLTUge1xuXHR3aWR0aDogc3Bhbig1KTtcbn1cbi5zcGFuLTYge1xuXHR3aWR0aDogc3Bhbig2KTtcbn1cbi5zcGFuLTcge1xuXHR3aWR0aDogc3Bhbig3KTtcbn1cbi5zcGFuLTgge1xuXHR3aWR0aDogc3Bhbig4KTtcbn1cbi5zcGFuLTkge1xuXHR3aWR0aDogc3Bhbig5KTtcbn1cbi5zcGFuLTEwIHtcblx0d2lkdGg6IHNwYW4oMTApO1xufVxuLnNwYW4tMTEge1xuXHR3aWR0aDogc3BhbigxMSk7XG59XG4uc3Bhbi0xMiB7XG5cdHdpZHRoOiBzcGFuKDEyKTtcbn1cbiIsIi8qKlxuICogTWl4aW4gZm9yIHdyaXRpbmcgc3R5bGVzIHRoYXQgb25seSBkaXNwbGF5IGluIHRoZSBibG9jayBlZGl0b3JcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBTSlJXXG4gKi9cblxuIEBtaXhpbiBibG9jay1lZGl0b3IoKSB7XG5cdC5hY2YtYmxvY2stcHJldmlldyAmIHtcblx0XHRAY29udGVudDtcblx0fVxufSIsIi8qKlxuICogTWl4aW4gZm9yIGRpc3BsYXkgYSBicmljayBwc2V1ZHVvIGVsZW1lbnQuIEEgYnJpY2sgaXMgdGhlIGxpdHRsZSBob3Jpem9udGFsIGxpbmUgdW5kZXIgaGVhZGxpbmVzLlxuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIFNKUldcbiAqL1xuIFxuIEBtaXhpbiBicmljaygkY29sb3I6IGNvbG9yKHBpbmspKSB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDQwcHg7XG5cdGhlaWdodDogM3B4O1xuXHRtYXJnaW46IDVweCBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbiB9IiwiLyoqXG4gKiBGdW5jdGlvbiBhbmQgTWl4aW4gZm9yIGdldHRpbmcgY29sb3JzIGZyb20gdGhlICRjb2xvciBhcnJheVxuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIFNKUldcbiAqL1xuXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogMSkge1xuXHRAaWYgKCRvcGFjaXR5ICE9IDEpIHtcblx0QHJldHVybiByZ2JhKG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKSwgJG9wYWNpdHkpO1xuXHR9IEBlbHNlIHtcblx0QHJldHVybiBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcik7XG5cdH1cbn1cblxuQG1peGluIGNvbG9yKCRjb2xvciwgJHByb3BlcnR5LW5hbWU6IGNvbG9yLCAkb3BhY2l0eTogMSkge1xuXHRAaWYgKCRvcGFjaXR5ICE9IDEpIHtcblx0I3skcHJvcGVydHlfbmFtZX06IHJnYmEoY29sb3IoJGNvbG9yKSwgJG9wYWNpdHkpO1xuXHR9IEBlbHNlIHtcblx0I3skcHJvcGVydHlfbmFtZX06IGNvbG9yKCRjb2xvcik7XG5cdH1cbn0iLCIvKipcbiAqIE1peGluIGZvciBhcHBseWluZyBiYWNrZ3JvdW5kIHNoYWRlIHRvIGFuIGVsZW1lbnRcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBTSlJXXG4gKi9cblxuIEBtaXhpbiBzaGFkZSgkc2hhZGUpIHtcblx0XG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS11bHRyYWxpZ2h0Jykge1xuXHRcdEBpbmNsdWRlIGNvbG9yKHVsdHJhbGlnaHQsIGJhY2tncm91bmQtY29sb3IpO1xuXHR9XG5cblx0QGlmICgkc2hhZGUgPT0gJ3NoYWRlLWJsdWUtZ3JhZGllbnQnKSB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCBjb2xvcihibHVlLCAxKSA0MCUsIGNvbG9yKGJsdWUtZGFyaywgMSkgNjAlKTtcblx0fVxuXG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS1wdXJwbGUtZ3JhZGllbnQnKSB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0zMGRlZywgY29sb3IoYmx1ZS1kYXJrLCAxKSA0MCUsIGNvbG9yKHB1cnBsZSwgMSkgNjAlKTtcblx0fVxuXG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS1ibHVlJykge1xuXHRcdGJhY2tncm91bmQ6IGNvbG9yKGJsdWUtZGFyayk7XG5cdH1cblxuXHRAaWYgKCRzaGFkZSA9PSAnc2hhZGUtcHVycGxlJykge1xuXHRcdGJhY2tncm91bmQ6IGNvbG9yKHB1cnBsZSk7XG5cdH1cbiB9XG5cbiBAbWl4aW4gc2hhZGUtdGV4dCgkc2hhZGUpIHtcblx0XG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS11bHRyYWxpZ2h0Jykge1xuXHRcdGNvbG9yOiBjb2xvcihibGFjayk7XG5cdH1cblxuXHRAaWYgKCRzaGFkZSA9PSAnc2hhZGUtYmx1ZS1ncmFkaWVudCcpIHtcblx0XHRjb2xvcjogY29sb3Iod2hpdGUpO1xuXHR9XG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS10ZXh0LWRhcmsnKSB7XG5cdFx0Y29sb3I6IGNvbG9yKGJsYWNrKTtcblx0fVxuXHRAaWYgKCRzaGFkZSA9PSAnc2hhZGUtdGV4dC1saWdodCcpIHtcblx0XHRjb2xvcjogY29sb3Iod2hpdGUpO1xuXHR9XG5cdEBpZiAoJHNoYWRlID09ICdzaGFkZS1ibHVlJykge1xuXHRcdGNvbG9yOiBjb2xvcih3aGl0ZSk7XG5cdH1cblx0QGlmICgkc2hhZGUgPT0gJ3NoYWRlLXB1cnBsZScpIHtcblx0XHRjb2xvcjogY29sb3Iod2hpdGUpO1xuXHR9XG4gfVxuXG4gQG1peGluIHNoYWRlLWNoaWxkKCRzaGFkZTogbnVsbCkge1xuXHRAaWYgKCRzaGFkZSAhPSBudWxsKSB7XG5cdFx0LnNoYWRlLiN7JHNoYWRlfSAmIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxuIH0iLCIvKipcbiAqIE1peGluOiB6LWluZGV4KCRsZXZlbCwgJGltcG9ydGFudClcbiAqXG4gKiBVc2VzIHRoZSBTYXNzLU1hcCBkZWZpbmVkIGluIHBhcnRpYWxzL3ZhcmlhYmxlcy5zY3NzIHRvIGxvYWQgYSBuYW1lZCB6LWluZGV4IGxldmVsLiBJZiBhbiBpbnRlZ2VyIGlzIHBhc3NlZCwgdGhhdCBpbnRlZ2VyIGlzIHVzZWQgYXMgdGhlIHotaW5kZXggbGV2ZWwuXG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgU0pSV1xuICovXG5cbkBtaXhpbiB6LWluZGV4KCRsZXZlbDogZ3JvdW5kLCAkaW1wb3J0YW50OiAnbnVsbCcpIHtcblx0JHppbmRleDogc3RyaW5nO1xuXG5cdEBpZiBpcy1pbnQoJGxldmVsKSB7XG5cdFx0JHppbmRleDogJGxldmVsO1xuXHR9IEBlbHNlIHtcblx0XHQkemluZGV4OiBtYXAtZ2V0KCR6LWluZGV4LCAkbGV2ZWwpO1xuXHR9XG5cdEBpZiAoJGltcG9ydGFudCA9PSAnaW1wb3J0YW50Jylcblx0e1xuXHRcdHotaW5kZXg6ICR6aW5kZXggIWltcG9ydGFudDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0ei1pbmRleDogJHppbmRleDtcblx0fVxufSIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcImljb25mb250XCI7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2Fzc2V0cy9tZWRpYS9mb250cy9pY29uZm9udC9pY29uZm9udC5lb3Q/cGwwNnQnKTtcbiAgICBzcmM6IHVybCgnLi4vLi4vYXNzZXRzL21lZGlhL2ZvbnRzL2ljb25mb250L2ljb25mb250LmVvdD9wbDA2dCNpZWZpeCcpIGZvcm1hdCgnZW90JyksXG4gICAgICB1cmwoJy4uLy4uL2Fzc2V0cy9tZWRpYS9mb250cy9pY29uZm9udC9pY29uZm9udC53b2ZmMj9wbDA2dCcpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgIHVybCgnLi4vLi4vYXNzZXRzL21lZGlhL2ZvbnRzL2ljb25mb250L2ljb25mb250LndvZmY/cGwwNnQnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgIHVybCgnLi4vLi4vYXNzZXRzL21lZGlhL2ZvbnRzL2ljb25mb250L2ljb25mb250LnR0Zj9wbDA2dCcpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgIHVybCgnLi4vLi4vYXNzZXRzL21lZGlhL2ZvbnRzL2ljb25mb250L2ljb25mb250LnN2Zz9wbDA2dCNpY29uZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbiRmb250LWljb25mb250Olx0XCJpY29uZm9udFwiO1xuXG4kaWNvbi1hY2NvdW50OiBcIlxcRUEwMVwiO1xuJGljb24tYXJyb3ctZG93bi1sb25nOiBcIlxcRUEwMlwiO1xuJGljb24tYXJyb3ctZG93bjogXCJcXEVBMDNcIjtcbiRpY29uLWFycm93LWxlZnQtbG9uZzogXCJcXEVBMDRcIjtcbiRpY29uLWFycm93LWxlZnQ6IFwiXFxFQTA1XCI7XG4kaWNvbi1hcnJvdy1yaWdodC1sb25nOiBcIlxcRUEwNlwiO1xuJGljb24tYXJyb3ctcmlnaHQ6IFwiXFxFQTA3XCI7XG4kaWNvbi1hcnJvdy11cC1sb25nOiBcIlxcRUEwOFwiO1xuJGljb24tYXJyb3ctdXA6IFwiXFxFQTA5XCI7XG4kaWNvbi1iZWxsOiBcIlxcRUEwQVwiO1xuJGljb24tYnJvd3NlcjogXCJcXEVBMEJcIjtcbiRpY29uLWNhbGVuZGFyOiBcIlxcRUEwQ1wiO1xuJGljb24tY2FyZXQtZG93bjogXCJcXEVBMERcIjtcbiRpY29uLWNhcmV0LWxlZnQ6IFwiXFxFQTBFXCI7XG4kaWNvbi1jYXJldC1yaWdodDogXCJcXEVBMEZcIjtcbiRpY29uLWNhcmV0LXVwOiBcIlxcRUExMFwiO1xuJGljb24tY2hhdDogXCJcXEVBMTFcIjtcbiRpY29uLWNoZWNrOiBcIlxcRUExMlwiO1xuJGljb24tY2hlY2tib3gtZW1wdHk6IFwiXFxFQTEzXCI7XG4kaWNvbi1jaGVja2JveDogXCJcXEVBMTRcIjtcbiRpY29uLWNoZXZyb24tZG93bjogXCJcXEVBMTVcIjtcbiRpY29uLWNoZXZyb24tbGVmdDogXCJcXEVBMTZcIjtcbiRpY29uLWNoZXZyb24tcmlnaHQ6IFwiXFxFQTE3XCI7XG4kaWNvbi1jaGV2cm9uLXVwOiBcIlxcRUExOFwiO1xuJGljb24tY2lyY2xlOiBcIlxcRUExOVwiO1xuJGljb24tY2xvY2s6IFwiXFxFQTFBXCI7XG4kaWNvbi1jbG9zZS13aGl0ZTogXCJcXEVBMUJcIjtcbiRpY29uLWNsb3NlOiBcIlxcRUExQ1wiO1xuJGljb24tY29tcG9zZTogXCJcXEVBMURcIjtcbiRpY29uLWRvY3VtZW50OiBcIlxcRUExRVwiO1xuJGljb24tZG93bmxvYWQ6IFwiXFxFQTFGXCI7XG4kaWNvbi1lbWFpbC1hbHQ6IFwiXFxFQTIwXCI7XG4kaWNvbi1lbWFpbDogXCJcXEVBMjFcIjtcbiRpY29uLWZhY2Vib29rOiBcIlxcRUEyMlwiO1xuJGljb24taG9tZTogXCJcXEVBMjNcIjtcbiRpY29uLWluZm8tYWxlcnQ6IFwiXFxFQTI0XCI7XG4kaWNvbi1pbmZvOiBcIlxcRUEyNVwiO1xuJGljb24taW5zdGFncmFtOiBcIlxcRUEyNlwiO1xuJGljb24tbGVhcm4tYWxlcnQ6IFwiXFxFQTI3XCI7XG4kaWNvbi1saWdodGJ1bGI6IFwiXFxFQTI4XCI7XG4kaWNvbi1saW5rZWRpbjogXCJcXEVBMjlcIjtcbiRpY29uLWxvYW46IFwiXFxFQTJBXCI7XG4kaWNvbi1sb2NhdGlvbjogXCJcXEVBMkJcIjtcbiRpY29uLWxvY2s6IFwiXFxFQTJDXCI7XG4kaWNvbi1taWRjb2FzdDogXCJcXEVBMkRcIjtcbiRpY29uLW1pbnVzOiBcIlxcRUEyRVwiO1xuJGljb24tcGVyc29uOiBcIlxcRUEyRlwiO1xuJGljb24tcGhvbmU6IFwiXFxFQTMwXCI7XG4kaWNvbi1waW50ZXJlc3Q6IFwiXFxFQTMxXCI7XG4kaWNvbi1wbGF5LWNpcmNsZTogXCJcXEVBMzJcIjtcbiRpY29uLXBsYXk6IFwiXFxFQTMzXCI7XG4kaWNvbi1wbHVzOiBcIlxcRUEzNFwiO1xuJGljb24tcXVvdGU6IFwiXFxFQTM1XCI7XG4kaWNvbi1yZXNldDogXCJcXEVBMzZcIjtcbiRpY29uLXNjcm9sbC1kb3duOiBcIlxcRUEzN1wiO1xuJGljb24tc2VhcmNoOiBcIlxcRUEzOFwiO1xuJGljb24tc25hcGNoYXQ6IFwiXFxFQTM5XCI7XG4kaWNvbi1zdGFyLWhhbGY6IFwiXFxFQTNBXCI7XG4kaWNvbi1zdGFyOiBcIlxcRUEzQlwiO1xuJGljb24tdGhyZWUtZG90czogXCJcXEVBM0NcIjtcbiRpY29uLXRpa3RvazogXCJcXEVBM0RcIjtcbiRpY29uLXR3aXR0ZXI6IFwiXFxFQTNFXCI7XG4kaWNvbi12aWRlbzogXCJcXEVBM0ZcIjtcbiRpY29uLXZpbWVvOiBcIlxcRUE0MFwiO1xuJGljb24td2Vic2l0ZTogXCJcXEVBNDFcIjtcbiRpY29uLXllbHA6IFwiXFxFQTQyXCI7XG4kaWNvbi15b3V0dWJlOiBcIlxcRUE0M1wiO1xuXG5cblxuLmljb24tYWNjb3VudDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYWNjb3VudCwgMTVweCk7XG59XG4uaWNvbi1hcnJvdy1kb3duLWxvbmc6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWFycm93LWRvd24tbG9uZywgMTVweCk7XG59XG4uaWNvbi1hcnJvdy1kb3duOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1hcnJvdy1kb3duLCAxNXB4KTtcbn1cbi5pY29uLWFycm93LWxlZnQtbG9uZzo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYXJyb3ctbGVmdC1sb25nLCAxNXB4KTtcbn1cbi5pY29uLWFycm93LWxlZnQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWFycm93LWxlZnQsIDE1cHgpO1xufVxuLmljb24tYXJyb3ctcmlnaHQtbG9uZzo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYXJyb3ctcmlnaHQtbG9uZywgMTVweCk7XG59XG4uaWNvbi1hcnJvdy1yaWdodDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYXJyb3ctcmlnaHQsIDE1cHgpO1xufVxuLmljb24tYXJyb3ctdXAtbG9uZzo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYXJyb3ctdXAtbG9uZywgMTVweCk7XG59XG4uaWNvbi1hcnJvdy11cDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYXJyb3ctdXAsIDE1cHgpO1xufVxuLmljb24tYmVsbDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tYmVsbCwgMTVweCk7XG59XG4uaWNvbi1icm93c2VyOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1icm93c2VyLCAxNXB4KTtcbn1cbi5pY29uLWNhbGVuZGFyOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jYWxlbmRhciwgMTVweCk7XG59XG4uaWNvbi1jYXJldC1kb3duOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jYXJldC1kb3duLCAxNXB4KTtcbn1cbi5pY29uLWNhcmV0LWxlZnQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNhcmV0LWxlZnQsIDE1cHgpO1xufVxuLmljb24tY2FyZXQtcmlnaHQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNhcmV0LXJpZ2h0LCAxNXB4KTtcbn1cbi5pY29uLWNhcmV0LXVwOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jYXJldC11cCwgMTVweCk7XG59XG4uaWNvbi1jaGF0OjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jaGF0LCAxNXB4KTtcbn1cbi5pY29uLWNoZWNrOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jaGVjaywgMTVweCk7XG59XG4uaWNvbi1jaGVja2JveC1lbXB0eTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tY2hlY2tib3gtZW1wdHksIDE1cHgpO1xufVxuLmljb24tY2hlY2tib3g6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNoZWNrYm94LCAxNXB4KTtcbn1cbi5pY29uLWNoZXZyb24tZG93bjo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tY2hldnJvbi1kb3duLCAxNXB4KTtcbn1cbi5pY29uLWNoZXZyb24tbGVmdDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tY2hldnJvbi1sZWZ0LCAxNXB4KTtcbn1cbi5pY29uLWNoZXZyb24tcmlnaHQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNoZXZyb24tcmlnaHQsIDE1cHgpO1xufVxuLmljb24tY2hldnJvbi11cDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tY2hldnJvbi11cCwgMTVweCk7XG59XG4uaWNvbi1jaXJjbGU6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNpcmNsZSwgMTVweCk7XG59XG4uaWNvbi1jbG9jazo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tY2xvY2ssIDE1cHgpO1xufVxuLmljb24tY2xvc2Utd2hpdGU6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWNsb3NlLXdoaXRlLCAxNXB4KTtcbn1cbi5pY29uLWNsb3NlOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jbG9zZSwgMTVweCk7XG59XG4uaWNvbi1jb21wb3NlOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1jb21wb3NlLCAxNXB4KTtcbn1cbi5pY29uLWRvY3VtZW50OjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1kb2N1bWVudCwgMTVweCk7XG59XG4uaWNvbi1kb3dubG9hZDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tZG93bmxvYWQsIDE1cHgpO1xufVxuLmljb24tZW1haWwtYWx0OjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1lbWFpbC1hbHQsIDE1cHgpO1xufVxuLmljb24tZW1haWw6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWVtYWlsLCAxNXB4KTtcbn1cbi5pY29uLWZhY2Vib29rOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1mYWNlYm9vaywgMTVweCk7XG59XG4uaWNvbi1ob21lOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1ob21lLCAxNXB4KTtcbn1cbi5pY29uLWluZm8tYWxlcnQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWluZm8tYWxlcnQsIDE1cHgpO1xufVxuLmljb24taW5mbzo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24taW5mbywgMTVweCk7XG59XG4uaWNvbi1pbnN0YWdyYW06OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWluc3RhZ3JhbSwgMTVweCk7XG59XG4uaWNvbi1sZWFybi1hbGVydDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tbGVhcm4tYWxlcnQsIDE1cHgpO1xufVxuLmljb24tbGlnaHRidWxiOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1saWdodGJ1bGIsIDE1cHgpO1xufVxuLmljb24tbGlua2VkaW46OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWxpbmtlZGluLCAxNXB4KTtcbn1cbi5pY29uLWxvYW46OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWxvYW4sIDE1cHgpO1xufVxuLmljb24tbG9jYXRpb246OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWxvY2F0aW9uLCAxNXB4KTtcbn1cbi5pY29uLWxvY2s6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLWxvY2ssIDE1cHgpO1xufVxuLmljb24tbWlkY29hc3Q6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLW1pZGNvYXN0LCAxNXB4KTtcbn1cbi5pY29uLW1pbnVzOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1taW51cywgMTVweCk7XG59XG4uaWNvbi1wZXJzb246OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXBlcnNvbiwgMTVweCk7XG59XG4uaWNvbi1waG9uZTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tcGhvbmUsIDE1cHgpO1xufVxuLmljb24tcGludGVyZXN0OjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1waW50ZXJlc3QsIDE1cHgpO1xufVxuLmljb24tcGxheS1jaXJjbGU6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXBsYXktY2lyY2xlLCAxNXB4KTtcbn1cbi5pY29uLXBsYXk6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXBsYXksIDE1cHgpO1xufVxuLmljb24tcGx1czo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tcGx1cywgMTVweCk7XG59XG4uaWNvbi1xdW90ZTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tcXVvdGUsIDE1cHgpO1xufVxuLmljb24tcmVzZXQ6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXJlc2V0LCAxNXB4KTtcbn1cbi5pY29uLXNjcm9sbC1kb3duOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1zY3JvbGwtZG93biwgMTVweCk7XG59XG4uaWNvbi1zZWFyY2g6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXNlYXJjaCwgMTVweCk7XG59XG4uaWNvbi1zbmFwY2hhdDo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tc25hcGNoYXQsIDE1cHgpO1xufVxuLmljb24tc3Rhci1oYWxmOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi1zdGFyLWhhbGYsIDE1cHgpO1xufVxuLmljb24tc3Rhcjo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tc3RhciwgMTVweCk7XG59XG4uaWNvbi10aHJlZS1kb3RzOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi10aHJlZS1kb3RzLCAxNXB4KTtcbn1cbi5pY29uLXRpa3Rvazo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24tdGlrdG9rLCAxNXB4KTtcbn1cbi5pY29uLXR3aXR0ZXI6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXR3aXR0ZXIsIDE1cHgpO1xufVxuLmljb24tdmlkZW86OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXZpZGVvLCAxNXB4KTtcbn1cbi5pY29uLXZpbWVvOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi12aW1lbywgMTVweCk7XG59XG4uaWNvbi13ZWJzaXRlOjpiZWZvcmUge1xuICBAaW5jbHVkZSBpY29uZm9udCgkaWNvbi13ZWJzaXRlLCAxNXB4KTtcbn1cbi5pY29uLXllbHA6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIGljb25mb250KCRpY29uLXllbHAsIDE1cHgpO1xufVxuLmljb24teW91dHViZTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgaWNvbmZvbnQoJGljb24teW91dHViZSwgMTVweCk7XG59IiwiQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cikge1xuXHRAcmV0dXJuIHVucXVvdGUoXCJcXFwiXCIpICsgJHN0ciArIHVucXVvdGUoXCJcXFwiXCIpO1xuICB9XG5cbi8vSWNvbmZvbnRcbkBtaXhpbiBpY29uZm9udCgkY29udGVudDogXCIgXCIsICRmb250LXNpemU6IGluaGVyaXQsICRjb2xvcjogaW5oZXJpdCApIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWljb25mb250O1xuXHRzcGVhazogbm9uZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRjb250ZW50OiB1bmljb2RlKCRjb250ZW50KTtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplO1xuXHRjb2xvcjogJGNvbG9yO1xuXHRcblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufSIsIi8qKlxuICogQmxvY2s6IE11bHRpLUNvbHVtblxuICogQ29sdW1uIFR5cGU6IFJlZ3VsYXIgVGV4dFxuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIE1pZGNvYXN0IFBsYXRmb3JtXG4gKiBAc2luY2UgMS4wXG4gKi9cblxuLmNvbnRlbnQtdHlwZV9fbGFyZ2UtdGV4dCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgZmx1aWQtdHlwZShtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCAnc20nKSwgbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgJ3hsMicpLCAzMnB4LCA1MHB4KTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1mYW1pbHktc2VyaWYtcmVndWxhcjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuICIsIkBtaXhpbiBmbHVpZC10eXBlKCRtaW4tdncsICRtYXgtdncsICRtaW4tZm9udC1zaXplLCAkbWF4LWZvbnQtc2l6ZSkge1xuXHQkdTE6IHVuaXQoJG1pbi12dyk7XG5cdCR1MjogdW5pdCgkbWF4LXZ3KTtcblx0JHUzOiB1bml0KCRtaW4tZm9udC1zaXplKTtcblx0JHU0OiB1bml0KCRtYXgtZm9udC1zaXplKTtcblxuXHRAaWYgJHUxID09ICR1MiBhbmQgJHUxID09ICR1MyBhbmQgJHUxID09ICR1NCB7XG5cdFx0JiB7XG5cdFx0XHRmb250LXNpemU6ICRtaW4tZm9udC1zaXplO1xuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1pbi12dykge1xuXHRcdFx0XHRmb250LXNpemU6IGNhbGMoI3skbWluLWZvbnQtc2l6ZX0gKyAje3N0cmlwLXVuaXQoJG1heC1mb250LXNpemUgLSAkbWluLWZvbnQtc2l6ZSl9ICogKCgxMDB2dyAtICN7JG1pbi12d30pIC8gI3tzdHJpcC11bml0KCRtYXgtdncgLSAkbWluLXZ3KX0pKTtcblx0XHRcdH1cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtYXgtdncpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAkbWF4LWZvbnQtc2l6ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIvKipcbiAqIEJsb2NrOiBNdWx0aS1Db2x1bW5cbiAqIENvbHVtbiBUeXBlOiBNZXRyaWNcbiAqXG4gKiBAYXV0aG9yICBDYWxlYiBaYWhuZCA8Y2FsZWJAbWlkY29hc3QuaW8+XG4gKiBAcGFja2FnZSBNaWRjb2FzdCBQbGF0Zm9ybVxuICogQHNpbmNlIDEuMFxuICovXG5cbiAuY29udGVudC10eXBlX19tZXRyaWMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICYtdmFsdWUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi1zbWFsbC10ZXh0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYtcmVndWxhcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiB9XG4gIiwiLyoqXG4gKiBCbG9jazogTXVsdGktQ29sdW1uXG4gKiBDb2x1bW4gVHlwZTogUmVndWxhciBUZXh0XG4gKlxuICogQGF1dGhvciAgQ2FsZWIgWmFobmQgPGNhbGViQG1pZGNvYXN0LmlvPlxuICogQHBhY2thZ2UgTWlkY29hc3QgUGxhdGZvcm1cbiAqIEBzaW5jZSAxLjBcbiAqL1xuXG4uY29udGVudC10eXBlX19yZWd1bGFyLXRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4gIiwiLyoqXG4gKiBCbG9jazogTXVsdGktQ29sdW1uXG4gKiBDb2x1bW4gVHlwZTogU21hbGwgVGV4dFxuICpcbiAqIEBhdXRob3IgIENhbGViIFphaG5kIDxjYWxlYkBtaWRjb2FzdC5pbz5cbiAqIEBwYWNrYWdlIE1pZGNvYXN0IFBsYXRmb3JtXG4gKiBAc2luY2UgMS4wXG4gKi9cblxuLmNvbnRlbnQtdHlwZV9fc21hbGwtdGV4dCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbn1cbiAiLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbkBmdW5jdGlvbiBwYXJzZUludCgkbikge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRuLCAkbiAqIDAgKyAxKTtcbn1cblxuQG1peGluIGZvbnQtc2l6ZSgkdmFsdWVzKSB7XG5cdCRweCA6ICgpO1xuXHQkcmVtOiAoKTtcblx0XG5cdEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcblxuXHRcdEBpZiAkdmFsdWUgPT0gMCBvciAkdmFsdWUgPT0gYXV0byB7XG5cdFx0XHQkcHggOiBhcHBlbmQoJHB4ICwgJHZhbHVlKTtcblx0XHRcdCRyZW06IGFwcGVuZCgkcmVtLCAkdmFsdWUpO1xuXHRcdH1cblxuXHRcdEBlbHNlIHtcblx0XHRcdCR1bml0OiB1bml0KCR2YWx1ZSk7XHQgXG5cdFx0XHQkdmFsOiBwYXJzZUludCgkdmFsdWUpO1xuXHRcdFxuXHRcdFx0QGlmICR1bml0ID09IFwicHhcIiB7IFxuXHRcdFx0XHQkcHggOiBhcHBlbmQoJHB4LCAgJHZhbHVlKTtcblx0XHRcdFx0JHJlbTogYXBwZW5kKCRyZW0sICgkdmFsICogMC4xICsgcmVtKSk7XG5cdFx0XHR9XG5cdFx0XG5cdFx0XHRAaWYgJHVuaXQgPT0gXCJyZW1cIiB7XG5cdFx0XHRcdCRweCA6IGFwcGVuZCgkcHgsICAoJHZhbCAqIDEwICsgcHgpKTtcblx0XHRcdFx0JHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGlmICRweCA9PSAkcmVtIHtcdFx0ICBcblx0XHRmb250LXNpemU6ICRweDsgXG5cdH0gQGVsc2Uge1xuXHRcdGZvbnQtc2l6ZTogJHB4OyBcblx0XHRmb250LXNpemU6ICRyZW07XG5cdH1cbn0iLCIvL0N1c3RvbSBicmVha3BvaW50IG1peGluXG5AbWl4aW4gYnJlYWtwb2ludCgkYnJlYWtwb2ludDogJ3hzJywgJHF1ZXJ5OiAnbWluJywgJG1pbi13aWR0aDogTlVMTCwgJG1heC13aWR0aDogTlVMTCkge1xuXHRAaWYgKCgkbWluLXdpZHRoICE9IE5VTEwpIG9yICgkbWF4LXdpZHRoICE9IE5VTEwpKSB7XG5cdFx0QGlmICgoJG1pbi13aWR0aCAhPSBOVUxMKSBhbmQgKCRtYXgtd2lkdGggPT0gTlVMTCkpIHtcblx0XHRcdEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXdpZHRoKSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRAaWYgKCgkbWluLXdpZHRoID09IE5VTEwpIGFuZCAoJG1heC13aWR0aCAhPSBOVUxMKSkge1xuXHRcdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdEBpZiAoKCRtaW4td2lkdGggIT0gTlVMTCkgYW5kICgkbWF4LXdpZHRoICE9IE5VTEwpKSB7XG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aCkgYW5kIChtYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdFxuXHR9XG5cdEBlbHNlIHtcblx0XHRAaWYgKCRxdWVyeSA9PSAnbWluJykge1x0XHRcblx0XHRcdEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdEBpZiAoJHF1ZXJ5ID09ICdtYXgnKSB7XG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogKG1hcC1nZXQtbmV4dCgkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpIC0gMSkpIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdEBpZiAoJHF1ZXJ5ID09ICdvbmx5Jykge1xuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkgYW5kIChtYXgtd2lkdGg6IChtYXAtZ2V0LW5leHQoJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50KSAtIDEpKSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSJdfQ== */
