@charset "UTF-8";
/**
 * 値が2つ以上の配列かどうか判定する関数
 * @param  {array} $_list 配列か判定したい値
 * @return {boole}        値が2つ以上の配列ならtrue
 */
/**
 * 数値をremに変換する関数です
 * @param  {Number} $target        remにしたい数値
 * @param  {Number} $threshold [1] しきい値
 * @return {Number}                数値にremが付いた数値を返します
 */
/**
 * 数値をemに変換する関数です
 * @param  {Number} $target           emにしたい数値
 * @param  {Number} $parentValue [16] しきい値
 * @return {Number}                   数値にremが付いた数値を返します
 */
/**
 * 数値をpxに変換する関数です
 * @param  {Number} $arget          pxにしたい数値
 * @param  {Number} $threshold [1]  しきい値
 * @return {Number}                 数値にpxが付いた数値を返します
 */
/**
 * line-heightが1の時と同じになるようにline-height分の差分を返す関数です
 * @param  {Number} $lineHeight lineHeightの値
 * @param  {Number} $fontSize   fontの値
 * @return {Number}             差分の数値
 */
/**
 * 深い階層のmapの値を取得して返す関数です。
 * @param  {map} $map   map本体
 * @param  {map} $keys  mapのkey
 * @return {map}        指定したmapのkey
 */
/**
 * $breakpointsの中の数値を@mediaに入れてemにして返すmixin
 * @param  {array}  $breakpoint [sm]  $breakpointsのkeyのarray
 * @param  {string} $key        [min] min or max
 * @return {void}                     @media ($key-width) {}
 */
/**
 * font-weightの数値を返す関数
 * @param  {String} $weight weightのキーワード値
 * @return {Number}         weightのnumber
 */
/**
 * 色をmapから取得する関数です
 * @param  {array}  $keys      配列
 * @param  {number} $_opacity  0.0 ~ 1
 * @return {map}               $colorsの任意のkey
 */
/**
 * z-indexをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $z-indexの任意のkey
 */
/**
 * 擬似要素でアスペクト比の領域を確保するmixin
 * @param  {$_width}                   横の値
 * @param  {$_height}                  縦の値
 * @param  {$_pseudo_element} [before] 消費する疑似要素 before or after
 * @return {void}
 */
/**
 * fontをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $fontsの任意のkey
 */
.single-hero--limited {
  box-sizing: border-box;
  height: auto;
  padding: 40px 0;
  border-bottom: 1px solid #d83e4f;
}
.single-hero--limited h1 {
  display: block;
  width: 100%;
  max-width: 1010px;
  padding: 0 15px;
  margin: 0 auto;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 24px;
}

.title__wrapper {
  width: 100%;
  height: auto;
  margin-top: 60px;
  border-top: 1px solid #ccc;
}
.title__wrapper li {
  box-sizing: border-box;
  height: auto;
  padding: 20px 0;
  border-bottom: 1px solid #ccc;
}
.title__date-area {
  display: flex;
  align-items: center;
  line-height: 20px;
}
.title__tag {
  padding-right: 40px;
  font-size: 1rem;
  font-weight: 700;
}
.title__date {
  font-size: 0.875rem;
}
.title__name h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 28px;
  color: #d83e4f;
}

.main-visual {
  position: relative;
  width: 100%;
  max-width: 980px;
  overflow: hidden;
  max-width: 900;
  overflow: hidden;
}
.main-visual::before {
  display: block;
  width: 100%;
  padding-top: 91.8367346939%;
  content: "";
}
.main-visual > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.main-visual > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.limited-single .blog-pagenation {
  width: 100%;
  margin-top: 30px;
}

.category-wrapper {
  width: 100%;
  height: auto;
  margin: 80px auto 170px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.category__title {
  box-sizing: border-box;
  height: auto;
  padding: 20px 0;
  font-size: 0.875rem;
  font-weight: 300;
  text-align: center;
  border-bottom: 1px solid #ccc;
}
.category__list {
  display: flex;
  justify-content: space-between;
  width: 760px;
  padding: 40px 0 40px 22px;
  margin: 0 auto;
}
.category__item {
  position: relative;
}
.category__item a {
  font-size: 1.1875rem;
  font-weight: 300;
  color: #000;
}
.category__item a:hover {
  opacity: 0.7;
}
.category__item::before {
  position: absolute;
  top: 50%;
  left: -22px;
  display: block;
  width: 17px;
  height: 17px;
  content: "";
  background-image: url(../img/common/icons/icon_circle_arrow_right.svg);
  background-size: cover;
  transform: translateY(-50%);
}

.button-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding: 14px 0 7px;
}
.button-link.is-active, .button-link:hover {
  background-color: #f7d8dc;
}
.button-link__img {
  margin-top: auto;
}
.button-link__text {
  display: flex;
  align-items: center;
  height: 3em;
  margin-top: 3px;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
}

.s-article-wrapper {
  width: 100%;
  height: auto;
  margin: calc(40px - 15px) auto 30px;
}
.s-article-wrapper__item {
  width: 100%;
  height: 174px;
  margin-top: 15px;
}

.hero {
  position: relative;
  height: 100px;
  background-image: url(/assets/img/limitedcar/mv_img.jpg);
  background-position: center center;
  background-size: cover;
}
.hero::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background-color: rgba(0, 0, 0, 0.5);
}
.hero__title {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
  transform: translate(-50%, -50%);
}

.s-nav {
  width: 100%;
  border-top: 1px solid #d83e4f;
}
.s-nav__list {
  display: flex;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
}
.s-nav__item {
  width: 20%;
  border-right: 1px solid #d83e4f;
}
.s-nav__item:first-child {
  border-left: 1px solid #d83e4f;
}
.s-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 70px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #d83e4f;
}
.s-nav__link:hover {
  background-color: #f7d8dc;
}

.s-tab {
  display: flex;
  margin-top: 30px;
}
.s-tab__item {
  width: 25%;
  height: 85px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-left: 1px solid #ccc;
}
.s-tab__item:last-of-type {
  border-right: 1px solid #ccc;
}

img {
  width: auto;
}

.main-wrapper {
  margin-bottom: 170px;
}

.s-container {
  width: 100%;
  height: auto;
  padding: 6px 15px;
  background-image: linear-gradient(-45deg, #d83e4f, #d83e4f 40%, rgba(216, 62, 79, 0.7) 40%, rgba(216, 62, 79, 0.7) 50%, #d83e4f 50%, #d83e4f 90%, rgba(216, 62, 79, 0.7) 90%, rgba(216, 62, 79, 0.7));
  background-repeat: repeat;
  background-size: 5px 5px;
}

.article__wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}
.article__wrapper.active::before {
  position: absolute;
  z-index: 1;
  display: block;
  width: 60px;
  height: 60px;
  content: "";
  background-image: url(/assets/img/limitedcar/NEW.png);
}
.article__inner {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  height: 100%;
  padding: 12px 30px 12px 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.article__inner:hover {
  opacity: 0.6;
}
.article__img {
  position: relative;
  width: 100%;
  max-width: 200px;
  overflow: hidden;
  max-width: 150;
  overflow: hidden;
}
.article__img::before {
  display: block;
  width: 100%;
  padding-top: 75%;
  content: "";
}
.article__img > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.article__img > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.article__discription-area {
  width: 980px;
  padding-left: 30px;
  overflow: hidden;
}
.article__tag-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.article__tag {
  height: 25px;
  padding: 5px 10px;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 15px;
  color: #000;
  border: 1px solid #000;
}
.article__date {
  max-width: 53%;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 20px;
  color: #000;
}
.article__title {
  padding-top: 10px;
  margin: 0;
  overflow: hidden;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 30px;
  color: #d83e4f;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.article__discription {
  margin-top: 30px;
  overflow: hidden;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.5;
  color: #000;
  height: calc(3em * 1.5 );
  overflow: hidden;
  line-height: 1.5;
}
@supports (-webkit-line-clamp: 3) {
  .article__discription {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }
}
@media (min-width: 45em){
  .button-link {
    padding: 16px;
  }
  .button-link__text {
    height: auto;
    margin-top: 8px;
    font-size: 0.875rem;
    line-height: 1.5;
  }
  .hero {
    height: 200px;
    background-image: url(/assets/img/limitedcar/limited_hero.jpg);
  }
  .hero__title {
    font-size: 6.1vw;
  }
  .s-tab {
    margin-top: 60px;
    margin-left: -8px;
  }
  .s-tab__item {
    width: calc(25% - 8px);
    height: 100px;
    margin-left: 8px;
    border-right: 1px solid #ccc;
    border-radius: 4px;
  }
  .article__discription {
    margin-top: 20px;
  }
}
@media (min-width: 61.25em){
  .button-link__text {
    font-size: 1rem;
  }
  .hero__title {
    font-size: 3.75rem;
  }
  .s-nav__link {
    font-size: 0.875rem;
  }
}
@media (max-width: 61.2489em){
  .single-hero--limited h1 {
    max-width: 720px;
  }
}
@media (max-width: 50em){
  .category-wrapper {
    margin: 60px auto 120px;
    border: none;
  }
  .category__title {
    padding: 0;
    text-align: left;
    border: none;
  }
  .category__list {
    display: block;
    width: 100%;
    padding: 0;
  }
  .category__item {
    margin: 30px 0 0 25px;
  }
}
@media (max-width: 44.9989em){
  .single-hero--limited {
    padding: 30px 0;
  }
  .single-hero--limited h1 {
    font-size: 1.5rem;
    line-height: 12px;
    text-align: center;
  }
  .title__wrapper {
    margin-top: 0;
    border-top: none;
  }
  .title__date-area {
    justify-content: space-between;
  }
  .s-article-wrapper__item {
    height: auto;
  }
  .s-nav {
    display: none;
  }
  .main-wrapper {
    margin-bottom: 120px;
  }
  .s-container {
    padding-top: 10px;
    padding-bottom: 10px;
    overflow-x: auto;
    white-space: nowrap;
    background-color: #d83e4f;
    -webkit-overflow-scrolling: touch;
  }
  .article__inner {
    display: block;
    padding: 20px 17px;
  }
  .article__img {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
  }
  .article__discription-area {
    width: 100%;
    padding: 15px 0 0;
  }
  .article__title {
    padding-top: 15px;
    text-overflow: inherit;
    white-space: inherit;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbGltaXRlZGNhci5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL2ZvbnQtd2VpZ2h0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vei1pbmRleC5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL2FzcGVjdC5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL19mb250cy5zY3NzIiwid2VicGFjazovLy8uL3BhZ2VzL2xpbWl0ZWRjYXIvbW9kdWxlcy9fc2luZ2xlLWxpbWl0ZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9tb2R1bGVzL2J1dHRvbi1saW5rLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9tb2R1bGVzL3MtYXJ0aWNsZS13cmFwcGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9tb2R1bGVzL3MtaGVyby13cmFwcGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9tb2R1bGVzL3MtbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9tb2R1bGVzL3MtdGFiLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvbGltaXRlZGNhci9saW1pdGVkY2FyLnNjc3MiLCJ3ZWJwYWNrOi8vLzxubyBzb3VyY2U+Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjs7OztFQUFBO0FBU0E7Ozs7O0VBQUE7QUErQkE7Ozs7O0VBQUE7QUFnQ0E7Ozs7O0VBQUE7QUErQkE7Ozs7O0VBQUE7QUFnQkE7Ozs7O0VBQUE7QUN2R0E7Ozs7O0VBQUE7QUNQQTs7OztFQUFBO0FDaUNBOzs7OztFQUFBO0FDN0JBOzs7O0VBQUE7QUNiQTs7Ozs7O0VBQUE7QUNZQTs7OztFQUFBO0FDWkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjtBUWxFRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJ5RUo7O0FRNURFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVIyRUo7QVF0RUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBUjhFTjtBUTNFRTtFQUNFO0VBQ0E7RUFDQTtBUjZFSjtBUXhFRTtFQUNFO0VBQ0E7RUFDQTtBUitFSjtBUTdFRTtFQUNFO0FSK0VKO0FRNUVJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUjhFTjs7QVF6RUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFRnJFQSxjRXNFZ0I7RUZyRWhCO0FOa0pGO0FNakpFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QU5tSko7QU1qSkU7RUcrRUE7RUFFRTtFQUNBO0VBQ0E7QVRvRUo7QVF4RkU7RUNnQkE7RUFFRTtFQUNBO0VBQ0E7QVQwRUo7O0FRekRBO0VBQ0U7RUFDQTtBUjRERjs7QVF4REU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSMkRKO0FRckRFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVI2REo7QVF0REU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSK0RKO0FReERFO0VBQ0U7QVJpRUo7QVE3REk7RUFDRTtFQUNBO0VBQ0E7QVJvRU47QVFuRU07RUFDRTtBUnFFUjtBUWxFSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSb0VOOztBVXBNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVZ1TUY7QVV0TUU7RUFFRTtBVnVNSjtBVWxNRTtFQUNFO0FWeU1KO0FVdk1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVnlNSjs7QVd2UkE7RUFDRTtFQUNBO0VBQ0E7QVh1U0Y7QVd0U0U7RUFDRTtFQUNBO0VBQ0E7QVh3U0o7O0FZelFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBWmlSRjtBWTVRRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVpvUko7QVlsUkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVpvUko7O0FhelNBO0VBQ0U7RUFDQTtBYnNURjtBYWxURTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FieVRKO0FhdlRFO0VBQ0U7RUFDQTtBYnlUSjtBYXhUSTtFQUNFO0FiMFROO0FhdlRFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWJ5VEo7QWFyVEk7RUFDRTtBYjRUTjs7QWNuWEE7RUFDRTtFQUNBO0Fkc1hGO0FjalhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZHlYSjtBY3hYSTtFQUNFO0FkMFhOOztBZXJaQTtFQUNFO0FmaWFGOztBZTlaQTtFQUNFO0FmaWFGOztBZTNaQTtFQUNFO0VBQ0E7RUFDQTtFTmdKQTtFQVdBO0VBRUE7QVR5UUY7O0FlelpFO0VBQ0U7RUFDQTtFQUNBO0Fmc2FKO0FlcGFNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWZzYVI7QWVsYUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZm9hSjtBZS9aSTtFQUNFO0FmdWFOO0FlcGFFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RVRoRUYsY1NpRWtCO0VUaEVsQjtBTnVlRjtBTXRlRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FOd2VKO0FNdGVFO0VHK0VBO0VBRUU7RUFDQTtFQUNBO0FUeVpKO0FlN2FJO0VOZ0JGO0VBRUU7RUFDQTtFQUNBO0FUc2FKO0FldGJFO0VBQ0U7RUFDQTtFQUNBO0Fmd2JKO0FlbGJFO0VBQ0U7RUFDQTtFQUNBO0FmMGJKO0FleGJFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWYwYko7QWV4YkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmMGJKO0FleGJFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmMGJKO0FlbmJFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VOU0Y7RUFDQTtFQUNBLGdCTVZzQjtBZjhieEI7QVNsYkU7RU1uQkE7SU5vQkU7SUFDQTtJQUNBLHFCTWZrQjtJTmdCbEI7RVRxYkY7QUFDRjtBZ0I5a0JBO0VOc0RBO0lBV0k7RVZ3TUY7RVVuTUE7SUFVSTtJQUNBO0lBQ0E7SUFDQTtFVjJNSjtFWXhQRjtJQU9JO0lBQ0E7RVptUkY7RVl2UUE7SUFXSTtFWnNSSjtFY3JVRjtJQUlJO0lBQ0E7RWR3WEY7RWN0WEE7SUFVSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VkMlhKO0VlclNBO0lBU0k7RWZ3Y0o7Q2dCbGxCRjtBQUFBO0VOc0VFO0lBZ0JJO0VWNk1KO0VZek9BO0lBY0k7RVp3Uko7RWEvUkE7SUFTSTtFYjJUSjtDZ0JyWUY7QUFBQTtFUlNFO0lBVUk7RVIyRUo7Q2dCOUZGO0FBQUE7RVJBQTtJQU1JO0VSeUVGO0VRdEVBO0lBYUk7SUFDQTtJQUNBO0VSNkVKO0VRdkVBO0lBTUk7SUFDQTtFUjZFSjtFUXBFQTtJQUtJO0VSK0VKO0VRUkE7SUFPSTtJQUNBO0VSNkRKO0VRMURBO0lBU0k7SUFDQTtJQUNBO0VSK0RKO0VRNURBO0lBT0k7SUFDQTtJQUNBO0VSaUVKO0VROURBO0lBR0k7RVJtRUo7RVdqT0E7SUFLSTtFWDBTSjtFYXJRRjtJQUlJO0Vid1RGO0VlN1ZGO0lBR0k7RWZtYUY7RWUvWkY7SUFNSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RWZ1YUY7RWVsWkE7SUFTSTtJQUNBO0Vmc2FKO0VlaGFBO0lBT0k7SUFDQTtJQUNBO0VmcWJKO0VlL2FBO0lBS0k7SUFDQTtFZjBiSjtFZWxhQTtJQVdJO0lBQ0E7SUFDQTtFZjRiSiIsImZpbGUiOiJkYWloYXRzdS9hc3NldHMvY3NzL2xpbWl0ZWRjYXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiDlgKTjgYwy44Gk5Lul5LiK44Gu6YWN5YiX44GL44Gp44GG44GL5Yik5a6a44GZ44KL6Zai5pWwXG4gKiBAcGFyYW0gIHthcnJheX0gJF9saXN0IOmFjeWIl+OBi+WIpOWumuOBl+OBn+OBhOWApFxuICogQHJldHVybiB7Ym9vbGV9ICAgICAgICDlgKTjgYwy44Gk5Lul5LiK44Gu6YWN5YiX44Gq44KJdHJ1ZVxuICovXG4vKipcbiAqIOaVsOWApOOCknJlbeOBq+WkieaPm+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkdGFyZ2V0ICAgICAgICByZW3jgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHRocmVzaG9sZCBbMV0g44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgIOaVsOWApOOBq3JlbeOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG4vKipcbiAqIOaVsOWApOOCkmVt44Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0YXJnZXQgICAgICAgICAgIGVt44Gr44GX44Gf44GE5pWw5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRwYXJlbnRWYWx1ZSBbMTZdIOOBl+OBjeOBhOWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICAgICAgICDmlbDlgKTjgatyZW3jgYzku5jjgYTjgZ/mlbDlgKTjgpLov5TjgZfjgb7jgZlcbiAqL1xuLyoqXG4gKiDmlbDlgKTjgpJweOOBq+WkieaPm+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkYXJnZXQgICAgICAgICAgcHjjgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHRocmVzaG9sZCBbMV0gIOOBl+OBjeOBhOWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICAgICAg5pWw5YCk44GrcHjjgYzku5jjgYTjgZ/mlbDlgKTjgpLov5TjgZfjgb7jgZlcbiAqL1xuLyoqXG4gKiBsaW5lLWhlaWdodOOBjDHjga7mmYLjgajlkIzjgZjjgavjgarjgovjgojjgYbjgatsaW5lLWhlaWdodOWIhuOBruW3ruWIhuOCkui/lOOBmemWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkbGluZUhlaWdodCBsaW5lSGVpZ2h044Gu5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRmb250U2l6ZSAgIGZvbnTjga7lgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAg5beu5YiG44Gu5pWw5YCkXG4gKi9cbi8qKlxuICog5rex44GE6ZqO5bGk44GubWFw44Gu5YCk44KS5Y+W5b6X44GX44Gm6L+U44GZ6Zai5pWw44Gn44GZ44CCXG4gKiBAcGFyYW0gIHttYXB9ICRtYXAgICBtYXDmnKzkvZNcbiAqIEBwYXJhbSAge21hcH0gJGtleXMgIG1hcOOBrmtleVxuICogQHJldHVybiB7bWFwfSAgICAgICAg5oyH5a6a44GX44GfbWFw44Gua2V5XG4gKi9cbi8qKlxuICogJGJyZWFrcG9pbnRz44Gu5Lit44Gu5pWw5YCk44KSQG1lZGlh44Gr5YWl44KM44GmZW3jgavjgZfjgabov5TjgZltaXhpblxuICogQHBhcmFtICB7YXJyYXl9ICAkYnJlYWtwb2ludCBbc21dICAkYnJlYWtwb2ludHPjga5rZXnjga5hcnJheVxuICogQHBhcmFtICB7c3RyaW5nfSAka2V5ICAgICAgICBbbWluXSBtaW4gb3IgbWF4XG4gKiBAcmV0dXJuIHt2b2lkfSAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSAoJGtleS13aWR0aCkge31cbiAqL1xuLyoqXG4gKiBmb250LXdlaWdodOOBruaVsOWApOOCkui/lOOBmemWouaVsFxuICogQHBhcmFtICB7U3RyaW5nfSAkd2VpZ2h0IHdlaWdodOOBruOCreODvOODr+ODvOODieWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgIHdlaWdodOOBrm51bWJlclxuICovXG4vKipcbiAqIOiJsuOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICAka2V5cyAgICAgIOmFjeWIl1xuICogQHBhcmFtICB7bnVtYmVyfSAkX29wYWNpdHkgIDAuMCB+IDFcbiAqIEByZXR1cm4ge21hcH0gICAgICAgICAgICAgICAkY29sb3Jz44Gu5Lu75oSP44Gua2V5XG4gKi9cbi8qKlxuICogei1pbmRleOOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICRrZXlzICDphY3liJdcbiAqIEByZXR1cm4ge21hcH0gICAkei1pbmRleOOBruS7u+aEj+OBrmtleVxuICovXG4vKipcbiAqIOaTrOS8vOimgee0oOOBp+OCouOCueODmuOCr+ODiOavlOOBrumgmOWfn+OCkueiuuS/neOBmeOCi21peGluXG4gKiBAcGFyYW0gIHskX3dpZHRofSAgICAgICAgICAgICAgICAgICDmqKrjga7lgKRcbiAqIEBwYXJhbSAgeyRfaGVpZ2h0fSAgICAgICAgICAgICAgICAgIOe4puOBruWApFxuICogQHBhcmFtICB7JF9wc2V1ZG9fZWxlbWVudH0gW2JlZm9yZV0g5raI6LK744GZ44KL55aR5Ly86KaB57SgIGJlZm9yZSBvciBhZnRlclxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuLyoqXG4gKiBmb25044KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gJGtleXMgIOmFjeWIl1xuICogQHJldHVybiB7bWFwfSAgICRmb250c+OBruS7u+aEj+OBrmtleVxuICovXG4uc2luZ2xlLWhlcm8tLWxpbWl0ZWQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkODNlNGY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC5zaW5nbGUtaGVyby0tbGltaXRlZCB7XG4gICAgcGFkZGluZzogMzBweCAwO1xuICB9XG59XG4uc2luZ2xlLWhlcm8tLWxpbWl0ZWQgaDEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAxMHB4O1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjEuMjQ4OWVtKSB7XG4gIC5zaW5nbGUtaGVyby0tbGltaXRlZCBoMSB7XG4gICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ0Ljk5ODllbSkge1xuICAuc2luZ2xlLWhlcm8tLWxpbWl0ZWQgaDEge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4udGl0bGVfX3dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiA2MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLnRpdGxlX193cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gIH1cbn1cbi50aXRsZV9fd3JhcHBlciBsaSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMjBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi50aXRsZV9fZGF0ZS1hcmVhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC50aXRsZV9fZGF0ZS1hcmVhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbi50aXRsZV9fdGFnIHtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnRpdGxlX19kYXRlIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cbi50aXRsZV9fbmFtZSBoMiB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgY29sb3I6ICNkODNlNGY7XG59XG5cbi5tYWluLXZpc3VhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogOTgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogOTAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1haW4tdmlzdWFsOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA5MS44MzY3MzQ2OTM5JTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tYWluLXZpc3VhbCA+IGltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG4ubWFpbi12aXN1YWwgPiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4ubGltaXRlZC1zaW5nbGUgLmJsb2ctcGFnZW5hdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uY2F0ZWdvcnktd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogODBweCBhdXRvIDE3MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC5jYXRlZ29yeS13cmFwcGVyIHtcbiAgICBtYXJnaW46IDYwcHggYXV0byAxMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbi5jYXRlZ29yeV9fdGl0bGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLmNhdGVnb3J5X190aXRsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuLmNhdGVnb3J5X19saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gIHdpZHRoOiA2ODBweDtcbiAgcGFkZGluZzogNDBweCAwO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLmNhdGVnb3J5X19saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4uY2F0ZWdvcnlfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC5jYXRlZ29yeV9faXRlbSB7XG4gICAgbWFyZ2luOiAzMHB4IDAgMCAyNXB4O1xuICB9XG59XG4uY2F0ZWdvcnlfX2l0ZW0gYSB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzAwMDtcbn1cbi5jYXRlZ29yeV9faXRlbSBhOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43O1xufVxuLmNhdGVnb3J5X19pdGVtOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY29tbW9uL2ljb25zL2ljb25fY2lyY2xlX2Fycm93X3JpZ2h0LnN2Zyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmJ1dHRvbi1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAxNHB4IDAgN3B4O1xufVxuLmJ1dHRvbi1saW5rLmlzLWFjdGl2ZSwgLmJ1dHRvbi1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDhkYztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5idXR0b24tbGluayB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgfVxufVxuLmJ1dHRvbi1saW5rX19pbWcge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuLmJ1dHRvbi1saW5rX190ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAzZW07XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ1ZW0pIHtcbiAgLmJ1dHRvbi1saW5rX190ZXh0IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLmJ1dHRvbi1saW5rX190ZXh0IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuLnMtYXJ0aWNsZS13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiBjYWxjKDQwcHggLSAxNXB4KSBhdXRvIDMwcHg7XG59XG4ucy1hcnRpY2xlLXdyYXBwZXJfX2l0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxNzRweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLnMtYXJ0aWNsZS13cmFwcGVyX19pdGVtIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmhlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9saW1pdGVkY2FyL212X2ltZy5qcGcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ1ZW0pIHtcbiAgLmhlcm8ge1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nL2xpbWl0ZWRjYXIvbGltaXRlZF9oZXJvLmpwZyk7XG4gIH1cbn1cbi5oZXJvOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi5oZXJvX190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiA2LjF2dztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLmhlcm9fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDMuNzVyZW07XG4gIH1cbn1cblxuLnMtbmF2IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDgzZTRmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ0Ljk5ODllbSkge1xuICAucy1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zLW5hdl9fbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zLW5hdl9faXRlbSB7XG4gIHdpZHRoOiAyMCU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkODNlNGY7XG59XG4ucy1uYXZfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkODNlNGY7XG59XG4ucy1uYXZfX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiA3MHB4O1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICNkODNlNGY7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAucy1uYXZfX2xpbmsge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbn1cbi5zLW5hdl9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Q4ZGM7XG59XG5cbi5zLXRhYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDVlbSkge1xuICAucy10YWIge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIH1cbn1cbi5zLXRhYl9faXRlbSB7XG4gIHdpZHRoOiAyNSU7XG4gIGhlaWdodDogODVweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG59XG4ucy10YWJfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5zLXRhYl9faXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gOHB4KTtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cblxuaW1nIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5tYWluLXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAxNzBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLm1haW4td3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTIwcHg7XG4gIH1cbn1cblxuLnMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNnB4IDE1cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICNkODNlNGYsICNkODNlNGYgNDAlLCByZ2JhKDIxNiwgNjIsIDc5LCAwLjcpIDQwJSwgcmdiYSgyMTYsIDYyLCA3OSwgMC43KSA1MCUsICNkODNlNGYgNTAlLCAjZDgzZTRmIDkwJSwgcmdiYSgyMTYsIDYyLCA3OSwgMC43KSA5MCUsIHJnYmEoMjE2LCA2MiwgNzksIDAuNykpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDVweCA1cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC5zLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkODNlNGY7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5cbi5hcnRpY2xlX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmFydGljbGVfX3dyYXBwZXIuYWN0aXZlOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvbGltaXRlZGNhci9ORVcucG5nKTtcbn1cbi5hcnRpY2xlX19pbm5lciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMzBweCAxMnB4IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NC45OTg5ZW0pIHtcbiAgLmFydGljbGVfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAyMHB4IDE3cHg7XG4gIH1cbn1cbi5hcnRpY2xlX19pbm5lcjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5hcnRpY2xlX19pbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtd2lkdGg6IDE1MDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5hcnRpY2xlX19pbWc6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDc1JTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5hcnRpY2xlX19pbWcgPiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ0Ljk5ODllbSkge1xuICAuYXJ0aWNsZV9faW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG4uYXJ0aWNsZV9faW1nID4gaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi5hcnRpY2xlX19kaXNjcmlwdGlvbi1hcmVhIHtcbiAgd2lkdGg6IDk4MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQuOTk4OWVtKSB7XG4gIC5hcnRpY2xlX19kaXNjcmlwdGlvbi1hcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNXB4IDAgMDtcbiAgfVxufVxuLmFydGljbGVfX3RhZy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmFydGljbGVfX3RhZyB7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICBjb2xvcjogIzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbn1cbi5hcnRpY2xlX19kYXRlIHtcbiAgbWF4LXdpZHRoOiA1MyU7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmFydGljbGVfX3RpdGxlIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgY29sb3I6ICNkODNlNGY7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ0Ljk5ODllbSkge1xuICAuYXJ0aWNsZV9fdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gIH1cbn1cbi5hcnRpY2xlX19kaXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwO1xuICBoZWlnaHQ6IGNhbGMoM2VtICogMS41ICk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDogMykge1xuICAuYXJ0aWNsZV9fZGlzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5hcnRpY2xlX19kaXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxufSIsIi8qKlxuICog5YCk44GMMuOBpOS7peS4iuOBrumFjeWIl+OBi+OBqeOBhuOBi+WIpOWumuOBmeOCi+mWouaVsFxuICogQHBhcmFtICB7YXJyYXl9ICRfbGlzdCDphY3liJfjgYvliKTlrprjgZfjgZ/jgYTlgKRcbiAqIEByZXR1cm4ge2Jvb2xlfSAgICAgICAg5YCk44GMMuOBpOS7peS4iuOBrumFjeWIl+OBquOCiXRydWVcbiAqL1xuQGZ1bmN0aW9uIGlzX2FycmF5KCRfbGlzdCkge1xuICBAcmV0dXJuIHR5cGUtb2YoJF9saXN0KSA9PSBsaXN0IG9yIHR5cGUtb2YoJF9saXN0KSA9PSBhcmdsaXN0O1xufVxuXG4vKipcbiAqIOaVsOWApOOCknJlbeOBq+WkieaPm+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkdGFyZ2V0ICAgICAgICByZW3jgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHRocmVzaG9sZCBbMV0g44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgIOaVsOWApOOBq3JlbeOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG5AZnVuY3Rpb24gX3JlbSgkdGFyZ2V0LCAkdGhyZXNob2xkKSB7XG4gIEBpZih1bml0KCR0YXJnZXQpICE9ICcnKSB7XG4gICAgQGVycm9yICdyZW3jgavjgZfjgZ/jgYTmlbDlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnO1xuICB9IEBlbHNlIGlmKHVuaXQoJHRocmVzaG9sZCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ+OBl+OBjeOBhOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCdcbiAgfSBAZWxzZSBpZigkdGFyZ2V0ID09IDApIHtcbiAgICBAcmV0dXJuICR0YXJnZXQ7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gKCgoJHRhcmdldCAvIDE2KSAqICR0aHJlc2hvbGQpICogMXJlbSk7XG4gIH1cbn1cblxuLy/nrKzkuIDlvJXmlbDjgavphY3liJfjgpLmuKHjgZnjgZPjgajjgYzlj6/og73jgavjgarjgaPjgZ9cbkBmdW5jdGlvbiByZW0oJHRhcmdldCwgJHRocmVzaG9sZDogMSkge1xuICBAaWYoaXNfYXJyYXkoJHRhcmdldCkpIHtcbiAgICAkbmV3X3JlbV9hcnJheTogKCk7XG4gICAgQGVhY2ggJHRhcmdldF9pdGVtIGluICR0YXJnZXQge1xuICAgICAgJG5ld19yZW1fYXJyYXk6IGFwcGVuZCgkbmV3X3JlbV9hcnJheSwgX3JlbSgkdGFyZ2V0X2l0ZW0sICR0aHJlc2hvbGQpKTtcbiAgICB9XG4gICAgQHJldHVybiAkbmV3X3JlbV9hcnJheTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBfcmVtKCR0YXJnZXQsJHRocmVzaG9sZCk7XG4gIH1cbn1cblxuLyoqXG4gKiDmlbDlgKTjgpJlbeOBq+WkieaPm+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkdGFyZ2V0ICAgICAgICAgICBlbeOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkcGFyZW50VmFsdWUgWzE2XSDjgZfjgY3jgYTlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAgICAgICAg5pWw5YCk44GrcmVt44GM5LuY44GE44Gf5pWw5YCk44KS6L+U44GX44G+44GZXG4gKi9cbkBmdW5jdGlvbiBfZW0oJHRhcmdldCwgJHBhcmVudFZhbHVlKSB7XG4gIEBpZih1bml0KCR0YXJnZXQpICE9ICcnKSB7XG4gICAgQGVycm9yICdlbeOBq+OBl+OBn+OBhOaVsOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCc7XG4gIH0gQGVsc2UgaWYodW5pdCgkcGFyZW50VmFsdWUpICE9ICcnKSB7XG4gICAgQGVycm9yICfopqropoHntKDjga7mlbDlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnXG4gIH0gQGVsc2UgaWYoJHRhcmdldCA9PSAwKSB7XG4gICAgQHJldHVybiAkdGFyZ2V0O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICgoJHRhcmdldCAvIDE2KSAqIDFlbSk7XG4gIH1cbn1cblxuLy/nrKzkuIDlvJXmlbDjgavphY3liJfjgpLmuKHjgZnjgZPjgajjgYzlj6/og73jgavjgarjgaPjgZ9cbkBmdW5jdGlvbiBlbSgkdGFyZ2V0LCAkcGFyZW50VmFsdWU6IDE2KSB7XG4gIEBpZihpc19hcnJheSgkdGFyZ2V0KSkge1xuICAgICRuZXdfZW1fYXJyYXk6ICgpO1xuICAgIEBlYWNoICR0YXJnZXRfaXRlbSBpbiAkdGFyZ2V0IHtcbiAgICAgICRuZXdfZW1fYXJyYXk6IGFwcGVuZCgkbmV3X2VtX2FycmF5LCBfZW0oJHRhcmdldF9pdGVtLCAkcGFyZW50VmFsdWUpKTtcbiAgICB9XG4gICAgQHJldHVybiAkbmV3X2VtX2FycmF5O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIF9lbSgkdGFyZ2V0LCRwYXJlbnRWYWx1ZSk7XG4gIH1cbn1cblxuXG4vKipcbiAqIOaVsOWApOOCknB444Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRhcmdldCAgICAgICAgICBweOOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSAg44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICDmlbDlgKTjgatweOOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG5AZnVuY3Rpb24gX3B4KCR0YXJnZXQsICR0aHJlc2hvbGQpIHtcbiAgQGlmKHVuaXQoJHRhcmdldCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ3B444Gr44GX44Gf44GE5pWw5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJztcbiAgfSBAZWxzZSBpZih1bml0KCR0aHJlc2hvbGQpICE9ICcnKSB7XG4gICAgQGVycm9yICfjgZfjgY3jgYTlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnXG4gIH0gQGVsc2UgaWYoJHRhcmdldCA9PSAwKSB7XG4gICAgQHJldHVybiAkdGFyZ2V0O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICgoJHRhcmdldCAqICR0aHJlc2hvbGQpICogMXB4KTtcbiAgfVxufVxuXG4vL+esrOS4gOW8leaVsOOBq+mFjeWIl+OCkua4oeOBmeOBk+OBqOOBjOWPr+iDveOBq+OBquOBo+OBn1xuQGZ1bmN0aW9uIHB4KCR0YXJnZXQsICR0aHJlc2hvbGQ6IDEpIHtcbiAgQGlmKGlzX2FycmF5KCR0YXJnZXQpKSB7XG4gICAgJG5ld19weF9hcnJheTogKCk7XG4gICAgQGVhY2ggJHRhcmdldF9pdGVtIGluICR0YXJnZXQge1xuICAgICAgJG5ld19weF9hcnJheTogYXBwZW5kKCRuZXdfcHhfYXJyYXksIF9weCgkdGFyZ2V0X2l0ZW0sICR0aHJlc2hvbGQpKTtcbiAgICB9XG4gICAgQHJldHVybiAkbmV3X3B4X2FycmF5O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIF9weCgkdGFyZ2V0LCR0aHJlc2hvbGQpO1xuICB9XG59XG5cbi8qKlxuICogbGluZS1oZWlnaHTjgYwx44Gu5pmC44Go5ZCM44GY44Gr44Gq44KL44KI44GG44GrbGluZS1oZWlnaHTliIbjga7lt67liIbjgpLov5TjgZnplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJGxpbmVIZWlnaHQgbGluZUhlaWdodOOBruWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkZm9udFNpemUgICBmb25044Gu5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgIOW3ruWIhuOBruaVsOWApFxuICovXG5AZnVuY3Rpb24gbWFyZ2luKCRfbGluZUhlaWdodCwgJF9mb250U2l6ZSkge1xuICBAaWYodW5pdCgkX2xpbmVIZWlnaHQpICE9ICcnKSB7XG4gICAgQGVycm9yICdsaW5lLWhlaWdodOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCc7XG4gIH0gQGVsc2UgaWYodW5pdCgkX2ZvbnRTaXplKSAhPSAnJykge1xuICAgIEBlcnJvciAnZm9udC1zaXpl44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJztcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoJF9mb250U2l6ZSAqICRfbGluZUhlaWdodCAtICRfZm9udFNpemUpIC8gMjtcbiAgfVxufVxuXG4vKipcbiAqIOa3seOBhOmajuWxpOOBrm1hcOOBruWApOOCkuWPluW+l+OBl+OBpui/lOOBmemWouaVsOOBp+OBmeOAglxuICogQHBhcmFtICB7bWFwfSAkbWFwICAgbWFw5pys5L2TXG4gKiBAcGFyYW0gIHttYXB9ICRrZXlzICBtYXDjga5rZXlcbiAqIEByZXR1cm4ge21hcH0gICAgICAgIOaMh+WumuOBl+OBn21hcOOBrmtleVxuICovXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgIEBpZiAobm90IG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cbiAgQHJldHVybiAkbWFwO1xufVxuIiwiLy/jg5bjg6zjg7zjgq/jg53jgqTjg7Pjg4jjga7lrprnvqlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL+ODoeODh+OCo+OCouOCr+OCqOODquOBruWkieaVsFxuJGJyZWFrcG9pbnRzOiAoXG4gIHhzOiAzNjUsXG4gIHNtOiA3MjAsXG4gIG1kOiA5ODAsXG4gIGxnOiAxMjAwXG4pO1xuXG4vL+OCq+ODs+ODl+OBruOCpOODs+ODiuODvOaoquW5hVxuJHdyYXBwZXItd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtZCApO1xuLy/jgrnjg57jg5vmmYLjga7lt6blj7Pjga5wYWRkaW5nXG4kd3JhcHBlci1wYWRkaW5nOiAyMDtcblxuLyoqXG4gKiAkYnJlYWtwb2ludHPjga7kuK3jga7mlbDlgKTjgpJAbWVkaWHjgavlhaXjgozjgaZlbeOBq+OBl+OBpui/lOOBmW1peGluXG4gKiBAcGFyYW0gIHthcnJheX0gICRicmVha3BvaW50IFtzbV0gICRicmVha3BvaW50c+OBrmtleeOBrmFycmF5XG4gKiBAcGFyYW0gIHtzdHJpbmd9ICRrZXkgICAgICAgIFttaW5dIG1pbiBvciBtYXhcbiAqIEByZXR1cm4ge3ZvaWR9ICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICgka2V5LXdpZHRoKSB7fVxuICovXG5AbWl4aW4gbWVkaWEoJF9icmVha3BvaW50czogc20sICRfa2V5OiBtaW4pIHtcbiAgLy8kX2JyZWFrcG9pbnRz44GuRXJyb3LmpJzlh7pcbiAgQGVhY2ggJF9oYXNfYnJlYWtwb2ludCBpbiAkX2JyZWFrcG9pbnRzIHtcbiAgICAkX2N1cnJlbnRfaW5kZXg6IGluZGV4KCRfYnJlYWtwb2ludHMsICRfaGFzX2JyZWFrcG9pbnQpO1xuICAgIEBpZihtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRfaGFzX2JyZWFrcG9pbnQpID09IGZhbHNlKSB7XG4gICAgICBAZXJyb3IgJ+esrOS4gOW8leaVsOOBriN7JF9jdXJyZW50X2luZGV4feebruOBruWApCN7JF9oYXNfYnJlYWtwb2ludH3jga/nhKHlirnjgarlgKTjgafjgZnjgIInO1xuICAgIH1cbiAgfVxuICAvLyRfa2V544GMbWlu44GLbWF444GL44GuRXJyb3LmpJzlh7pcbiAgJGtleV9hcnJheTogKG1pbixtYXgpO1xuICBAaWYoaW5kZXgoJGtleV9hcnJheSwgJF9rZXkpID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ+esrOS6jOW8leaVsCN7JF9rZXl944Gv54Sh5Yq544Gq5YCk44Gn44GZ44CCbWluIG9yIG1heOOBp+aMh+WumuOBl+OBpuOBj+OBoOOBleOBhOOAgidcbiAgfVxuXG4gICRfYnJlYWtwb2ludC1sZW5ndGg6IGxlbmd0aCgkX2JyZWFrcG9pbnRzKTtcbiAgQGlmKCRfYnJlYWtwb2ludC1sZW5ndGggPT0gMSkge1xuXG4gICAgJF9maXJzdF9icmVha3BvaW50OiBudGgoJF9icmVha3BvaW50cywxKTtcbiAgICAkX2ZpcnN0X2JyZWFrcG9pbnRfdmFsdWU6IG1hcF9nZXQoJGJyZWFrcG9pbnRzLCRfZmlyc3RfYnJlYWtwb2ludCk7XG4gICAgQGlmICgkX2tleSA9PSBtYXgpIHtcbiAgICAgIEBtZWRpYSAoI3skX2tleX0td2lkdGg6IGVtKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSkgLSAuMDAxMSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICgkX2tleSA9PSBtaW4pIHtcbiAgICAgIEBtZWRpYSAoI3skX2tleX0td2lkdGg6IGVtKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSkpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gIH0gQGVsc2UgaWYoJF9icmVha3BvaW50LWxlbmd0aCA9PSAyKSB7XG5cbiAgICAkX2ZpcnN0X2JyZWFrcG9pbnQ6IG50aCgkX2JyZWFrcG9pbnRzLDEpO1xuICAgICRfc2Vjb25kX2JyZWFrcG9pbnQ6IG50aCgkX2JyZWFrcG9pbnRzLDIpO1xuICAgICRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZTogbWFwX2dldCgkYnJlYWtwb2ludHMsJF9maXJzdF9icmVha3BvaW50KTtcbiAgICAkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlOiBtYXBfZ2V0KCRicmVha3BvaW50cywkX3NlY29uZF9icmVha3BvaW50KTtcbiAgICAkX21heF92YWx1ZTogbWF4KCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSwkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlKTtcbiAgICAkX21pbl92YWx1ZTogbWluKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSwkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlKTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBlbSgkX21pbl92YWx1ZSkpIGFuZCAobWF4LXdpZHRoOiBlbSgkX21heF92YWx1ZSkgLSAuMDAxMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciAn56ys5LiA5byV5pWw44Gv5pyA5aSnMuOBpOOBl+OBi+ioreWumuOBp+OBjeOBvuOBm+OCk+OAgidcbiAgfVxufVxuIiwiJGZvbnQtd2VpZ2h0OiAoXG4gIHRoaW46IDEwMCxcbiAgbGlnaHQ6IDMwMCxcbiAgcmVndWxhcjogNDAwLFxuICBtZWRpdW06IDUwMCxcbiAgYm9sZDogNzAwLFxuICBibGFjazogOTAwXG4pO1xuXG4vKipcbiAqIGZvbnQtd2VpZ2h044Gu5pWw5YCk44KS6L+U44GZ6Zai5pWwXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICR3ZWlnaHQgd2VpZ2h044Gu44Kt44O844Ov44O844OJ5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgd2VpZ2h044GubnVtYmVyXG4gKi9cbkBmdW5jdGlvbiBmb250LXdlaWdodCgkX3dlaWdodCkge1xuICBAaWYobWFwLWhhcy1rZXkoJGZvbnQtd2VpZ2h0LCAkX3dlaWdodCkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvbnQtd2VpZ2h0LCAkX3dlaWdodCk7XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciAn5L2/44GI44KL5YCk44Gv5Lul5LiL44Gn44GZ4oaSI3ttYXAta2V5cygkZm9udC13ZWlnaHQpfSdcbiAgfVxufSIsIi8v6Imy44Gu5a6a576pXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRjb2xvcnM6IChcbiAgd2hpdGU6ICNmZmYsXG4gIGJsYWNrOiAjMDAwLFxuICByZWQ6ICNkODNlNGYsXG4gIGdyYXk6ICM1OTU3NTcsXG4gIHNub3c6ICNlZmVmZWYsXG4gIHNpbHZlcjogI2NjYyxcbiAgbmF2eTogIzAwNDBhNyxcbiAgYmx1ZTogIzAwYTBlOSxcbiAgZ3JlZW46ICMwMDkxM2EsXG4gIHBpbms6ICNmN2Q4ZGMsXG4gIHRleHQ6IChcbiAgICBibGFjazogIzIyMTgxNSxcbiAgICBkZWVwcmVkOiAjZGMyNjNmLFxuICAgIGxpZ2h0cmVkOiAjZTczZTUxLFxuICApLFxuICBiZDogKFxuICAgIGdyYXk6ICNjY2MsXG4gICAgYmxhY2s6ICMyMjE4MTUsXG4gICAgZGVlcHJlZDogI2RjMjYzZixcbiAgICBsaWdodHJlZDogI2U3M2U1MSxcbiAgKSxcbiAgYmc6IChcbiAgICBncmF5OiAjZWZlZmVmLFxuICAgIGJsYWNrOiAjMjIxODE1LFxuICAgIGRlZXByZWQ6ICNkYzI2M2YsXG4gICAgbGlnaHRyZWQ6ICNlNzNlNTEsXG4gICksXG4gIGVsZWM6IChcbiAgICBwaW5rOiNmZmIyYmMsXG4gICAgeWVsbG93OiAjZmZlMjQwLFxuICAgIHNpbHZlcjogIzcwNzA3MCxcbiAgICBsaWdodHNpbHZlcjogI2NkY2VjZSxcbiAgICBsLXBpbms6ICNmZGQwZDAsXG4gICAgZC1waW5rOiAjZmZkYmRiLFxuICAgIG8tcGluazogI2ZmZWJlZSxcbiAgICBnb2xkOiAjZTdlM2RhLFxuICApXG4pO1xuXG4vKipcbiAqIOiJsuOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICAka2V5cyAgICAgIOmFjeWIl1xuICogQHBhcmFtICB7bnVtYmVyfSAkX29wYWNpdHkgIDAuMCB+IDFcbiAqIEByZXR1cm4ge21hcH0gICAgICAgICAgICAgICAkY29sb3Jz44Gu5Lu75oSP44Gua2V5XG4gKi9cbkBmdW5jdGlvbiBjb2xvcigkX2tleXMsJF9vcGFjaXR5OiBudWxsKSB7XG4gIEBpZigkX29wYWNpdHkgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gcmdiYShtYXAtZGVlcC1nZXQoJGNvbG9ycywgJF9rZXlzLi4uKSwkX29wYWNpdHkpXG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWRlZXAtZ2V0KCRjb2xvcnMsICRfa2V5cy4uLilcbiAgfVxufVxuIiwiJHotaW5kZXg6IChcbiAgaGFtOiA1MDIsXG4gIGduYXY6IDUwMSxcbiAgcmVzZXJ2ZWQ6IDUwMCxcbiAgZnJvbnQ6IDIwMCxcbiAgbW9kYWw6IChcbiAgICBtYWluOiAxMDEsXG4gICksXG4gIG1haW46IDEsXG4gIGJhY2s6IC0xXG4pO1xuXG5cbi8qKlxuICogei1pbmRleOOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICRrZXlzICDphY3liJdcbiAqIEByZXR1cm4ge21hcH0gICAkei1pbmRleOOBruS7u+aEj+OBrmtleVxuICovXG5AZnVuY3Rpb24gei1pbmRleCgka2V5cykge1xuICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkei1pbmRleCwgJGtleXMuLi4pO1xufVxuIiwiLyoqXG4gKiDmk6zkvLzopoHntKDjgafjgqLjgrnjg5rjgq/jg4jmr5Tjga7poJjln5/jgpLnorrkv53jgZnjgottaXhpblxuICogQHBhcmFtICB7JF93aWR0aH0gICAgICAgICAgICAgICAgICAg5qiq44Gu5YCkXG4gKiBAcGFyYW0gIHskX2hlaWdodH0gICAgICAgICAgICAgICAgICDnuKbjga7lgKRcbiAqIEBwYXJhbSAgeyRfcHNldWRvX2VsZW1lbnR9IFtiZWZvcmVdIOa2iOiyu+OBmeOCi+eWkeS8vOimgee0oCBiZWZvcmUgb3IgYWZ0ZXJcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbkBtaXhpbiBhc3BlY3QoJF93aWR0aCwgJF9oZWlnaHQsICRfcHNldWRvX2VsZW1lbnQ6IGJlZm9yZSkge1xuICBtYXgtd2lkdGg6ICRfd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gICY6OiN7JF9wc2V1ZG9fZWxlbWVudH0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKCRfd2lkdGgvJF9oZWlnaHQpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG4gID4gaW1ne1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uO1xuICB9XG59XG4iLCIkZm9udHM6IChcbiAgamE6IChcbiAgICBzYW5zOiAoJ05vdG8gU2FucyBKUCcsIHNhbnMtc2VyaWYpLFxuICAgIHNlcmlmOiAoJ05vdG8gU2VyaWYgSlAnLCBzZXJpZilcbiAgKSxcbiAgZW46IChcbiAgICByb2JvdG86ICgnUm9ib3RvJywgc2Fucy1zZXJpZiksXG4gICAgZGFuY2luZzogKCdEYW5jaW5nIFNjcmlwdCcsIGN1cnNpdmUpLFxuICAgIGpvc2VmaW46ICgnSm9zZWZpbiBTbGFiJywgc2VyaWYpXG4gIClcbik7XG5cbi8qKlxuICogZm9udOOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICRrZXlzICDphY3liJdcbiAqIEByZXR1cm4ge21hcH0gICAkZm9udHPjga7ku7vmhI/jga5rZXlcbiAqL1xuQGZ1bmN0aW9uIGZvbnQoJGtleXMpIHtcbiAgQHJldHVybiBtYXAtZGVlcC1nZXQoJGZvbnRzLCAka2V5cy4uLik7XG59XG4iLCIuc2luZ2xlLWhlcm8tLWxpbWl0ZWR7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNDBweCAwO1xuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBjb2xvcihyZWQpO1xuICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgfVxuXG4gIGgxe1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAxMHB4O1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LXNpemU6IHJlbSg0MCk7XG4gICAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKG1kLG1heCl7XG4gICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuICAgICAgZm9udC1zaXplOiByZW0oMjQpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi50aXRsZXtcbiAgJl9fd3JhcHBlcntcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3Ioc2lsdmVyKTtcbiAgICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICAgIGxpe1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihzaWx2ZXIpO1xuICAgIH1cbiAgfVxuICAmX19kYXRlLWFyZWF7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuICB9XG4gICZfX3RhZ3tcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoYm9sZCk7XG4gIH1cbiAgJl9fZGF0ZXtcbiAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gIH1cbiAgJl9fbmFtZXtcbiAgICBoMntcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChtZWRpdW0pO1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICBjb2xvcjogY29sb3IocmVkKTtcbiAgICB9XG4gIH1cbn1cblxuLm1haW4tdmlzdWFse1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk4MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBhc3BlY3QoOTAwLDk4MCk7XG4gID4gaW1ne1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uO1xuICB9XG59XG5cbi8vLnRleHR7XG4vLyAgJl9fd3JhcHBlcntcbi8vICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgaGVpZ2h0OiBhdXRvO1xuLy8gICAgbWFyZ2luLXRvcDogY2FsYyg0MHB4IC0gMjVweCk7XG4vLyAgbWFyZ2luLWJvdHRvbTogMjVweDtcbi8vICBmb250LXNpemU6IHJlbSgxNSk7XG4vLyAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KGxpZ2h0KTtcbi8vICBsaW5lLWhlaWdodDogMS41O1xuLy8gICYgPiBoMXtcbi8vICAgIGZvbnQtc2l6ZTogMmVtO1xuLy8gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAgICBsaW5lLWhlaWdodDogMTtcbi8vICB9XG4vLyAgJiA+IGgye1xuLy8gICAgZm9udC1zaXplOiAxLjVlbTtcbi8vICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgbGluZS1oZWlnaHQ6IDEuMzM7XG4vLyAgfVxuLy8gICYgPiBoM3tcbi8vICAgIGZvbnQtc2l6ZTogMS4xN2VtO1xuLy8gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAgICBsaW5lLWhlaWdodDogMTtcbi8vICB9XG4vLyAgJiA+IGg0e1xuLy8gICAgZm9udC1zaXplOiAxZW07XG4vLyAgICBmb250LXdlaWdodDogYm9sZDtcbi8vICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4vLyAgfVxuLy99XG4vL31cblxuLmxpbWl0ZWQtc2luZ2xlIC5ibG9nLXBhZ2VuYXRpb257XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uY2F0ZWdvcnl7XG4gICYtd3JhcHBlcntcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiA4MHB4IGF1dG8gMTcwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yKHNpbHZlcik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKHNpbHZlcik7XG4gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbiAgICAgIG1hcmdpbjogNjBweCBhdXRvIDEyMHB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICAmX190aXRsZXtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChsaWdodCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihzaWx2ZXIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgJl9fbGlzdHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgIHdpZHRoOiA2ODBweDtcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwIDtcbiAgICB9XG4gIH1cbiAgJl9faXRlbXtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbiAgICAgIG1hcmdpbjogMzBweCAwIDAgMjVweDtcbiAgICB9XG4gICAgYXtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE5KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChsaWdodCk7XG4gICAgICBjb2xvcjogY29sb3IoYmxhY2spO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICB9XG4gICAgfVxuICAgICY6OmJlZm9yZXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogLTI1cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxN3B4O1xuICAgICAgaGVpZ2h0OiAxN3B4O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9pY29ucy9pY29uX2NpcmNsZV9hcnJvd19yaWdodC5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSU5ERVhcbi8vIOODu0lF55So44Gu44OW44Op44Km44K244OP44OD44KvXG4vLyDjg7vjg5vjg5Djg7zjga7oqK3lrppcbi8vIOODu+ODhuOCreOCueODiOODm+ODkOODvOOBruioreWumlxuLy8g44O755S75YOP44Ob44OQ44O844Gu6Kit5a6aXG4vLyDjg7vjg6Hjg4fjgqPjgqLjgq/jgqjjg6rjg7zjga7oqK3lrppcbi8vIOODu3Bvc2l0aW9u44GubWl4aW5cbi8vIOODu2ZsZXjjga5taXhpblxuLy8g44O7d3JhcHBlcuOBi+OCieOBrumWi+aUvlxuLy8g44O755aR5Ly86KaB57Sg44GncGFkZGluZy10b3Bcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vSUXnlKjjga7jg5bjg6njgqbjgrbjg4/jg4Pjgq9cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGllaGFjayB7XG4gIEBhdC1yb290IGJvZHkuaWUud2luZG93cyAmIHtcbiAgICBAY29udGVudDtcbiAgfVxuICAvL2pz44KS5YiH44Gj44Gm44GE44KLSUUxMeeUqOOBruODleOCqeODvOODq+ODkOODg+OCr1xuICBAYXQtcm9vdCBfOi1tcy1mdWxsc2NyZWVuLCA6cm9vdCAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL+ODm+ODkOODvOOBruioreWumlxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gX2hvdmVyIHtcbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBpZWhhY2sge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8v44OG44Kt44K544OI44Ob44OQ44O844Gu6Kit5a6aXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBob3ZlcigkbmFtZTpudWxsKSB7XG4gIEBpZiAoJG5hbWUgIT0gbnVsbCkgeyRuYW1lOiB0by1sb3dlci1jYXNlKHVucXVvdGUoJG5hbWUpKTt9XG4gIEBpZigkbmFtZSA9PSBudWxsKSB7XG4gICAgQGluY2x1ZGUgX2hvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG5hbWUgPT0gJ29wYScge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xuICAgIEBpbmNsdWRlIF9ob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG4gIH1cbiAgQGlmICRuYW1lID09ICd1bmRlcicge1xuICAgIEBpbmNsdWRlIF9ob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGNvbG9yOiBjb2xvcihyZWQpO1xuICAgIH1cbiAgfVxuICBAaWYgJG5hbWUgPT0gJ2J1dHRvbicge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dDtcbiAgICBAaW5jbHVkZSBfaG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmcgZGVlcHJlZCk7XG4gICAgfVxuICB9XG59XG5cbi8v55S75YOP44Ob44OQ44O844Gu6Kit5a6aXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBob3ZlcmltZygkZ2l6aTpiZWZvcmUpIHtcbiAgJjo6I3skZ2l6aX0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC41cztcbiAgfVxuICBAaW5jbHVkZSBfaG92ZXIge1xuICAgICY6OiN7JGdpeml9IHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwuNSk7XG4gICAgfVxuICB9XG59XG5cbi8vcG9zaXRpb27jga5taXhpblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiB4eSkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBpZiAkcG9zaXRpb24gPT0geHkge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICB9XG4gIEBpZiAkcG9zaXRpb24gPT0geCB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHkge1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxufVxuXG4vL2ZsZXjjga5taXhpblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gZmxleCgkcG9zaXRpb246eHkpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgQGlmICRwb3NpdGlvbiA9PSB4eSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHgge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIEBpZiAkcG9zaXRpb24gPT0geSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4vL3dyYXBwZXLjgYvjgonjga7plovmlL5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG92ZXJmbG93KCRwYWRkaW5nOiBudWxsKSB7XG4gICRpc3BhZGRpbmc6ICRwYWRkaW5nICE9bnVsbDtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDUwJSAtIDUwdncpO1xuICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgLSA1MHZ3KTtcbiAgQGlmICRwYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoNTB2dyAtIDUwJSk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyg1MHZ3IC0gNTAlKTtcbiAgfVxufVxuXG4vLyAqIOihjOaVsOOBq+OCiOOCi+ecgeeVpVxuLy8gKiBAcGFyYW0ge0ludGVyZ2VyfSAkbGluZXMg6KGo56S644GZ44KL6KGM5pWwXG4vLyAqIEBwYXJhbSB7TnVtYmVyfSAkbGluZS1oZWlnaHQg6KiI566X44Gr5L2/55So44GZ44KL6KGM6auYXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBlbGxpcHNpcygkbGluZXMsICRsaW5lLWhlaWdodCkge1xuICBoZWlnaHQ6IGNhbGMoI3skbGluZXN9ZW0gKiAjeyRsaW5lLWhlaWdodH0gKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuICBAc3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDogJGxpbmVzKSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lcztcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9XG59XG5cbi8vIOaWnOOCgeOCueODiOODqeOCpOODl1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlcygkY29sb3IxOiAkcHJpbWFyeSwgJGNvbG9yMjogJHByaW1hcnktbGlnaHQsICRhbmdsZTogLTQ1ZGVnLCAkc3RyaXBlMS13aWR0aDogNXB4LCAkc3RyaXBlMi13aWR0aDogMXB4KSB7XG4gIEBpZiAoJHN0cmlwZTItd2lkdGggPT0gbnVsbCkge1xuICAgICRzdHJpcGUyLXdpZHRoOiBudWxsO1xuICB9XG5cbiAgJHRpbGUtc2l6ZTogKCRzdHJpcGUxLXdpZHRoICsgJHN0cmlwZTItd2lkdGgpICogMjtcbiAgJHN0cmlwZTItc3RhcnQ6ICgkc3RyaXBlMS13aWR0aCAvICR0aWxlLXNpemUpICogMTAwJTtcbiAgJHN0cmlwZTMtc3RhcnQ6ICRzdHJpcGUyLXN0YXJ0ICsgKCgkc3RyaXBlMi13aWR0aCAvICR0aWxlLXNpemUpICogMTAwJSk7XG4gICRzdHJpcGU0LXN0YXJ0OiAkc3RyaXBlMy1zdGFydCArICgoJHN0cmlwZTEtd2lkdGggLyAkdGlsZS1zaXplKSAqIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgJGFuZ2xlLFxuICAgICRjb2xvcjEsXG4gICAgJGNvbG9yMSAkc3RyaXBlMi1zdGFydCxcbiAgICAkY29sb3IyICRzdHJpcGUyLXN0YXJ0LFxuICAgICRjb2xvcjIgJHN0cmlwZTMtc3RhcnQsXG4gICAgJGNvbG9yMSAkc3RyaXBlMy1zdGFydCxcbiAgICAkY29sb3IxICRzdHJpcGU0LXN0YXJ0LFxuICAgICRjb2xvcjIgJHN0cmlwZTQtc3RhcnQsXG4gICAgJGNvbG9yMlxuICApO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuXG4gIGJhY2tncm91bmQtc2l6ZTogJHRpbGUtc2l6ZSAkdGlsZS1zaXplO1xufVxuXG5cbiRkZWZhdWx0LWxpbmUtaGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vICoqXG4vLyAqIOODhuOCreOCueODiOODnOODg+OCr+OCueOBrmxpbmUtaGVpZ2h05YiG44KSbmVnYXRpdmUgbWFyZ2lu44Gn6Zmk5Y6744GZ44KLXG4vLyAqIEBwYXJhbSB7P051bWJlcn0gJGxpbmUtaGVpZ2h0IOaMh+WumuOBmeOCi2xpbmUtaGVpZ2h0XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbkBtaXhpbiB0cmltKCRsaW5lLWhlaWdodDogJGRlZmF1bHQtbGluZS1oZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogdHJpbSgkbGluZS1oZWlnaHQpO1xuICBtYXJnaW4tYm90dG9tOiB0cmltKCRsaW5lLWhlaWdodCk7XG59XG5cbi8vICoqXG4vLyAqIOODhuOCreOCueODiOODnOODg+OCr+OCueOBrmxpbmUtaGVpZ2h05YiG44KSbmVnYXRpdmUgbWFyZ2lu44Gn6Zmk5Y6744GZ44KLXG4vLyAqIEBwYXJhbSB7P051bWJlcn0gJGxpbmUtaGVpZ2h0IOaMh+WumuOBmeOCi2xpbmUtaGVpZ2h0XG4vLyAqIEByZXR1cm4ge051bWJlcn0gbGluZS1oZWlnaHTjga7ljYrliIZbZW1dXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbkBmdW5jdGlvbiB0cmltKCRsaW5lLWhlaWdodDogJGRlZmF1bHQtbGluZS1oZWlnaHQpIHtcbiAgQHJldHVybiAtKCRsaW5lLWhlaWdodCAtIDEpIC8gMiAqIDFlbTtcbn1cbiIsIi8vLnMtdGFie1xuLy8gICYtaW5uZXJ7XG4vLyAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICB3aWR0aDogMTAwJTtcbi8vICAgIGhlaWdodDogMTAwJTtcbi8vICAgIHBhZGRpbmc6IDE2cHg7XG4vLyAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvcihzaWx2ZXIpO1xuLy8gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuLy8gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbi8vICAgICAgcGFkZGluZzogMTVweCA1cHggMTBweDtcbi8vICAgICAgYm9yZGVyLXJhZGl1czogMDtcbi8vICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpe1xuLy8gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuLy8gICAgICB9XG4vLyAgICB9XG4vLyAgICAmLmFjdGl2ZXtcbi8vICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocGluayk7XG4vLyAgICB9XG4vLyAgfVxuLy8gICYtaXRlbXtcbi8vICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgd2lkdGg6IDEwMCU7XG4vLyAgICBoZWlnaHQ6IDEwMCU7XG4vLyAgfVxuLy8gICZfX2ljb24sJl9fdGV4dHtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIGxlZnQ6IDUwJTtcbi8vICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbi8vICB9XG4vLyAgJl9faWNvbntcbi8vICAgIGJvdHRvbTogMzBweDtcbi8vICB9XG4vLyAgJl9fdGV4dHtcbi8vICAgIGJvdHRvbTogMDtcbi8vICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgbWFyZ2luOiAxMHB4IDAgMDtcbi8vICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbi8vICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChsaWdodCk7XG4vLyAgICBsaW5lLWhlaWdodDogMjRweDtcbi8vICAgIGNvbG9yOiAjMDAwO1xuLy8gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuLy8gICAgQGluY2x1ZGUgbWVkaWEobWQsbWF4KXtcbi8vICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuLy8gICAgICBsaW5lLWhlaWdodDogMTJweDtcbi8vICAgIH1cbi8vICAgIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4vLyAgICAgIGZvbnQtc2l6ZTogcmVtKDgpO1xuLy8gICAgfVxuLy8gIH1cbi8vfVxuXG4uYnV0dG9uLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDE0cHggMCAxNHB4IC0gbWFyZ2luKCgyNC8xMCksMTApO1xuICAmLmlzLWFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocGluayk7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoc20pIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICB9XG4gICZfX2ltZyB7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgfVxuICAmX190ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAyZW0gKiAxLjU7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcbiAgICBmb250LXdlaWdodDogZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgbGluZS1oZWlnaHQ6ICgxMi8xMCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIG1lZGlhKHNtKSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAxMnB4IC0gbWFyZ2luKCgyNC8xNiksMTYpO1xuICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgbGluZS1oZWlnaHQ6ICgyNC8xNik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKG1kKSB7XG4gICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgfVxuICB9XG59XG4iLCIucy1hcnRpY2xlLXdyYXBwZXJ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogY2FsYyg0MHB4IC0gMTVweCkgYXV0byAzMHB4O1xuICAmX19pdGVte1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTc0cHg7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8ucy1oZXJvLXdyYXBwZXJ7XG4vLyAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gIHdpZHRoOiAxMDAlO1xuLy8gIGhlaWdodDogMjAwcHg7XG4vLyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nL2xpbWl0ZWRjYXIvbGltaXRlZF9oZXJvLmpwZyk7XG4vLyAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuLy8gIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4vLyAgICBoZWlnaHQ6IDEwMHB4O1xuLy8gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nL2xpbWl0ZWRjYXIvbXZfaW1nLmpwZyk7XG4vLyAgfVxuLy8gICY6OmJlZm9yZXtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIHRvcDogMDtcbi8vICAgIGxlZnQ6IDA7XG4vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgY29udGVudDogJyc7XG4vLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsLjUpO1xuLy8gIH1cbi8vICBoMXtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIHRvcDogNTAlO1xuLy8gICAgbGVmdDogNTAlO1xuLy8gICAgZm9udC1zaXplOiA0dnc7XG4vLyAgICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoYm9sZCk7XG4vLyAgICBjb2xvcjogI2ZmZjtcbi8vICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG4vLyAgICBAaW5jbHVkZSBtZWRpYShtZCxtYXgpIHtcbi8vICAgICAgZm9udC1zaXplOiByZW0oMzYpO1xuLy8gICAgfVxuLy8gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbi8vICAgICAgZm9udC1zaXplOiA1dnc7XG4vLyAgICB9XG4vLyAgfVxuLy99XG5cbi5oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvbGltaXRlZGNhci9tdl9pbWcuanBnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgQGluY2x1ZGUgbWVkaWEoc20pIHtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9saW1pdGVkY2FyL2xpbWl0ZWRfaGVyby5qcGcpO1xuICB9XG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibGFjaywuNSk7XG4gIH1cbiAgJl9fdGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiByZW0oMjQpO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChib2xkKTtcbiAgICBjb2xvcjogY29sb3Iod2hpdGUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgIEBpbmNsdWRlIG1lZGlhKHNtKSB7XG4gICAgICBmb250LXNpemU6IDYuMXZ3O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShtZCkge1xuICAgICAgZm9udC1zaXplOiByZW0oNjApO1xuICAgIH1cbiAgfVxufSIsIi8vLnMtbmF2e1xuLy8gIGRpc3BsYXk6IGJsb2NrO1xuLy8gIHdpZHRoOiAxMDAlO1xuLy8gIGhlaWdodDogNzBweDtcbi8vICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IocmVkKTtcbi8vICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuLy8gICAgZGlzcGxheTogbm9uZTtcbi8vICB9XG4vLyAgJl9fbWVudXtcbi8vICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLyAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgd2lkdGg6IDEwMCU7XG4vLyAgICBtYXgtd2lkdGg6IDEwMTBweDtcbi8vICAgIGhlaWdodDogMTAwJTtcbi8vICAgIHBhZGRpbmc6IDAgMTVweDtcbi8vICAgIG1hcmdpbjogMCBhdXRvO1xuLy8gICAgbGl7XG4vLyAgICAgIHdpZHRoOiAxOTZweDtcbi8vICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuLy8gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBjb2xvcihyZWQpO1xuLy8gICAgICAmOmZpcnN0LWNoaWxke1xuLy8gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY29sb3IocmVkKTtcbi8vICAgICAgfVxuLy8gICAgfVxuLy8gIH1cbi8vfVxuLy9cbi8vXG4vLy5zLW5hdi1saXN0e1xuLy8gIHdpZHRoOiAxMDAlO1xuLy8gIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChtZWRpdW0pO1xuLy8gIGNvbG9yOiBjb2xvcihyZWQpO1xuLy8gICY6aG92ZXJ7XG4vLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwaW5rKTtcbi8vICAgICYgPiBhe1xuLy8gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4vLyAgICB9XG4vLyAgfVxuLy8gIGF7XG4vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgZm9udC1zaXplOiByZW0oMTQpO1xuLy8gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4vLyAgfVxuLy99XG5cbi5zLW5hdiB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IocmVkKTtcbiAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAmX19saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgJl9faXRlbSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS81KTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBjb2xvcihyZWQpO1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihyZWQpO1xuICAgIH1cbiAgfVxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICBmb250LXdlaWdodDogZm9udC13ZWlnaHQobWVkaXVtKTtcbiAgICBjb2xvcjogY29sb3IocmVkKTtcbiAgICBAaW5jbHVkZSBtZWRpYShtZCkge1xuICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHBpbmspO1xuICAgIH1cbiAgfVxufSIsIi8vLnMtdGFiLXdyYXBwZXJ7XG4vLyAgZGlzcGxheTogZmxleDtcbi8vICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4vLyAgd2lkdGg6IDEwMCU7XG4vLyAgaGVpZ2h0OiAxMDBweDtcbi8vICBtYXJnaW46IDYwcHggYXV0byAwO1xuLy8gIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4vLyAgICBoZWlnaHQ6IDg1cHg7XG4vLyAgICBtYXJnaW4tdG9wOiAzMHB4O1xuLy8gIH1cbi8vICAmID4gYXtcbi8vICAgIHdpZHRoOiAyMzhweDtcbi8vICAgIGhlaWdodDogMTAwJTtcbi8vICAgIEBpbmNsdWRlIG1lZGlhKHNtLG1heCkge1xuLy8gICAgICB3aWR0aDogMjAwcHg7XG4vLyAgICB9XG4vLyAgICAmOmhvdmVye1xuLy8gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwaW5rKTtcbi8vICAgIH1cbi8vICB9XG4vL31cblxuLnMtdGFiIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgQGluY2x1ZGUgbWVkaWEoc20pe1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIH1cbiAgJl9faXRlbSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS80KTtcbiAgICBoZWlnaHQ6IDg1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yKHNpbHZlcik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKHNpbHZlcik7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihzaWx2ZXIpO1xuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGNvbG9yKHNpbHZlcik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKHNtKSB7XG4gICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMS80KX0gLSA4cHgpO1xuICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBjb2xvcihzaWx2ZXIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vZm91bmRhdGlvbic7XG5AaW1wb3J0ICdtb2R1bGVzL19zaW5nbGUtbGltaXRlZC5zY3NzJztcbkBpbXBvcnQgJ21vZHVsZXMvYnV0dG9uLWxpbmsuc2Nzcyc7XG5AaW1wb3J0ICdtb2R1bGVzL3MtYXJ0aWNsZS13cmFwcGVyLnNjc3MnO1xuQGltcG9ydCAnbW9kdWxlcy9zLWhlcm8td3JhcHBlci5zY3NzJztcbkBpbXBvcnQgJ21vZHVsZXMvcy1uYXYuc2Nzcyc7XG5AaW1wb3J0ICdtb2R1bGVzL3MtdGFiLnNjc3MnO1xuXG5cbmltZ3tcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5tYWluLXdyYXBwZXJ7XG4gIG1hcmdpbi1ib3R0b206IDE3MHB4O1xuICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMjBweDtcbiAgfVxufVxuXG4ucy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiA2cHggMTVweDtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtc3RyaXBlcyhjb2xvcihyZWQpLCBjb2xvcihyZWQsLjcpLCAtNDVkZWcsIDJweCwgLjVweCk7XG4gIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHJlZCk7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5cbi5hcnRpY2xle1xuICAmX193cmFwcGVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgJi5hY3RpdmV7XG4gICAgICAmOjpiZWZvcmV7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvbGltaXRlZGNhci9ORVcucG5nKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19pbm5lcntcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMzBweCAxMnB4IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3Ioc2lsdmVyKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMjBweCAxN3B4O1xuICAgIH1cbiAgICAmOmhvdmVye1xuICAgICAgb3BhY2l0eTogLjY7XG4gICAgfVxuICB9XG4gICZfX2ltZ3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIGFzcGVjdCgxNTAsMjAwKTtcbiAgICBAaW5jbHVkZSBtZWRpYShzbSxtYXgpe1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICAgID4gaW1ne1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb247XG4gICAgfVxuICB9XG4gICZfX2Rpc2NyaXB0aW9uLWFyZWF7XG4gICAgd2lkdGg6IDk4MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIG1lZGlhKHNtLG1heCl7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDE1cHggMCAwO1xuICAgIH1cbiAgfVxuICAmX190YWctd3JhcHBlcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG4gICZfX3RhZ3tcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgZm9udC1zaXplOiByZW0oMTApO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChib2xkKTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICBjb2xvcjpjb2xvcihibGFjayk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IoYmxhY2spO1xuICB9XG4gICZfX2RhdGV7XG4gICAgbWF4LXdpZHRoOiA1MyU7XG4gICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChyZWd1bGFyKTtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjpjb2xvcihibGFjayk7XG4gIH1cbiAgJl9fdGl0bGV7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChtZWRpdW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGNvbG9yOiBjb2xvcihyZWQpO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgQGluY2x1ZGUgbWVkaWEoc20sbWF4KXtcbiAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgICAgdGV4dC1vdmVyZmxvdzogaW5oZXJpdDtcbiAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuICAmX19kaXNjcmlwdGlvbntcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodChsaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBAaW5jbHVkZSBlbGxpcHNpcygzLDEuNSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoc20pe1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsbnVsbF0sInNvdXJjZVJvb3QiOiIifQ==*/