/**
 * @group Color
 * @label Base Color (used for navbar, widget titles, etc.)
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Header/Footer Color
 * @type color
 * @default_value #222
 */
/**
 * @group Color
 * @label Pre-Footer Color
 * @type color
 * @default_value #ddd
 */
/**
 * @group Color
 * @label Color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Hover color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Background color of post meta boxes (author bio, related posts, etc.)
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Body Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Page Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Text Color
 * @type color
 * @default_value #333
 */
/**
 * @group Basics
 * @label Default Vertical Spacing
 * @type pixels
 * @default_value 24px
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type text
 * @default_value "Helvetica Neue", Helvetica, Arial, sans-serif
 */
/**
 * @group Typography
 * @label Serif Font Family
 * @type text
 */
/**
 * @group Typography
 * @label Base Font Size
 * @type pixels
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type dropdown
 * @options @serifFontFamily|@sansFontFamily
 * @default_value @serifFontFamily
 */
/**
 * @group Typography
 * @label Base Line Height
 * @type text
 * @default_value 1.5
 */
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}
.clearfix:after {
  clear: both;
}
.visuallyhidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 28px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
html.nav-open,
html.nav-open body {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.navbar {
  *position: relative;
  *z-index: 2;
  overflow: visible;
  margin-bottom: 4.8px;
  color: #484848;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.navbar .container {
  width: auto;
}
.navbar .toggle-nav-bar {
  display: none;
}
.navbar .navbar-inner {
  background-color: #ffffff;
}
.navbar .navbar-text {
  margin-bottom: 0;
}
.navbar #header-social li > a {
  padding-left: 4px;
  padding-right: 4px;
}
.navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0;
  color: #484848;
}
.navbar .nav > li > a {
  color: #484848;
}
.navbar li {
  display: block;
  float: left;
  margin-bottom: 0;
}
.navbar li > a {
  display: block;
  text-decoration: none;
  line-height: 40px;
  padding-left: 10px;
  padding-right: 10px;
}
.navbar li.dropdown > a {
  padding-right: 0;
}
.navbar li.dropdown .dropdown-menu li a {
  color: #484848;
  padding-right: 10px;
  line-height: 1.5;
}
.navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar li > a:hover {
  background-color: #f2f2f2;
  color: #3b3b3b;
}
.navbar li > a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar .sub-menu:before,
.navbar .sub-sub-menu:before {
  border-bottom: 9px solid transparent;
  border-left: none;
  border-right: 9px solid rgba(0, 0, 0, 0.2);
  border-top: 9px solid transparent;
  left: -9px;
  top: 30%;
}
.navbar .sub-menu:after,
.navbar .sub-sub-menu:after {
  border-top: 8px solid transparent;
  border-left: none;
  border-right: 8px solid #ffffff;
  border-bottom: 8px solid transparent;
  top: 31%;
  left: -8px;
}
.navbar li.home-icon a:hover,
.navbar li.home-link a:hover {
  background-color: transparent;
  color: #319ecf;
}
.navbar .home-icon:hover img,
.navbar li.home-link:hover i {
  opacity: 0.85;
  filter: alpha(opacity=85);
}
.navbar li.home-link {
  overflow: hidden;
}
.navbar li.home-link > a {
  display: block;
}
.navbar li.home-link > a:hover {
  background: none;
}
.navbar li.home-link > a img {
  display: block;
  height: 40px;
  width: 40px;
}
.navbar li.home-icon > a {
  padding: 0;
}
.navbar li.home-icon > a:hover {
  background: none;
}
.navbar li.home-icon > a img {
  display: inline-block;
  height: 24px;
  width: auto;
  margin-right: 1em;
}
.navbar .btn-navbar {
  display: none;
  float: left;
  margin-right: 10px;
  background-color: transparent;
  border: none;
  padding: 12.5px 10px;
}
.navbar .btn-navbar .label {
  float: right;
  color: white;
  line-height: 1;
  margin: -2px 0 0 5px;
  padding: 0;
  font-size: 15px;
}
.navbar .btn-navbar .navbar .btn-navbar .bars {
  float: left;
}
.navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 3px;
}
.navbar .btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
}
@media (min-width: 769px) {
  .navbar .nav-left {
    display: none;
  }
}
@media (max-width: 768px) {
  .navbar {
    position: relative;
    z-index: 9;
  }
  .navbar li.dropdown .dropdown-menu li a {
    line-height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 40px;
  }
  .navbar .container {
    width: auto;
    padding: 0;
  }
  .navbar .toggle-nav-bar {
    display: block;
  }
  .navbar .nav-shelf {
    background: #ffffff;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    visibility: hidden;
    opacity: 0;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
  .navbar .nav-shelf .site-name,
  .navbar .nav-shelf .home-icon,
  .navbar .nav-shelf .home-link {
    display: none;
  }
  .navbar .nav-shelf ul,
  .navbar .nav-shelf li {
    float: none;
  }
  .navbar .nav-shelf li.home-link {
    display: none;
  }
  .navbar .nav-shelf li b.caret {
    float: right;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
  }
  .navbar .nav-shelf li.open > a .caret {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu {
    display: block;
    position: relative;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    border: none;
    padding: 0;
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu:before,
  .navbar .nav-shelf li.open > ul.dropdown-menu:after {
    display: none;
  }
  .navbar .nav-shelf .nav > li:last-child {
    border-bottom: none;
    padding-bottom: none;
  }
  .navbar.open .nav-shelf {
    visibility: visible;
    opacity: 1;
    border-bottom: 1px solid #dddddd;
  }
  .navbar .nav li.home-link,
  .navbar .nav li.site-name {
    display: none;
  }
}
.navbar-inner {
  float: left;
  width: 100%;
}
.caret {
  display: inline-block;
  position: relative;
  width: 16px;
  padding: 0 8px;
  top: 2px;
}
.caret:before {
  display: block;
  position: relative;
  width: 0;
  height: 0;
  border-top: 6px solid #484848;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  border-bottom: 5px solid transparent;
  content: "";
}
.dropup,
.dropdown {
  position: relative;
}
.dropup .caret,
.dropdown .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}
.dropup.active .caret,
.dropdown.active .caret {
  opacity: 1;
  filter: alpha(opacity=100);
}
.dropdown-toggle {
  *margin-bottom: -3px;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 3px 0;
  margin: 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.dropdown-menu li {
  padding-top: 0;
  width: 100%;
}
.dropdown-menu li {
  margin-bottom: 0;
}
.dropdown-menu li > a {
  display: block;
  width: auto;
  padding: 3px 15px;
  clear: both;
  white-space: nowrap;
  text-shadow: none;
}
.dropdown-menu li > a:hover {
  text-decoration: none;
}
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
  color: #484848;
  background-color: #ffffff;
}
.dropdown-menu:before {
  content: '';
  display: inline-block;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #dddddd;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: -10px;
  left: 9px;
}
.dropdown-menu:after {
  content: '';
  display: inline-block;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #ffffff;
  position: absolute;
  top: -9px;
  left: 10px;
}
.dropdown-menu .sub-menu,
.dropdown-menu .sub-sub-menu {
  position: absolute;
  top: -20%;
  left: 99%;
  visibility: hidden;
  margin-top: 0;
}
.dropdown-menu .icon-arrow-right {
  position: relative;
  top: 2px;
  left: 3px;
}
.dropdown-menu li:hover .sub-menu,
.dropdown-menu .sub-menu li:hover .sub-sub-menu {
  visibility: visible;
  display: block;
}
@media (max-width: 768px) {
  .dropdown-menu li:hover .sub-sub-menu,
  .dropdown-menu li:hover .sub-menu {
    display: none;
    visibility: hidden;
  }
  .dropdown-menu li:hover .sub-sub-menu:before,
  .dropdown-menu li:hover .sub-menu:before {
    display: none;
  }
}
@media (min-width: 769px) {
  html.no-touch ul.nav li.dropdown:hover ul.dropdown-menu,
  html.touch ul.nav li.dropdown.open ul.dropdown-menu {
    display: block;
  }
}
.open {
  *z-index: 1000;
}
.open > .dropdown-menu {
  display: block;
}
@media (min-width: 769px) {
  .open > .dropdown-menu {
    display: none;
  }
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px solid #000000;
  content: "\2191";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}
#topics-bar {
  padding: 3px 0;
}
#topics-bar ul {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#topics-bar ul li {
  display: inline;
  margin-right: 10px;
  white-space: nowrap;
  font-size: 14px;
}
#topics-bar ul li.menu-label {
  font-size: 15px;
  font-weight: bold;
}
#main-nav.navbar {
  border-top: 1px solid #aaaaaa;
  border-bottom: 1px solid #aaaaaa;
}
.sticky-nav-container {
  margin: 0 auto;
  position: relative;
}
.sticky-nav-holder {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99998;
  visibility: hidden;
  opacity: 0;
  background-color: #ffffff;
  border-bottom: 1px solid #dddddd;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.sticky-nav-holder.transitioning {
  overflow: hidden;
  height: 56px;
}
.sticky-nav-holder.transitioning .navbar {
  opacity: 0;
}
.sticky-nav-holder.show {
  visibility: visible;
  opacity: 1;
}
body.admin-bar .sticky-nav-holder {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .sticky-nav-holder {
    top: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar .sticky-nav-holder {
    top: 0;
  }
}
@media (min-width: 769px) {
  .sticky-nav-holder {
    display: none;
  }
  body .sticky-nav-holder.main_nav_hide_article,
  body .sticky-nav-holder.sticky_nav_display {
    display: block;
  }
}
.navbar.sticky-navbar {
  margin-bottom: 0;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.navbar.sticky-navbar .nav {
  color: #484848;
}
.navbar.sticky-navbar li a {
  line-height: 56px;
  color: #484848;
}
.navbar.sticky-navbar li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar li a .caret:before {
  border-top-color: #484848;
}
.navbar.sticky-navbar li a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar.sticky-navbar li.home-link > a:hover {
  color: #555555;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a {
  color: #484848;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar .social-icons {
  margin: 0;
  float: left;
}
.navbar.sticky-navbar .btn-navbar {
  padding: 0 10px 0 10px;
  margin-right: 0;
  line-height: 56px;
}
.navbar.sticky-navbar .btn-navbar .bars {
  display: inline-block;
}
.navbar.sticky-navbar .btn-navbar .icon-bar {
  background-color: #484848;
}
.navbar.sticky-navbar .btn-navbar:hover .icon-bar {
  background-color: #3b3b3b;
}
.navbar.sticky-navbar.home-link {
  min-width: 40px;
  text-align: center;
}
.navbar.sticky-navbar.home-link .nav > li a img {
  width: 1.49em;
  height: 1.49em;
}
.navbar.sticky-navbar.home-link .nav > li .icon-home:before {
  position: relative;
  top: 0;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span {
  padding: 4px 8px;
  color: #ffffff;
  background-color: #b43434;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span:hover {
  background-color: #c63b3b;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span i {
  display: none;
}
.navbar.sticky-navbar .nav-right .form-search {
  position: relative;
}
.navbar.sticky-navbar .nav-right .form-search .toggle {
  color: transparent;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  position: relative;
  z-index: 91;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
}
.navbar.sticky-navbar .nav-right .form-search .input-append {
  position: absolute;
  right: 44px;
  top: 0;
  right: 0;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: 10px;
  z-index: 90;
  width: 246px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append .text-input-wrapper {
  display: block;
  float: left;
  width: 196px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append input {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  height: 36px !important;
}
.navbar.sticky-navbar .nav-right .form-search .input-append button {
  width: 50px !important;
  height: 36px !important;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append {
  position: absolute;
  opacity: 1;
  visibility: visible;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append,
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .toggle {
  background-color: #343434;
  color: #ffffff;
}
.navbar.sticky-navbar .nav-left > ul {
  margin: 0;
  padding: 0;
}
@media (min-width: 769px) {
  .navbar.sticky-navbar .nav-left {
    display: none;
  }
}
.navbar.sticky-navbar .site-name {
  display: block;
  color: #343434;
}
.navbar.sticky-navbar .site-name a {
  font-weight: bold;
  padding: 0 10px 0 0;
  color: #484848;
  max-width: 214px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.navbar.sticky-navbar .site-name a:hover {
  background-color: transparent;
  color: #3b3b3b;
  text-decoration: none;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
@media (max-width: 768px) {
  .navbar.sticky-navbar li.dropdown .dropdown-menu li a {
    line-height: 56px;
  }
  .navbar.sticky-navbar .nav-shelf b.caret {
    padding: 22px;
  }
}
#menu-overflow > ul {
  overflow-y: scroll;
  max-height: 80vh;
}
#menu-overflow > ul .caret::before,
#menu-overflow > ul .caret::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu {
  position: relative;
  border: none;
  float: none;
  box-shadow: none;
}
#menu-overflow > ul ul.dropdown-menu li a {
  padding-left: 1.5em;
}
#menu-overflow > ul ul.dropdown-menu::before,
#menu-overflow > ul ul.dropdown-menu::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu .sub-menu,
#menu-overflow > ul ul.dropdown-menu .sub-sub-menu {
  display: none;
}
/**
 * Before Footer, Site Footer
 *
 * #before-footer - a dynamic widget area prior to #site-footer
 * #site-footer
 *   #supplementary - primary widget zones for site footer
 *   #boilerplate - social icons, copyright, INN logo and footer links
 *
 * @since 0.5.3
 */
.before-footer-wrapper {
  background-color: #dddddd;
}
#before-footer .widget:last-child {
  margin-bottom: 0;
}
.footer-bg {
  background-color: #222222;
  padding: 0 0 18px;
  margin-bottom: 0;
}
#supplementary {
  padding: 24px 0 0 0;
}
#supplementary._1col aside {
  text-align: center;
}
/* specific to the one column footer layout */
._1col .widget_nav_menu li {
  display: inline;
  margin-right: 1em;
}
/*
 * image displays 300px wide, but is physically 1699x385 px^2
 * We'll use math to get the padding top and bottom correct, according to the brand guidelines
 * margin top and margin bottom should be equal to the height of one of the squares.
 * By cropping the image to the outer boundary of the lower-left square in inn_logo_reversetype.png, we get a square height of 184px.
 * 184/1669 = x/300
 */
#inn-logo {
  margin-top: 22.04913122px;
  margin-bottom: 16.53684841px;
  max-width: 200px;
}
#footer-logos-bg {
  background-color: #ffffff;
  padding: 10px 0;
}
#footer-logos {
  overflow: hidden;
}
#footer-logos a {
  display: block;
  float: left;
  width: 16.666666667%;
}
#footer-logos a img {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto;
}
#footer-logos h6 {
  margin-bottom: 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid #dddddd;
  font-size: 12px;
  color: #7d8185;
  text-transform: uppercase;
  font-weight: normal;
}
#footer-logos h6 a {
  float: right;
  text-align: right;
}
ul#footer-social {
  padding-top: 22.04913122px;
  padding-bottom: 16.53684841px;
  margin: 0 auto;
  width: 100%;
}
@media (max-width: 768px) {
  ul#footer-social {
    text-align: left;
  }
}
ul#footer-social li {
  height: 46.13541043px;
  display: table-cell;
  vertical-align: middle;
  font-size: 18px;
}
@media (max-width: 768px) {
  ul#footer-social li {
    margin-top: 0;
  }
}
ul#footer-social li a {
  padding-right: 10px;
  padding-top: 16.07737739px;
}
ul#footer-social li i {
  position: relative;
  top: 0;
  padding: 5px;
  margin-top: 27.56141402;
  font-size: 18px;
  color: #ffffff;
}
ul#footer-social li i:hover {
  color: #bfbfbf;
}
ul#footer-social li:last-child a {
  padding-right: 0;
}
#boilerplate {
  width: 100%;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#boilerplate p {
  margin-bottom: 0;
  color: #9F9FA3;
}
#boilerplate .menu {
  display: inline;
  margin: 0;
  font-size: 10.672px;
}
#boilerplate .menu li {
  display: inline;
  padding-right: 10px;
}
#boilerplate .menu {
  clear: none;
}
footer #boilerplate p {
  color: #9F9FA3;
}
footer #boilerplate a {
  color: #dddddd;
}
footer #boilerplate a:hover {
  color: #09C9FF;
}
@media (min-width: 769px) {
  #boilerplate .span6.right {
    text-align: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media (min-width: 979px) {
  .footer-credit-padding-inn-logo-missing {
    margin-top: 84.72139005px;
  }
}
@media (max-width: 979px) {
  #boilerplate .row-fluid .span6 {
    width: 100%;
    clear: both;
    margin-left: 0;
    text-align: center;
  }
  ul#footer-social {
    display: inline-block;
    width: auto;
    margin: 0 auto;
  }
  .footer-credit span {
    display: block;
  }
}
.back-to-top {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
body.normal.single-post article.post > header .entry-date,
body.normal.single-post article.post > header .sep {
  display: inline;
}
.top-date {
  display: none;
}
.byline .twitter {
  margin-left: 0.3em;
}
.byline .twitter a:hover {
  color: #55acee;
}
p.wp-caption-text {
  font-family: "helvetica neue", helvetica, sans-serif;
  font-size: 14px !important;
  font-weight: 400;
  letter-spacing: 0.0125em;
}
figcaption cite {
  font-style: normal;
}
/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 700;
  color: #484848;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: #484848;
}
/*  Nats changes to heading sizes  */
.entry-content h1,
entry-content h2 {
  font-size: 30px;
}
.entry-content h3 {
  font-size: 24px;
}
.entry-content h4,
.entry-content h5 .entry-content h6 {
  font-size: 20px;
}
.entry-content h5,
.entry-content h6 {
  color: gray;
}
#topics-bar ul li {
  text-transform: capitalize;
}
/* end nat's changes */
a {
  color: #b43434;
}
a:hover {
  color: #b43434;
  text-decoration: underline;
}
p,
button,
input,
select,
textarea {
  font-family: "leitura-news", Georgia, serif;
  font-weight: 300;
}
h5.byline {
  font-family: "helvetica neue", helvetica, sans-serif;
}
/* Largo Helvetica Overrides */
.top-tag,
.nav,
.top-date,
.load-more,
.post-social > span,
.rss-subscribe-link,
.tags,
.related-items p,
.subscribe,
.widget.largo-series-posts li a,
ul.staff-roster .staff-name,
.archive-background .related-topics,
.labels,
.navbar,
.pager,
.post-pagination a,
.post-pagination span,
#sidebar .widget_analytic-bridge-popular-posts ol li::before {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.widgettitle,
.stories h3.widgettitle {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
}
.widgettitle a,
.stories h3.widgettitle a {
  color: #226f91;
}
.widget {
  padding: 0;
}
.widget h5 {
  font-weight: 400;
}
.widget img.attachment-large,
.widget img.attachment-medium {
  padding-bottom: 0;
  margin-bottom: 0.66em;
}
#sidebar .widget {
  margin-top: 24px;
}
#sidebar .widget:first-child {
  margin-top: 0;
}
#sidebar .widgettitle {
  font-size: 24px;
}
.author-box ul li a {
  background-color: #226f91;
}
.author-box ul li a:hover {
  background-color: #2c8fba;
}
.article-bottom .author-box .widgettitle {
  font-size: 24px;
  border-bottom: none;
  padding-bottom: 0;
}
.widget-area .largo-taxonomy-list h5 {
  margin-bottom: 0;
}
.largo-taxonomy-list a {
  color: #484848;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.largo-taxonomy-list a:hover {
  color: #226f91;
}
.largo-taxonomy-list img {
  margin-bottom: 1em;
}
.largo-taxonomy-list li {
  margin-bottom: 20px;
}
.saved-links {
  border: 1px solid #aaaaaa;
  padding: 24px;
}
.source {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.widget.saved-links .post-lead p {
  font-size: 12px;
}
.widget.saved-links .post-lead h5 {
  padding: 0;
}
.widget.saved-links .post-lead p.description {
  margin-bottom: 6px;
}
.dfw-unit {
  text-align: center;
}
.dfw-unit:before {
  content: "Advertisement";
  text-align: center;
  font-family: "helvetica neue", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 10px;
  width: 100%;
  color: #7d8185;
  display: block;
}
#header-ad-zone-container div div,
#before-footer div div,
.ad-zone.center div div {
  margin: 0 auto;
}
#header-ad-zone-container .dfw-unit:before,
#before-footer .dfw-unit:before,
.ad-zone.center .dfw-unit:before {
  content: none;
}
#header-ad-zone-container {
  width: 100%;
  border-bottom: 1px solid #ccc;
  padding: 5px 0;
}
.before-footer-wrapper {
  background-color: #fff;
}
#before-footer {
  padding: 4px 0 8px;
}
#sidebar .widget_analytic-bridge-popular-posts li + li {
  border-top: none;
  margin-top: 0;
  padding-top: 12px;
}
#site-footer li {
  letter-spacing: 0.1em;
  font-weight: 300;
}
#site-footer li a {
  color: #ffffff;
}
#site-footer li a:hover {
  color: #b43434;
  text-decoration: underline;
}
#site-footer li ul {
  margin-top: 12px;
}
@media (max-width: 768px) {
  #site-footer li li:last-child,
  #site-footer .widget,
  #site-footer div[class^="span"] {
    margin-bottom: 0;
  }
}
#boilerplate p {
  font-family: "helvetica neue", helvetica, sans-serif;
}
#site-footer .span5 ul li:last-child a {
  padding: 12px;
  display: inline-block;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
#site-footer .span5 ul li:last-child a a,
#site-footer .span5 ul li:last-child a a:hover {
  color: #fff;
  text-decoration: none;
}
#site-footer .span5 ul li:last-child a:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/* Changed button position per Tom's request NF */
header .newsletter-signup {
  position: absolute;
  top: 70px;
  right: 60px;
  margin-left: 20px;
  font-size: 20px;
}
.newsletter-signup {
  z-index: 999;
}
.newsletter-signup a {
  color: #000000;
  font-family: "tablet-gothic-condensed", sans-serif;
}
.newsletter-signup a:hover {
  text-decoration: none;
  color: #4d4d4d;
}
.newsletter-signup a:hover span {
  background-color: #cc4f4f;
  color: #ffffff;
}
.newsletter-signup span {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  padding: 5px 8px 8px 8px;
  margin-left: 6px;
}
.newsletter-signup span a,
.newsletter-signup span a:hover {
  color: #fff;
  text-decoration: none;
}
.newsletter-signup span:hover {
  background-color: #cc4f4f;
  color: #fff;
}
.article-bottom .newsletter-signup {
  font-size: 24px;
  margin-bottom: 2em;
}
.global-nav #header-search {
  display: none;
}
#header-search {
  float: right;
  margin-top: 12px;
}
.donate-btn {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.donate-btn a,
.donate-btn a:hover {
  color: #fff;
  text-decoration: none;
}
.donate-btn:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#site-header {
  position: relative;
  margin: 10px 0;
}
#site-header .header_img {
  max-width: 208px;
  width: 100%;
  height: auto;
}
#main-nav.navbar {
  border-top: 2px solid #aaa;
  border-bottom: 2px solid #aaa;
}
#main-nav.navbar li {
  font-size: 20px;
}
#main-nav.navbar li > a {
  line-height: 52px;
}
#main-nav.navbar .dropdown-menu li > a {
  line-height: 40px;
}
#topics-bar a {
  color: #226f91;
}
/* Base styles for section and widget titles */
.section-title {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
}
.text-align-center {
  text-align: center;
}
.cta-button {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.cta-button a,
.cta-button a:hover {
  color: #fff;
  text-decoration: none;
}
.cta-button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/**
 * Define the various paddings and heights around the flag
 */
/**
 * Increase the height of the padding on post headlines
 */
body.normal.single-post .post-type-press-releases h1.entry-title,
body.normal.single-post .post-type-sponsored h1.entry-title {
  padding-top: 62px;
  clear: both;
}
@media (max-width: 768px) {
  body.normal.single-post .post-type-press-releases h1.entry-title,
  body.normal.single-post .post-type-sponsored h1.entry-title {
    padding-top: 1.25em;
  }
}
/**
 * A mixin to set up the basic ::before and ::after and background and padding for the Press Releases and Sponsored post types.
 *
 * Doesn't set the background color or the border colors. Does set their widths and padding.
 */
.flag-mixin {
  color: #fff;
  padding: 0.625em;
  position: relative;
  display: inline-block;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  box-sizing: border-box;
}
.flag-mixin::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin-right: -1.275em;
  background: transparent;
  border-left-width: 1px;
  border-left-style: solid;
  border-top-width: 1.275em;
  border-top-style: solid ;
  border-right: 1.275em solid transparent;
  border-bottom-width: 1.275em;
  border-bottom-style: solid;
}
/*
 * General post styles
 */
.post-type-press-releases .top-tag span,
.post-type-sponsored .top-tag span {
  z-index: 10;
}
.post-type-press-releases .top-tag a,
.post-type-sponsored .top-tag a {
  color: #fff;
  padding: 0.625em;
  position: relative;
  display: inline-block;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  box-sizing: border-box;
  font-size: 20px;
}
.post-type-press-releases .top-tag a::after,
.post-type-sponsored .top-tag a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin-right: -1.275em;
  background: transparent;
  border-left-width: 1px;
  border-left-style: solid;
  border-top-width: 1.275em;
  border-top-style: solid ;
  border-right: 1.275em solid transparent;
  border-bottom-width: 1.275em;
  border-bottom-style: solid;
}
/*
 * Specific color styles
 */
.post-type-press-releases .top-tag a {
  background-color: #f0b956;
}
.post-type-press-releases .top-tag a::after {
  border-top-color: #f0b956;
  border-left-color: #f0b956;
  border-bottom-color: #f0b956;
}
.post-type-sponsored .top-tag a {
  background-color: #50c5f7;
}
.post-type-sponsored .top-tag a:after {
  border-top-color: #50c5f7;
  border-left-color: #50c5f7;
  border-bottom-color: #50c5f7;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag {
  padding: 0;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag a,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag a {
  font-size: 16px;
  color: #ffffff;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag a::after,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag a::after {
  z-index: 0;
}
.post-type-press-releases .entry-content h5.top-tag,
.post-type-sponsored .entry-content h5.top-tag {
  display: inline-block;
  clear: both;
  margin-bottom: 1em;
}
.post-type-press-releases .entry-content h5.top-tag a,
.post-type-sponsored .entry-content h5.top-tag a {
  font-size: 16px;
  color: #fff;
}
/**
 * The hierarchical header doesn't display a top term (used in categories), so we fake it with a ::before
 */
.primary-featured-post .post-type-press-releases::before,
.secondary-featured-post .post-type-press-releases::before,
.primary-featured-post .post-type-sponsored::before,
.secondary-featured-post .post-type-sponsored::before {
  height: 40px;
  display: inline-block;
  color: #fff;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  background-color: #f0b956;
  padding-bottom: 0;
  padding-top: 0;
  padding-right: 10px;
  padding-left: 10px;
  z-index: 0;
  box-sizing: border-box;
  line-height: 0;
  border-top: 20px solid #f0b956;
  border-bottom: 20px solid #f0b956;
  border-right: 20px solid white;
  margin-bottom: 10px;
}
@media (min-width: 769px) {
  .secondary-featured-post .span8 .post-type-press-releases::before,
  .secondary-featured-post .span8 .post-type-sponsored::before {
    margin-left: 2.12765957%;
  }
}
.primary-featured-post .post-type-sponsored::before,
.secondary-featured-post .post-type-sponsored::before {
  content: "SPONSORED";
  border-top-color: #50c5f7;
  border-bottom-color: #50c5f7;
}
.primary-featured-post .post-type-press-releases::before,
.secondary-featured-post .post-type-press-releases::before {
  content: "PRESS RELEASE";
}
h5.top-tag {
  margin-bottom: 12px;
}
/**
 * Styles for the sponsored content div that can be pasted into the top of stories.
 *
 * .sponcon-sponsor-before-wrapper is for legacy HTML.
 */
.sponcon-sponsor-before-wrapper,
.sponsored-by {
  background-color: #f5f5f5;
  padding: 0.5em 0.75em 0.75em;
  border: 1px solid #e3e3e3;
  margin-bottom: 15px;
  *zoom: 1;
}
.sponcon-sponsor-before-wrapper:before,
.sponsored-by:before,
.sponcon-sponsor-before-wrapper:after,
.sponsored-by:after {
  display: table;
  content: "";
}
.sponcon-sponsor-before-wrapper:after,
.sponsored-by:after {
  clear: both;
}
.sponcon-sponsor-before-wrapper h3,
.sponsored-by h3,
.sponcon-sponsor-before-wrapper p,
.sponsored-by p {
  font-family: "tablet-gothic-condensed", sans-serif;
}
.sponcon-sponsor-before-wrapper h3,
.sponsored-by h3 {
  margin-bottom: 8px;
  font-size: 16px;
}
.sponcon-sponsor-before-wrapper p,
.sponsored-by p {
  margin-top: 1.5em;
  margin-bottom: 0;
  font-size: 18px;
}
.sponcon-sponsor-before-wrapper .align-left,
.sponsored-by .align-left {
  max-width: 50%;
  margin-top: 0;
  margin-bottom: 0;
}
.sponcon-sponsor-before-wrapper .sponcon-sponsor-before-sponsored-by,
.sponsored-by .sponcon-sponsor-before-sponsored-by {
  float: left;
  margin: 6px 20px 12px 0;
}
.sponcon-sponsor-before-wrapper figure,
.sponsored-by figure {
  margin: 0;
}
/**
 * Press release posts menu, inserted into posts
 * 
 * @see rns_press_release_menu
 */
#press-release-menu ul {
  border: 1px solid #999;
  padding-top: 1em;
  padding-right: 1em;
  padding-bottom: 1em;
  padding-left: 2em;
  font-family: "tablet-gothic-condensed", sans-serif;
}
@media (max-width: 1079px) {
  #sidebar #press-release-menu.widget {
    min-width: 100%;
    box-sizing: border-box;
  }
}
@media (min-width: 1080px) {
  #sidebar #press-release-menu.widget {
    width: 300px;
    max-width: 100%;
  }
}
/**
 * Add a margin-bottom to the press release featured image in the main body of the post
 */
@media (max-width: 768px) {
  #feat-img-press-releases {
    margin-bottom: 24px;
  }
}
.single-roundup article header,
.single-roundup .article-bottom,
.single-roundup .entry-content {
  padding: 0 17.021276594%;
}
.single-roundup .entry-content h3 {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
  text-transform: uppercase;
}
.single-roundup .entry-content .headline-excerpt h4.top-tag {
  text-transform: uppercase;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 2px;
  color: #aaa;
}
.single-roundup .entry-content .headline-excerpt h3 {
  padding: 0;
  border-bottom: none;
  font-size: 24px;
  margin-bottom: 6px;
}
.single-roundup .entry-content .headline-excerpt .article-content {
  margin-bottom: 1.5em;
}
@media only screen and (max-width: 979px) {
  .single-roundup .article-bottom,
  .single-roundup .entry-content {
    padding: 0 6.38297872%;
  }
}
@media only screen and (max-width: 529px) {
  .single-roundup .article-bottom,
  .single-roundup .entry-content {
    padding: 0;
  }
}
body.normal.page .entry-content .entry-content {
  padding: 0 10%;
  margin-top: 24px;
}
.columns-header + header {
  margin-top: 2em;
}
body.tax-columns #main .hero.is-image img,
body.single-format-standard #main .hero.is-image img {
  border: none;
}
.entry-content .tax-term-listing img.thumb {
  max-width: 80px;
}
.entry-content .tax-term-listing h3 {
  font-size: 32px;
  margin-bottom: 8px;
}
.entry-content .tax-term-listing h3.widgettitle {
  border-bottom: 1px solid #aaa;
}
.entry-content .tax-term-listing h3.widgettitle a {
  color: #333;
}
.entry-content .tax-term-listing h3.entry-title {
  font-size: 24px;
  margin-bottom: 0;
}
.entry-content .tax-term-listing h5.byline {
  margin-bottom: 8px;
  margin-top: 8px;
  font-size: 15px;
}
.entry-content .tax-term-listing p {
  font-size: 18px;
  margin-bottom: 8px;
}
.entry-content .tax-term-listing p.recent {
  font-size: 15px;
}
.entry-content .tax-term-listing p.recent span {
  font-size: 11px;
  font-style: italic;
}
.entry-content .tax-term-listing article {
  margin-bottom: 8px;
}
.entry-content .tax-term-listing .item {
  margin-top: 36px;
  margin-bottom: 36px;
}
.entry-content .tax-term-listing .item::after {
  content: "";
  visibility: hidden;
  display: block;
  height: 0;
  clear: both;
  opacity: 0;
}
.gform_button {
  padding: 12px;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.gform_button a,
.gform_button a:hover {
  color: #fff;
  text-decoration: none;
}
.gform_button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
.ui-datepicker {
  width: 260px;
}
.ui-datepicker td a {
  width: 36px;
}
.ui-datepicker-header {
  padding: 10px 20px 20px;
}
.gform_wrapper .gfield_checkbox li label {
  display: block;
  margin-bottom: 5px;
  font-size: 16px;
  float: left;
  padding-left: 3%;
  position: relative;
}
.gform_wrapper .gfield_checkbox li input[type='checkbox'] {
  position: absolute;
  left: 0;
}
.gform_wrapper input[type=text] {
  margin-bottom: 0;
}
.gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label {
  margin-bottom: 24px;
}
.gform_wrapper.gf_browser_chrome .ginput_complex .ginput_right select,
.gform_wrapper.gf_browser_chrome .ginput_complex select {
  height: 41px;
  margin-bottom: 0 !important;
}
#gform_wrapper_17 ul.gfield_radio li {
  display: inline;
  margin-right: 20px;
}
#gform_wrapper_17 ul.gfield_radio li input {
  display: none;
}
#gform_wrapper_17 ul.gfield_radio li label {
  padding: 12px 24px;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 18px;
}
#gform_wrapper_17 ul.gfield_radio li label a,
#gform_wrapper_17 ul.gfield_radio li label a:hover {
  color: #fff;
  text-decoration: none;
}
#gform_wrapper_17 ul.gfield_radio li label:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#gform_wrapper_17 ul.gfield_radio li input[type=radio]:checked + label {
  background-color: #7d8185;
  font-weight: 500;
}
#gform_wrapper_24 .gfield_description {
  padding-top: 8px;
}
#gform_wrapper_24 .gform_next_button,
#gform_wrapper_24 .gform_previous_button {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 24px;
}
#gform_wrapper_24 .gform_next_button a,
#gform_wrapper_24 .gform_previous_button a,
#gform_wrapper_24 .gform_next_button a:hover,
#gform_wrapper_24 .gform_previous_button a:hover {
  color: #fff;
  text-decoration: none;
}
#gform_wrapper_24 .gform_next_button:hover,
#gform_wrapper_24 .gform_previous_button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#gform_wrapper_24 .gform_previous_button {
  background-color: #7d8185;
  margin-top: 8px;
}
/**
 * Styles for search forms and search results
 *
 * Styles for the global nav search are in less/inc/header.less
 */
.archive.search-results .input-append {
  width: 100%;
  position: relative;
}
.archive.search-results .form-search {
  margin-bottom: 1em;
}
.archive.search-results .form-search input {
  width: 90%;
  box-sizing: border-box;
}
.archive.search-results .form-search button {
  width: 10%;
  box-sizing: border-box;
}
.archive.search-results .search-term {
  background-color: #dddddd;
  padding: 1px 5px;
}
.archive.search-results h3 .rss-link {
  margin-left: 1em;
}
.archive.search-results h3 {
  margin-bottom: 1em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #7d8185;
}
.archive.search-results .stories article {
  padding-bottom: 12px;
}
.archive.search-results .entry-content p {
  margin-bottom: 0;
}
.archive.search-results .date-link a,
.archive.search-results .date-link {
  color: #7d8185;
}
/* Google CSE */
.gcs_container {
  margin: 20px 0;
}
.gcs_container table {
  margin: 0;
}
.gcs_container table,
.gcs_container tbody,
.gcs_container tr,
.gcs_container td {
  border: none;
}
.gcs_container .gsc-search-box {
  margin: 18px 0;
}
.gcs_container .gsc-search-box .gsst_a .gscb_a {
  position: relative;
  top: 3px;
}
.gcs_container .gsc-search-box td.gsib_a {
  padding: 0 6px !important;
}
.gcs_container .gsc-control-cse .gs-result .gs-title,
.gcs_container .gsc-control-cse .gs-result .gs-title * {
  font-size: 22px;
  line-height: 1.2;
}
/**
 * Styles for the 'download' post type registered by Easy Digital Downloads
 */
/**
 * Styles for single-download.php and partials/content-download.php
 */
.type-download h1.entry-title {
  font-size: 28px;
}
.type-download .download-contents-title {
  margin-top: 1em;
  margin-bottom: 12px;
}
.type-download .download-contents li {
  list-style-type: none;
}
.type-download .download-contents .size {
  display: inline-block;
  font-family: "tablet-gothic-condensed", sans-serif;
  padding: 0 2px;
  margin-left: 0.5em;
  font-size: 0.8em;
  outline: 1px solid #b43434;
}
@media only screen and (min-width: 768px) {
  .type-download .entry-content {
    padding: 0 17.021276594%;
  }
  .type-download > header {
    clear: both;
    margin: 24px 17.0213%;
    position: relative;
  }
}
.edd-add-to-cart.button.blue {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 1.3em;
}
.edd-add-to-cart.button.blue a,
.edd-add-to-cart.button.blue a:hover {
  color: #fff;
  text-decoration: none;
}
.edd-add-to-cart.button.blue:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/* General Styles */
body p {
  color: #151719;
}
.textwidget {
  font-family: "leitura-news", Georgia, serif;
  font-size: 16px;
}
.btn {
  text-transform: uppercase;
}
.btn.btn-primary {
  background-color: #226f91;
  color: #ffffff;
  border: none;
}
.btn.btn-primary:hover {
  background-color: #1d5f7c;
}
#main img {
  border: 1px solid #eee;
}
#nav-below,
.morelink,
#nav-below.pager {
  text-align: center;
  display: block;
  clear: both;
  margin: 24px 0;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
#nav-below a,
.morelink a,
#nav-below.pager a {
  padding: 12px 24px;
  font-size: 20px;
  color: #fff;
  background-color: #226f91;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
#nav-below a:hover,
.morelink a:hover,
#nav-below.pager a:hover {
  background-color: #aaa;
  color: #fff;
  text-decoration: none;
}
#nav-below.pager a,
#nav-below .morelink a {
  padding: 24px 48px;
}
.page-template-page-clean header.text-align-center {
  margin-top: 10px;
}
body.normal.page-template-page-clean article.page > header.entry-header {
  margin: 24px 0;
}
/* ================= Nat's Edits =================== */
/* fixes figure tag to not mess with blog headings */
.hero figure {
  display: block;
  -webkit-margin-before: 0 !important;
  -webkit-margin-after: 0 !important;
  -webkit-margin-start: 0 !important;
  -webkit-margin-end: 0 !important;
}
/* fixes small gallery previous / next arrows */
.navis-slideshow a.slick-previous:before {
  left: 15px !important;
  border-width: 50px 30px 50px 0 !important;
}
.navis-slideshow a.slick-next:before {
  left: 0 !important;
  border-width: 50px 0 50px 30px !important;
}
/* ================= End Nat's Edits =================== */
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xhcmdvL2xlc3MvaW5jL21peGlucy5sZXNzIiwiLi4vbGFyZ28vbGVzcy9pbmMvbmF2YmFyLWNvbW1vbi5sZXNzIiwiLi4vbGFyZ28vbGVzcy9pbmMvdmFyaWFibGVzLmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9uYXZiYXItc3RpY2t5Lmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9mb290ZXIubGVzcyIsImxlc3Mvc2luZ2xlLmxlc3MiLCJsZXNzL3ZhcnMubGVzcyIsImxlc3MvX3R5cG9ncmFwaHkubGVzcyIsImxlc3MvX3dpZGdldHMubGVzcyIsImxlc3MvX21peGlucy5sZXNzIiwibGVzcy9faGVhZGVyLmxlc3MiLCJsZXNzL3Nwb25zb3JlZC5sZXNzIiwibGVzcy9zbGluZ3Nob3RzLmxlc3MiLCJsZXNzL2NvbHVtbnMubGVzcyIsImxlc3MvdGF4Lmxlc3MiLCJsZXNzL2Zvcm1zLmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9zZWFyY2gubGVzcyIsImxlc3MvZG93bmxvYWRzLmxlc3MiLCJsZXNzL3N0eWxlLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQTtFQUNFLFFBQUE7O0FBQ0EsU0FBQztBQUNELFNBQUM7RUFDQyxjQUFBO0VBQ0EsU0FBUyxFQUFUOztBQUVGLFNBQUM7RUFDQyxXQUFBOztBQU9KO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLE1BQU0sYUFBTjtFQUNBLFdBQUE7RUFBYSxVQUFBO0VBQ2IsWUFBQTtFQUFjLFVBQUE7RUFBWSxTQUFBOztBQU01QjtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxTQUFBOztBQUlGO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQXdQQSw4QkFBQTtFQUNHLDJCQUFBO0VBQ0MsMEJBQUE7RUFDSSxzQkFBQTs7QUMzU1YsSUFBSTtBQUNKLElBQUksU0FBVTtFQUNaLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7O0FBR0Y7RUFHRSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBZUEsY0FBQTtFQUNBLGFDZ0hzQiw4Q0RoSHRCOztBQXRCRixPQVFFO0VBQ0UsV0FBQTs7QUFUSixPQVlFO0VBQ0UsYUFBQTs7QUFiSixPQWdCRTtFQUNFLHlCQUFBOztBQWpCSixPQTBCRTtFQUNFLGdCQUFBOztBQTNCSixPQStCRSxlQUFlLEdBQUc7RUFDaEIsaUJBQUE7RUFDQSxrQkFBQTs7QUFqQ0osT0FxQ0U7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBOztBQUVBLE9BUkYsS0FRSSxLQUFLO0VBQ0wsY0FBQTs7QUE5Q04sT0FtREU7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBOztBQUVBLE9BTEYsR0FLSTtFQUNBLGNBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTs7QUE3RE4sT0FrRUUsR0FBRSxTQUFVO0VBQ1YsZ0JBQUE7O0FBbkVKLE9BcUVFLEdBQUUsU0FBVSxlQUFlLEdBQUc7RUFDNUIsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7O0FBRUEsT0FMRixHQUFFLFNBQVUsZUFBZSxHQUFHLEVBSzNCO0VBQ0MsY0FBQTs7QUEzRU4sT0ErRUUsR0FBRyxJQUFHO0VBQ0oseUJBQUE7RUFDQSxjQUFBOztBQWpGSixPQStFRSxHQUFHLElBQUcsTUFJSixPQUFNO0VBQ0oseUJBQUE7O0FBcEZOLE9BeUZFLFVBQVM7QUF6RlgsT0EwRkUsY0FBYTtFQUNYLG9DQUFBO0VBQ0EsaUJBQUE7RUFDQSwwQ0FBQTtFQUNBLGlDQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7O0FBaEdKLE9Ba0dFLFVBQVM7QUFsR1gsT0FtR0UsY0FBYTtFQUNYLGlDQUFBO0VBQ0EsaUJBQUE7RUFDQSwrQkFBQTtFQUNBLG9DQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7O0FBekdKLE9BNkdFLEdBQUUsVUFFQSxFQUFDO0FBL0dMLE9BOEdFLEdBQUUsVUFDQSxFQUFDO0VBQ0MsNkJBQUE7RUFDQSxjQUFBOztBQWpITixPQXFIRSxXQUFVLE1BQU87QUFySG5CLE9Bc0hFLEdBQUUsVUFBVSxNQUFPO0VEb05uQixhQUFBO0VBQ0EseUJBQUE7O0FDM1VGLE9BMEhFLEdBQUU7RUFDQSxnQkFBQTs7QUFFQSxPQUhGLEdBQUUsVUFHRTtFQUNBLGNBQUE7O0FBQ0EsT0FMSixHQUFFLFVBR0UsSUFFQztFQUNDLGdCQUFBOztBQUhKLE9BSEYsR0FBRSxVQUdFLElBTUE7RUFDRSxjQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7O0FBdElSLE9BMklFLEdBQUUsVUFBVztFQUNYLFVBQUE7O0FBQ0EsT0FGRixHQUFFLFVBQVcsSUFFVjtFQUNDLGdCQUFBOztBQTlJTixPQTJJRSxHQUFFLFVBQVcsSUFNWDtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFySk4sT0EwSkU7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBR0Esb0JBQUE7O0FBbEtKLE9BMEpFLFlBVUU7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBOztBQTFLTixPQTBKRSxZQW1CRSxRQUFRLFlBQVk7RUFDbEIsV0FBQTs7QUE5S04sT0EwSkUsWUF1QkU7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBcExOLE9BMEpFLFlBNkJFLFVBQVU7RUFDUixlQUFBOztBQVVKLFFBTjBCO0VBTTFCLE9BTEU7SUFDRSxhQUFBOzs7QUE2Rk4sUUF4RjRCO0VBd0Y1QjtJQXZGSSxrQkFBQTtJQUNBLFVBQUE7O0VBc0ZKLE9BcEZJLEdBQUUsU0FDQSxlQUFlLEdBQUc7SUFDaEIsaUJBQUE7SUFDQSxjQUFBO0lBQ0EsaUJBQUE7SUFDQSxrQkFBQTs7RUErRVIsT0EzRUk7SUFDRSxXQUFBO0lBQ0EsVUFBQTs7RUF5RU4sT0F0RUk7SUFDRSxjQUFBOztFQXFFTixPQWxFSTtJQUNFLG1CQUFBO0lBQ0EsZUFBQTtJQUNBLE1BQUE7SUFDQSxTQUFBO0lBQ0EsT0FBQTtJQUNBLFFBQUE7SUFDQSxrQkFBQTtJQUNBLFVBQUE7SUFDQSxrQkFBQTtJQUNBLGlDQUFBOztFQXdETixPQWxFSSxXQVlFO0VBc0ROLE9BbEVJLFdBWWM7RUFzRGxCLE9BbEVJLFdBWTBCO0lBQ3RCLGFBQUE7O0VBcURSLE9BbEVJLFdBZ0JFO0VBa0ROLE9BbEVJLFdBZ0JNO0lBQ0YsV0FBQTs7RUFpRFIsT0FsRUksV0FvQkUsR0FBRTtJQUNBLGFBQUE7O0VBNkNSLE9BbEVJLFdBd0JFLEdBQUcsRUFBQztJQUNGLFlBQUE7SURyQk4sbUJBQW1CLGNBQW5CO0lBQ0csZ0JBQWdCLGNBQWhCO0lBQ0MsZUFBZSxjQUFmO0lBQ0MsY0FBYyxjQUFkO0lBQ0csV0FBVyxjQUFYOztFQzBEVixPQWxFSSxXQTZCRSxHQUFFLEtBQU0sSUFBSTtJRHpCaEIsbUJBQW1CLFlBQW5CO0lBQ0csZ0JBQWdCLFlBQWhCO0lBQ0MsZUFBZSxZQUFmO0lBQ0MsY0FBYyxZQUFkO0lBQ0csV0FBVyxZQUFYOztFQzBEVixPQWxFSSxXQWlDRSxHQUFFLEtBQU0sS0FBSTtJQUNWLGNBQUE7SUFDQSxrQkFBQTtJRC9DTix3QkFBQTtJQUNHLHFCQUFBO0lBQ0ssZ0JBQUE7SUMrQ0YsWUFBQTtJQUNBLFVBQUE7O0VBQ0EsT0F2Q0osV0FpQ0UsR0FBRSxLQUFNLEtBQUksY0FNVDtFQUFTLE9BdkNkLFdBaUNFLEdBQUUsS0FBTSxLQUFJLGNBTUM7SUFDVCxhQUFBOztFQUtGLE9BN0NKLFdBNENFLEtBQUssS0FDRjtJQUNDLG1CQUFBO0lBQ0Esb0JBQUE7O0VBTU4sT0FBQyxLQUFNO0lBQ0wsbUJBQUE7SUFDQSxVQUFBO0lBQ0EsZ0NBQUE7O0VBSUEsT0FERixLQUFLLEdBQ0Y7RUFDRCxPQUZGLEtBQUssR0FFRjtJQUNDLGFBQUE7OztBQVFSO0VBQ0UsV0FBQTtFQUNBLFdBQUE7O0FBSUY7RUFDRSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxRQUFBOztBQUVBLE1BQUM7RUFDQyxjQUFBO0VBQ0Esa0JBQUE7RUFFQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsU0FBUyxFQUFUOztBQUtKO0FBQ0E7RUFDRSxrQkFBQTs7QUFGRixPQUlFO0FBSEYsU0FHRTtFQUNFLHlCQUFBO0VBQ0EsNEJBQUE7O0FBR0YsT0FBQyxPQUFRO0FBQVQsU0FBQyxPQUFRO0VETVQsVUFBQTtFQUNBLDBCQUFBOztBQ0ZGO0VBRUUsb0JBQUE7O0FBSUY7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLG9DQUFBO0VBQ0Esd0JBQUE7RUFDQSx5QkFBQTtFRGpKQSxpREFBQTtFQUNHLDhDQUFBO0VBQ0sseUNBQUE7RUNpSlIsb0NBQUE7RUFDQSw2QkFBQTtFQUNBLDRCQUFBOztBQW5CRixjQXFCRTtFQUNFLGNBQUE7RUFDQSxXQUFBOztBQXZCSixjQTJCRTtFQUNFLGdCQUFBOztBQUVBLGNBSEYsR0FHSTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTs7QUFFQSxjQVhKLEdBR0ksSUFRQztFQUNDLHFCQUFBOztBQXZDUixjQTZDRSxRQUFRO0FBN0NWLGNBOENFLFFBQVEsSUFBRztFQUNULGNBQUE7RUFDQSx5QkFBQTs7QUFJRixjQUFDO0VBQ0MsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsaUNBQUE7RUFDQSx1Q0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBRUYsY0FBQztFQUNDLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQUNBLGdDQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTs7QUF2RUosY0EyRUU7QUEzRUYsY0E0RUU7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBOztBQWpGSixjQW1GRTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7O0FBdEZKLGNBd0ZFLEdBQUUsTUFBTztBQXhGWCxjQXlGRSxVQUFVLEdBQUUsTUFBTztFQUNqQixtQkFBQTtFQUNBLGNBQUE7O0FBYUosUUFWNEI7RUFVNUIsY0FUSSxHQUFFLE1BQU87RUFTYixjQVJJLEdBQUUsTUFBTztJQUNQLGFBQUE7SUFDQSxrQkFBQTs7RUFDQSxjQUpGLEdBQUUsTUFBTyxjQUlOO0VBQUQsY0FIRixHQUFFLE1BQU8sVUFHTjtJQUNDLGFBQUE7OztBQWFSLFFBUDBCO0VBQ3hCLElBQUksU0FBVSxHQUFFLElBQUssR0FBRSxTQUFTLE1BQU8sR0FBRTtFQUN6QyxJQUFJLE1BQU8sR0FBRSxJQUFLLEdBQUUsU0FBUyxLQUFNLEdBQUU7SUFDakMsY0FBQTs7O0FBTU47RUFHRSxjQUFBOztBQUVBLEtBQUU7RUFDQSxjQUFBOztBQUtGLFFBSDRCO0VBRzVCLEtBTkU7SUFJRSxhQUFBOzs7QUFNTixPQUdFO0FBRkYsb0JBQXFCLFVBRW5CO0VBQ0UsYUFBQTtFQUNBLGdDQUFBO0VBQ0EsU0FBUyxPQUFUOztBQU5KLE9BU0U7QUFSRixvQkFBcUIsVUFRbkI7RUFDRSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBOztBQUtKO0VBQ0UsY0FBQTs7QUFERixXQUVFO0VBQ0UsU0FBQTtFQUNBLGFDaFdvQiw4Q0RnV3BCOztBQUpKLFdBRUUsR0FHRTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTs7QUFDQSxXQVJKLEdBR0UsR0FLRztFQUNDLGVBQUE7RUFDQSxpQkFBQTs7QUFPUixTQUFTO0VBQ1AsNkJBQUE7RUFDQSxnQ0FBQTs7QUUvZkY7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7O0FBR0Y7RUFDRSxlQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsY0FBQTtFQUVBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0NBQUE7RUg2TUEsZ0NBQUE7RUFDRyw2QkFBQTtFQUNDLDRCQUFBO0VBQ0MsMkJBQUE7RUFDRyx3QkFBQTs7QUc5TVIsa0JBQUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7O0FBRkYsa0JBQUMsY0FJQztFQUNFLFVBQUE7O0FBSUosa0JBQUM7RUFDQyxtQkFBQTtFQUNBLFVBQUE7O0FBR0YsSUFBSSxVQUFXO0VBQ2IsU0FBQTs7QUFLQSxRQUgwQjtFQUcxQixJQU5FLFVBQVc7SUFJWCxTQUFBOzs7QUFLSixRQUg0QjtFQUc1QixJQVRJLFVBQVc7SUFPWCxNQUFBOzs7QUFXTixRQVA0QjtFQU81QjtJQU5JLGFBQUE7O0VBQ0EsSUFBSyxtQkFBQztFQUNOLElBQUssbUJBQUM7SUFDSixjQUFBOzs7QUFNTixPQUFPO0VBQ0wsZ0JBQUE7RUhzS0EsZ0NBQUE7RUFDRyw2QkFBQTtFQUNDLDRCQUFBO0VBQ0MsMkJBQUE7RUFDRyx3QkFBQTs7QUczS1YsT0FBTyxjQUlMO0VBQ0UsY0FBQTs7QUFMSixPQUFPLGNBUUwsR0FDRTtFQUNFLGlCQUFBO0VBQ0EsY0FBQTs7QUFFQSxPQWJDLGNBUUwsR0FDRSxFQUlHO0VBQ0MsY0FBQTs7QUFkUixPQUFPLGNBUUwsR0FDRSxFQVFFLE9BQU07RUFDSix5QkFBQTs7QUFHRixPQXJCQyxjQVFMLEdBQ0UsRUFZRyxNQUFPLE9BQU07RUFDWix5QkFBQTs7QUFJSixPQTFCRyxjQVFMLEdBa0JHLFVBQVcsSUFBRztFQUNiLGNBQUE7O0FBM0JOLE9BQU8sY0FnQ0wsR0FBRSxTQUFVLGVBQWUsR0FBRztFQUM1QixjQUFBOztBQUVBLE9BbkNHLGNBZ0NMLEdBQUUsU0FBVSxlQUFlLEdBQUcsRUFHM0I7RUFDQyxjQUFBOztBQXBDTixPQUFPLGNBd0NMO0VBQ0UsU0FBQTtFQUNBLFdBQUE7O0FBMUNKLE9BQU8sY0E2Q0w7RUFDRSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTs7QUFoREosT0FBTyxjQTZDTCxZQUtFO0VBQ0UscUJBQUE7O0FBbkROLE9BQU8sY0E2Q0wsWUFRRTtFQUNFLHlCQUFBOztBQUdGLE9BekRHLGNBNkNMLFlBWUcsTUFDQztFQUNFLHlCQUFBOztBQUtOLE9BaEVLLGNBZ0VKO0VBRUMsZUFBQTtFQUNBLGtCQUFBOztBQUhGLE9BaEVLLGNBZ0VKLFVBS0MsS0FBSyxLQUNILEVBQ0U7RUFFRSxhQUFBO0VBQ0EsY0FBQTs7QUFWUixPQWhFSyxjQWdFSixVQUtDLEtBQUssS0FTSCxXQUFVO0VBQ1Isa0JBQUE7RUFDQSxNQUFBOztBQWhGUixPQUFPLGNBc0ZMO0VBQ0UsWUFBQTs7QUF2RkosT0FBTyxjQXNGTCxXQUdFO0VBQ0UsV0FBQTtFQUNBLFNBQUE7O0FBM0ZOLE9BQU8sY0FzRkwsV0FHRSxlQUdFLEVBQUMsWUFBWTtFQUNYLHVCQUFBOztBQTdGUixPQUFPLGNBc0ZMLFdBR0UsZUFPRSxRQUNFLEVBQUU7RUFFQSxnQkFBQTtFQUVBLGNBQUE7RUFHQSx5QkFBQTs7QUFDQSxPQXpHSCxjQXNGTCxXQUdFLGVBT0UsUUFDRSxFQUFFLEtBUUM7RUFDQyx5QkFBQTs7QUExR1osT0FBTyxjQXNGTCxXQUdFLGVBT0UsUUFDRSxFQUFFLEtBYUE7RUFDRSxhQUFBOztBQS9HWixPQUFPLGNBc0ZMLFdBK0JBO0VBQ0Usa0JBQUE7O0FBdEhKLE9BQU8sY0FzRkwsV0ErQkEsYUFFRTtFQUVFLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUh5Q0osd0JBQUE7RUFDRyxxQkFBQTtFQUNDLG9CQUFBO0VBQ0MsbUJBQUE7RUFDRyxnQkFBQTs7QUczS1YsT0FBTyxjQXNGTCxXQStCQSxhQVlFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUhnQ0osd0JBQUE7RUFDRyxxQkFBQTtFQUNDLG9CQUFBO0VBQ0MsbUJBQUE7RUFDRyxnQkFBQTtFR2xDSixhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7O0FBM0lOLE9BQU8sY0FzRkwsV0ErQkEsYUFZRSxjQVdFO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBOztBQS9JUixPQUFPLGNBc0ZMLFdBK0JBLGFBWUUsY0FnQkU7RUFDRSxXQUFBO0VIK0ZOLDhCQUFBO0VBQ0csMkJBQUE7RUFDQywwQkFBQTtFQUNJLHNCQUFBO0VHaEdGLHVCQUFBOztBQXBKUixPQUFPLGNBc0ZMLFdBK0JBLGFBWUUsY0FxQkU7RUFDRSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFSHdGTiw4QkFBQTtFQUNHLDJCQUFBO0VBQ0MsMEJBQUE7RUFDSSxzQkFBQTs7QUdwUFYsT0FBTyxjQXNGTCxXQXlFRSxtQkFBa0IsS0FDaEI7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTs7QUFuS1IsT0FBTyxjQXNGTCxXQXlFRSxtQkFBa0IsS0FNaEI7QUFyS04sT0FBTyxjQXNGTCxXQXlFRSxtQkFBa0IsS0FPaEI7RUFDRSx5QkFBQTtFQUNBLGNBQUE7O0FBTUosT0E5S0csY0E2S0wsVUFDSTtFQUNBLFNBQUE7RUFDQSxVQUFBOztBQVlKLFFBTjBCO0VBTTFCLE9BNUxLLGNBdUxIO0lBQ0UsYUFBQTs7O0FBeExOLE9BQU8sY0E2TEw7RUFDRSxjQUFBO0VBQ0EsY0FBQTs7QUEvTEosT0FBTyxjQTZMTCxXQUlFO0VBQ0UsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTs7QUFFQSxPQTFNQyxjQTZMTCxXQUlFLEVBU0c7RUFDQyw2QkFBQTtFQUNBLGNBQUE7RUFDQSxxQkFBQTs7QUE3TVIsT0FBTyxjQW1OTDtFQUNFLFlBQUE7O0FBcE5KLE9BQU8sY0FtTkwsV0FFRTtFQUNFLFdBQUE7RUFDQSxTQUFBOztBQXZOTixPQUFPLGNBbU5MLFdBRUUsZUFHRSxFQUFDLFlBQVk7RUFDWCx1QkFBQTs7QUFpQlIsUUFYNEI7RUFXNUIsT0ExT08sY0FnT0gsR0FBRSxTQUNBLGVBQWUsR0FBRztJQUNoQixpQkFBQTs7RUFRUixPQTFPTyxjQXNPSCxXQUFXLEVBQUM7SUFDVixhQUFBOzs7QUFNTixjQUFlO0VBQ2Isa0JBQUE7RUFDQSxnQkFBQTs7QUFGRixjQUFlLEtBR2IsT0FBTTtBQUhSLGNBQWUsS0FHRyxPQUFNO0VBQ3BCLGFBQUE7O0FBSkosY0FBZSxLQU1iLEdBQUU7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7O0FBVkosY0FBZSxLQU1iLEdBQUUsY0FLQSxHQUFHO0VBQ0QsbUJBQUE7O0FBRUYsY0FkVyxLQU1iLEdBQUUsY0FRQztBQUFVLGNBZEEsS0FNYixHQUFFLGNBUVk7RUFDVixhQUFBOztBQWZOLGNBQWUsS0FNYixHQUFFLGNBV0E7QUFqQkosY0FBZSxLQU1iLEdBQUUsY0FZQTtFQUNFLGFBQUE7Ozs7Ozs7Ozs7OztBQzVTTjtFQUNFLHlCQUFBOztBQUdGLGNBQ0UsUUFBTztFQUNMLGdCQUFBOztBQUlKO0VBQ0UseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBOztBQUdGO0VBQ0UsbUJBQUE7O0FBQ0EsY0FBQyxNQUFPO0VBQ04sa0JBQUE7OztBQUtKLE1BQU8saUJBQWlCO0VBQ3RCLGVBQUE7RUFDQSxpQkFBQTs7Ozs7Ozs7O0FBaUJGO0VBQ0UseUJBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBOztBQUdGO0VBQ0UseUJBQUE7RUFDQSxlQUFBOztBQUdGO0VBQ0UsZ0JBQUE7O0FBREYsYUFFRTtFQUNFLGNBQUE7RUFDRCxXQUFBO0VBQ0Msb0JBQUE7O0FBTEosYUFFRSxFQUlFO0VBQ0QsY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBVkgsYUFhRTtFQUNFLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTs7QUFwQkosYUFhRSxHQVFFO0VBQ0QsWUFBQTtFQUNBLGlCQUFBOztBQUtILEVBQUU7RUFDQSwwQkFBQTtFQUNBLDZCQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7O0FBSUEsUUFIMEI7RUFHMUIsRUFSQTtJQU1FLGdCQUFBOzs7QUFOSixFQUFFLGNBUUE7RUFDRSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBOztBQUlBLFFBSDBCO0VBRzFCLEVBaEJGLGNBUUE7SUFNSSxhQUFBOzs7QUFkTixFQUFFLGNBUUEsR0FRRTtFQUNFLG1CQUFBO0VBQ0EsMEJBQUE7O0FBbEJOLEVBQUUsY0FRQSxHQVlFO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBRUEsWUFBQTtFQUNBLHVCQUFBO0VBSUEsZUFBQTtFSnlnQkosY0FBQTs7QUk1Z0JJLEVBMUJKLGNBUUEsR0FZRSxFQU1HO0VBQ0MsY0FBQTs7QUEzQlIsRUFBRSxjQWlDQSxHQUFFLFdBQVk7RUFDWixnQkFBQTs7QUFJSjtFQUNFLFdBQUE7RUFDQSxhRldzQiw4Q0VYdEI7O0FBRkYsWUFHRTtFQUNFLGdCQUFBO0VBQ0EsY0FBQTs7QUFMSixZQU9FO0VBQ0UsZUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTs7QUFWSixZQU9FLE1BSUU7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7O0FBYk4sWUFnQkU7RUFDRSxXQUFBOztBQUlKLE1BQU8sYUFDTDtFQUNFLGNBQUE7O0FBRkosTUFBTyxhQUlMO0VBQ0UsY0FBQTs7QUFDQSxNQU5HLGFBSUwsRUFFRztFQUNDLGNBQUE7O0FBYU4sUUFSMEI7RUFDeEIsWUFBYSxPQUFNO0lBQ2pCLGlCQUFBO0lBQ0EsYUFBQTtJQUNBLGdCQUFBOzs7QUFXSixRQVAwQjtFQUV4QjtJQUNFLHlCQUFBOzs7QUF1QkosUUFuQjBCO0VBQ3hCLFlBQWEsV0FDWDtJQUNFLFdBQUE7SUFDQSxXQUFBO0lBQ0EsY0FBQTtJQUNBLGtCQUFBOztFQUdKLEVBQUU7SUFDQSxxQkFBQTtJQUNBLFdBQUE7SUFDQSxjQUFBOztFQUVGLGNBQWU7SUFDYixjQUFBOzs7QUFJSjtFSjVLRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsTUFBTSxhQUFOO0VBQ0EsV0FBQTtFQUFhLFVBQUE7RUFDYixZQUFBO0VBQWMsVUFBQTtFQUFZLFNBQUE7O0FLN0I1QixJQUFJLE9BQU8sWUFBYSxRQUFPLEtBQU0sU0FBUztBQUM5QyxJQUFJLE9BQU8sWUFBYSxRQUFPLEtBQU0sU0FBUztFQUM1QyxlQUFBOztBQUdGO0VBQ0UsYUFBQTs7QUFFRixPQUFRO0VBQ04sa0JBQUE7O0FBREYsT0FBUSxTQUVOLEVBQUM7RUFDQyxjQUFBOztBQUdKLENBQUM7RUFDQyxhQ0pVLHVDRElWO0VBQ0EsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLHdCQUFBOztBQUdGLFVBQVc7RUFDVCxrQkFBQTs7O0FFckJGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLGFERUsscUNDRkw7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBUkYsRUFTRTtBQVJGLEVBUUU7QUFQRixFQU9FO0FBTkYsRUFNRTtBQUxGLEVBS0U7QUFKRixFQUlFO0VBQ0UsY0FBQTs7O0FBTUosY0FBZTtBQUNmLGFBQWM7RUFDVixlQUFBOztBQUVKLGNBQWU7RUFDWCxlQUFBOztBQUVKLGNBQWU7QUFDZixjQUFlLEdBQ2YsZUFBZTtFQUNYLGVBQUE7O0FBRUosY0FBZTtBQUNmLGNBQWU7RUFDZCxXQUFBOztBQUVELFdBQVksR0FBRztFQUNYLDBCQUFBOzs7QUFLSjtFQUNFLGNBQUE7O0FBQ0EsQ0FBQztFQUNBLGNBQUE7RUFDQSwwQkFBQTs7QUFLSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsYUQzQ0ssOEJDMkNMO0VBQ0EsZ0JBQUE7O0FBRUYsRUFBRTtFQUNBLGFEOUNVLHVDQzhDVjs7O0FBSUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLGNBQWU7QUFDZjtBQUNBLE9BQU8sbUJBQW9CLEdBQUc7QUFDOUIsRUFBRSxhQUFjO0FBQ2hCLG1CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxnQkFBaUI7QUFDakIsZ0JBQWlCO0FBRWpCLFFBQVMsc0NBQXNDLEdBQUcsR0FBRTtFQUNsRCxhRHZFSyxxQ0N1RUw7RUFDQSxnQkFBQTs7QUNsRkY7QUFDQSxRQUFTLEdBQUU7RUNDVCxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7RUFDQSxnQ0FBQTs7QURORixZQUdFO0FBRkYsUUFBUyxHQUFFLFlBRVQ7RUFDRSxjQUFBOztBQUlKO0VBQ0UsVUFBQTs7QUFERixPQUVFO0VBQ0UsZ0JBQUE7O0FBSEosT0FPRSxJQUFHO0FBUEwsT0FRRSxJQUFHO0VBQ0QsaUJBQUE7RUFDQSxxQkFBQTs7QUFJSixRQUNFO0VBQ0UsZ0JBQUE7O0FBQ0EsUUFGRixRQUVHO0VBQ0MsYUFBQTs7QUFKTixRQU9FO0VBQ0UsZUFBQTs7QUFHSixXQUFZLEdBQUcsR0FDYjtFQUNFLHlCQUFBOztBQUNBLFdBSFEsR0FBRyxHQUNiLEVBRUc7RUFDQyx5QkFBQTs7QUFJTixlQUFnQixZQUNkO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7O0FBS0osWUFBYSxxQkFBcUI7RUFDaEMsZ0JBQUE7O0FBRUYsb0JBQ0U7RUFDRSxjQUFBO0VBQ0EsYUY5Q0cscUNFOENIO0VBQ0EsZ0JBQUE7O0FBQ0Esb0JBSkYsRUFJRztFQUNDLGNBQUE7O0FBTk4sb0JBU0U7RUFDRSxrQkFBQTs7QUFWSixvQkFZRTtFQUNFLG1CQUFBOztBQUtKO0VBQ0UseUJBQUE7RUFDQSxhQUFBOztBQUVGO0VBQ0UsYUZsRUsscUNFa0VMO0VBQ0EsZ0JBQUE7O0FBR0YsT0FBTyxZQUFhLFdBQ2xCO0VBQ0UsZUFBQTs7QUFGSixPQUFPLFlBQWEsV0FJbEI7RUFDRSxVQUFBOztBQUxKLE9BQU8sWUFBYSxXQU9sQixFQUFDO0VBQ0Msa0JBQUE7O0FBS0o7RUFDRSxrQkFBQTs7QUFDQSxTQUFDO0VBQ0MsU0FBUyxlQUFUO0VBQ0Esa0JBQUE7RUFDQSxhRnRGUSx1Q0VzRlI7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7O0FBR0oseUJBR0UsSUFBSTtBQUZOLGNBRUUsSUFBSTtBQUROLFFBQVEsT0FDTixJQUFJO0VBQ0YsY0FBQTs7QUFKSix5QkFNRSxVQUFTO0FBTFgsY0FLRSxVQUFTO0FBSlgsUUFBUSxPQUlOLFVBQVM7RUFDUCxhQUFBOztBQUdKO0VBQ0UsV0FBQTtFQUNBLDZCQUFBO0VBQ0EsY0FBQTs7QUFFRjtFQUNFLHNCQUFBOztBQUVGO0VBQ0Usa0JBQUE7O0FBR0YsUUFBUyxzQ0FBc0MsR0FBRTtFQUMvQyxnQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTs7QUFJRixZQUFhO0VBQ1gscUJBQUE7RUFDQSxnQkFBQTs7QUFGRixZQUFhLEdBR1g7RUFDRSxjQUFBOztBQUNBLFlBTFMsR0FHWCxFQUVHO0VBQ0MsY0FBQTtFQUNBLDBCQUFBOztBQVBOLFlBQWEsR0FVWDtFQUNFLGdCQUFBOztBQVVKLFFBUDBCO0VBQ3hCLFlBQWEsR0FBRyxHQUFFO0VBQ2xCLFlBQWE7RUFDYixZQUFhLElBQUc7SUFDZCxnQkFBQTs7O0FBR0osWUFBYTtFQUNYLGFGakpVLHVDRWlKVjs7QUFFRixZQUFhLE9BQU8sR0FBRyxHQUFFLFdBQVk7RUFDbkMsYUFBQTtFQUNBLHFCQUFBO0VDbkpBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBOztBRDJJRixZQUFhLE9BQU8sR0FBRyxHQUFFLFdBQVksRUN4SW5DO0FEd0lGLFlBQWEsT0FBTyxHQUFHLEdBQUUsV0FBWSxFQ3hJaEMsRUFBQztFQUNGLFdBQUE7RUFDQSxxQkFBQTs7QUFFRixZRG9JVyxPQUFPLEdBQUcsR0FBRSxXQUFZLEVDcElsQztFQUNDLHlCQUFBO0VBQ0EsV0FBQTs7O0FEd0lKLE1BQU87RUFDSCxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUVKO0VBQ0UsWUFBQTs7QUFERixrQkFFRTtFQUNFLGNBQUE7RUFDQSxhRnRLRyxxQ0VzS0g7O0FBQ0Esa0JBSEYsRUFHRztFQUNDLHFCQUFBO0VBQ0EsY0FBQTs7QUFGRixrQkFIRixFQUdHLE1BR0M7RUFDRSx5QkFBQTtFQUNBLGNBQUE7O0FBVlIsa0JBY0U7RUM1S0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUhSSyxxQ0dRTDtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RUR3S0Usd0JBQUE7RUFDQSxnQkFBQTs7QUFqQkosa0JBY0UsS0NuS0E7QURxSkYsa0JBY0UsS0NuS0csRUFBQztFQUNGLFdBQUE7RUFDQSxxQkFBQTs7QUFFRixrQkQrSkEsS0MvSkM7RUFDQyx5QkFBQTtFQUNBLFdBQUE7O0FEbUtKLGVBQWdCO0VBQ2QsZUFBQTtFQUNBLGtCQUFBOztBRWxNRixXQUNFO0VBQ0UsYUFBQTs7QUFHSjtFQUNFLFlBQUE7RUFDQSxnQkFBQTs7QUFHRjtFRElFLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBOztBQ1ZGLFdEYUU7QUNiRixXRGFLLEVBQUM7RUFDRixXQUFBO0VBQ0EscUJBQUE7O0FBRUYsV0FBQztFQUNDLHlCQUFBO0VBQ0EsV0FBQTs7QUNmSjtFQUNFLGtCQUFBO0VBQ0EsY0FBQTs7QUFGRixZQUdFO0VBQ0UsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTs7QUFJSixTQUFTO0VBQ1AsMEJBQUE7RUFDQSw2QkFBQTs7QUFGRixTQUFTLE9BR1A7RUFDRSxlQUFBOztBQUNBLFNBTEssT0FHUCxHQUVJO0VBQ0EsaUJBQUE7O0FBSU4sU0FBUyxPQUFRLGVBQWUsR0FBRztFQUNqQyxpQkFBQTs7QUFHRixXQUFZO0VBQ1YsY0FBQTs7O0FEdENGO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0VBQ0EsZ0NBQUE7O0FBR0Y7RUFDRSxrQkFBQTs7QUFHRjtFQUNFLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBOztBQVBGLFdBVUU7QUFWRixXQVVLLEVBQUM7RUFDRixXQUFBO0VBQ0EscUJBQUE7O0FBRUYsV0FBQztFQUNDLHlCQUFBO0VBQ0EsV0FBQTs7Ozs7Ozs7QUVsQkosSUFBSSxPQUFPLFlBQ1QsMEJBQTBCLEdBQUU7QUFEOUIsSUFBSSxPQUFPLFlBRVQscUJBQXFCLEdBQUU7RUFDckIsaUJBQUE7RUFDQSxXQUFBOztBQUlGLFFBSDRCO0VBRzVCLElBUkUsT0FBTyxZQUNULDBCQUEwQixHQUFFO0VBTzVCLElBUkUsT0FBTyxZQUVULHFCQUFxQixHQUFFO0lBSW5CLG1CQUFBOzs7Ozs7OztBQVdOO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUx0QlUsdUNLc0JWO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTs7QUFFQSxXQUFDO0VBQ0MsU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0Esc0JBQUE7RUFDQSx3QkFBQTtFQUNBLHlCQUFBO0VBQ0Esd0JBQUE7RUFDQSx1Q0FBQTtFQUNBLDRCQUFBO0VBQ0EsMEJBQUE7Ozs7O0FBT0oseUJBRUUsU0FDRTtBQUZKLG9CQUNFLFNBQ0U7RUFDRSxXQUFBOztBQUpOLHlCQUVFLFNBSUU7QUFMSixvQkFDRSxTQUlFO0VBcENGLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtFQUNBLGFMdEJVLHVDS3NCVjtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7RUFrQ0ksZUFBQTs7QUFoQ0oseUJBdUJBLFNBSUUsRUEzQkQ7QUFBRCxvQkF1QkEsU0FJRSxFQTNCRDtFQUNDLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHNCQUFBO0VBQ0Esd0JBQUE7RUFDQSx5QkFBQTtFQUNBLHdCQUFBO0VBQ0EsdUNBQUE7RUFDQSw0QkFBQTtFQUNBLDBCQUFBOzs7OztBQTBCSix5QkFBMEIsU0FBUztFQUNqQyx5QkFBQTs7QUFDQSx5QkFGd0IsU0FBUyxFQUVoQztFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7RUFDQSw0QkFBQTs7QUFHSixvQkFBcUIsU0FBUztFQUM1Qix5QkFBQTs7QUFDQSxvQkFGbUIsU0FBUyxFQUUzQjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7RUFDQSw0QkFBQTs7QUFLSixlQUFnQixlQUFjLHlCQUU1QjtBQURGLGVBQWdCLGVBQWMsb0JBQzVCO0VBQ0UsVUFBQTs7QUFISixlQUFnQixlQUFjLHlCQUU1QixTQUVFO0FBSEosZUFBZ0IsZUFBYyxvQkFDNUIsU0FFRTtFQUNFLGVBQUE7RUFLQSxjQUFBOztBQUpBLGVBTlUsZUFBYyx5QkFFNUIsU0FFRSxFQUVHO0FBQUQsZUFMVSxlQUFjLG9CQUM1QixTQUVFLEVBRUc7RUFDQyxVQUFBOztBQVFSLHlCQUVFLGVBQWUsR0FBRTtBQURuQixvQkFDRSxlQUFlLEdBQUU7RUFDZixxQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTs7QUFMSix5QkFFRSxlQUFlLEdBQUUsUUFJZjtBQUxKLG9CQUNFLGVBQWUsR0FBRSxRQUlmO0VBQ0UsZUFBQTtFQUNBLFdBQUE7Ozs7O0FBWUYsc0JBRkYsMEJBRUc7QUFBRCx3QkFGRiwwQkFFRztBQUFELHNCQURGLHFCQUNHO0FBQUQsd0JBREYscUJBQ0c7RUFDQyxZQUFBO0VBQ0EscUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxhTDVITSx1Q0s0SE47RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0VBRUEsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSw4QkFBQTtFQUNBLGlDQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTs7QUFlTixRQVY0QjtFQUl0Qix3QkFIcUIsT0FDdkIsMEJBRUc7RUFBRCx3QkFIcUIsT0FFdkIscUJBQ0c7SUFDQyx3QkFBQTs7O0FBUUosc0JBREYscUJBQ0c7QUFBRCx3QkFERixxQkFDRztFQUNDLFNBQVMsV0FBVDtFQUNBLHlCQUFBO0VBQ0EsNEJBQUE7O0FBT0Ysc0JBREYsMEJBQ0c7QUFBRCx3QkFERiwwQkFDRztFQUNDLFNBQVMsZUFBVDs7QUFLTixFQUFFO0VBQ0EsbUJBQUE7Ozs7Ozs7QUFRRjtBQUNBO0VBQ0UseUJBQUE7RUFDQSw0QkFBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7RVgzTEEsUUFBQTs7QUFDQSwrQkFBQztBQUFELGFBQUM7QUFDRCwrQkFBQztBQUFELGFBQUM7RUFDQyxjQUFBO0VBQ0EsU0FBUyxFQUFUOztBQUVGLCtCQUFDO0FBQUQsYUFBQztFQUNDLFdBQUE7O0FXK0tKLCtCQU9FO0FBTkYsYUFNRTtBQVBGLCtCQVFFO0FBUEYsYUFPRTtFQUNFLGFMaE1HLHFDS2dNSDs7QUFUSiwrQkFXRTtBQVZGLGFBVUU7RUFDRSxrQkFBQTtFQUNBLGVBQUE7O0FBYkosK0JBZUU7QUFkRixhQWNFO0VBQ0UsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7O0FBbEJKLCtCQW9CRTtBQW5CRixhQW1CRTtFQUNFLGNBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7O0FBdkJKLCtCQXlCRTtBQXhCRixhQXdCRTtFQUNFLFdBQUE7RUFDQSx1QkFBQTs7QUEzQkosK0JBNkJFO0FBNUJGLGFBNEJFO0VBQ0UsU0FBQTs7Ozs7OztBQVNKLG1CQUNFO0VBQ0Usc0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGFMck9HLHFDS3FPSDs7QUFVSixRQU4yQjtFQUN6QixRQUFTLG9CQUFtQjtJQUMxQixlQUFBO0lBQ0Esc0JBQUE7OztBQVVKLFFBUDJCO0VBQ3pCLFFBQVMsb0JBQW1CO0lBQzFCLFlBQUE7SUFDQSxlQUFBOzs7Ozs7QUFZSixRQUw0QjtFQUMxQjtJQUNFLG1CQUFBOzs7QUNyUUosZUFDRSxRQUFRO0FBRFYsZUFFRTtBQUZGLGVBR0U7RUFDRSx3QkFBQTs7QUFKSixlQU1FLGVBQ0U7RUhMRixlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7RUFDQSxnQ0FBQTtFR0dFLHlCQUFBOztBQVRKLGVBTUUsZUFLRSxrQkFDQSxHQUFFO0VBQ0EseUJBQUE7RUFDRSxhTkpELHFDTUlDO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBOztBQWxCUixlQU1FLGVBS0Usa0JBU0E7RUFDRSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7O0FBeEJOLGVBTUUsZUFLRSxrQkFlQTtFQUNFLG9CQUFBOztBQVdKO0VBQUEsZUFMRTtFQUtGLGVBSkU7SUFDRSxzQkFBQTs7O0FBU047RUFBQSxlQUxJO0VBS0osZUFKSTtJQUNFLFVBQUE7OztBQ3pDTixJQUFJLE9BQU8sS0FBTSxlQUNmO0VBQ0UsY0FBQTtFQUNBLGdCQUFBOztBQUtKLGVBQWdCO0VBQ2QsZUFBQTs7QUFJRixJQUFJLFlBQWEsTUFFZixNQUFLLFNBQVU7QUFEakIsSUFBSSx1QkFBd0IsTUFDMUIsTUFBSyxTQUFVO0VBQ2IsWUFBQTs7QUNoQkosY0FBZSxrQkFDYixJQUFHO0VBQ0QsZUFBQTs7QUFGSixjQUFlLGtCQUliO0VBQ0QsZUFBQTtFQUNBLGtCQUFBOztBQUNBLGNBUGMsa0JBSWIsR0FHQTtFQUNDLDZCQUFBOztBQURGLGNBUGMsa0JBSWIsR0FHQSxZQUVDO0VBQ0UsV0FBQTs7QUFHRCxjQWJXLGtCQUliLEdBU0c7RUFDQyxlQUFBO0VBQ0EsZ0JBQUE7O0FBZk4sY0FBZSxrQkFrQmIsR0FBRTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7O0FBckJKLGNBQWUsa0JBdUJiO0VBQ0UsZUFBQTtFQUNBLGtCQUFBOztBQUNBLGNBMUJXLGtCQXVCYixFQUdHO0VBQ0MsZUFBQTs7QUFERixjQTFCVyxrQkF1QmIsRUFHRyxPQUVDO0VBQ0UsZUFBQTtFQUNBLGtCQUFBOztBQTlCUixjQUFlLGtCQWtDYjtFQUNFLGtCQUFBOztBQW5DSixjQUFlLGtCQXFDYjtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7O0FBQ0EsY0F4Q1csa0JBcUNiLE1BR0c7RUFDQyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7O0FDN0NOO0VBQ0UsYUFBQTtFTllBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBOztBTW5CRixhTnNCRTtBTXRCRixhTnNCSyxFQUFDO0VBQ0YsV0FBQTtFQUNBLHFCQUFBOztBQUVGLGFBQUM7RUFDQyx5QkFBQTtFQUNBLFdBQUE7O0FNdEJKO0VBQ0UsWUFBQTs7QUFERixjQUVFLEdBQUc7RUFDRCxXQUFBOztBQUdKO0VBQ0UsdUJBQUE7O0FBR0YsY0FHRSxpQkFBaUIsR0FDZjtFQUNFLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTs7QUFWTixjQUdFLGlCQUFpQixHQVNmLE1BQUs7RUFDSCxrQkFBQTtFQUNBLE9BQUE7O0FBZE4sY0FtQkUsTUFBSztFQUNILGdCQUFBOztBQXBCSixjQXNCRSxzQkFBc0IsZ0JBQWUsaUJBQWtCO0VBQ3JELG1CQUFBOztBQUlGLGNBQUMsa0JBQW1CLGdCQUFnQixjQUFjO0FBQ2xELGNBQUMsa0JBQW1CLGdCQUFnQjtFQUNsQyxZQUFBO0VBQ0EsMkJBQUE7O0FBTUosaUJBQ0UsR0FBRSxhQUFjO0VBQ2QsZUFBQTtFQUNBLGtCQUFBOztBQUhKLGlCQUNFLEdBQUUsYUFBYyxHQUdkO0VBQ0QsYUFBQTs7QUFMSCxpQkFDRSxHQUFFLGFBQWMsR0FNZDtFQUNELGtCQUFBO0VOL0NELHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VNMkNDLGVBQUE7O0FBVkgsaUJBQ0UsR0FBRSxhQUFjLEdBTWQsTU5yQ0Y7QU04QkYsaUJBQ0UsR0FBRSxhQUFjLEdBTWQsTU5yQ0MsRUFBQztFQUNGLFdBQUE7RUFDQSxxQkFBQTs7QUFFRixpQk0yQkEsR0FBRSxhQUFjLEdBTWQsTU5qQ0Q7RUFDQyx5QkFBQTtFQUNBLFdBQUE7O0FNd0JKLGlCQUNFLEdBQUUsYUFBYyxHQVdkLE1BQUssWUFBWSxRQUFRO0VBQzFCLHlCQUFBO0VBQ0EsZ0JBQUE7O0FBTUgsaUJBQ0U7RUFDRSxnQkFBQTs7QUFGSixpQkFJRTtBQUpGLGlCQUtFO0VOaEVBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFIUksscUNHUUw7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VNNERFLGtCQUFBOztBQVBKLGlCQUlFLG1CTnREQTtBTWtERixpQkFLRSx1Qk52REE7QU1rREYsaUJBSUUsbUJOdERHLEVBQUM7QU1rRE4saUJBS0UsdUJOdkRHLEVBQUM7RUFDRixXQUFBO0VBQ0EscUJBQUE7O0FBRUYsaUJNa0RBLG1CTmxEQztBQUFELGlCTW1EQSx1Qk5uREM7RUFDQyx5QkFBQTtFQUNBLFdBQUE7O0FNNENKLGlCQVNFO0VBQ0UseUJBQUE7RUFDQSxlQUFBOzs7Ozs7O0FDN0VKLFFBQVEsZUFDTjtFQUNFLFdBQUE7RUFDQSxrQkFBQTs7QUFISixRQUFRLGVBS047RUFDRSxrQkFBQTs7QUFOSixRQUFRLGVBS04sYUFFRTtFQUNFLFVBQUE7RUFDQSxzQkFBQTs7QUFUTixRQUFRLGVBS04sYUFNRTtFQUNFLFVBQUE7RUFDQSxzQkFBQTs7QUFiTixRQUFRLGVBZ0JOO0VBQ0UseUJBQUE7RUFDQSxnQkFBQTs7QUFsQkosUUFBUSxlQW9CTixHQUFHO0VBQ0QsZ0JBQUE7O0FBckJKLFFBQVEsZUF1Qk47RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0NBQUE7O0FBMUJKLFFBQVEsZUE2Qk4sU0FDRTtFQUNFLG9CQUFBOztBQS9CTixRQUFRLGVBbUNOLGVBQWU7RUFDYixnQkFBQTs7QUFwQ0osUUFBUSxlQXNDTixXQUFXO0FBdENiLFFBQVEsZUF1Q047RUFDRSxjQUFBOzs7QUFPSjtFQUNFLGNBQUE7O0FBREYsY0FHRTtFQUNFLFNBQUE7O0FBSkosY0FPRTtBQVBGLGNBUUU7QUFSRixjQVNFO0FBVEYsY0FVRTtFQUNFLFlBQUE7O0FBWEosY0FjRTtFQUNFLGNBQUE7O0FBZkosY0FjRSxnQkFFRSxRQUFRO0VBQ04sa0JBQUE7RUFDQSxRQUFBOztBQWxCTixjQWNFLGdCQU1FLEdBQUU7RUFDQSx5QkFBQTs7QUFyQk4sY0F5QkUsaUJBQ0UsV0FDRTtBQTNCTixjQXlCRSxpQkFDRSxXQUVFLFVBQVU7RUFDUixlQUFBO0VBQ0EsZ0JBQUE7Ozs7Ozs7O0FDN0VSLGNBQ0UsR0FBRTtFQUNBLGVBQUE7O0FBRkosY0FLRTtFQUNFLGVBQUE7RUFDQSxtQkFBQTs7QUFQSixjQVVFLG1CQUNFO0VBQ0UscUJBQUE7O0FBWk4sY0FVRSxtQkFJRTtFQUNFLHFCQUFBO0VBQ0EsYVhiQyxxQ1dhRDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsMEJBQUE7O0FBZU47RUFBQSxjQVZJO0lBQ0Usd0JBQUE7O0VBU04sY0FOSTtJQUNFLFdBQUE7SUFDQSxxQkFBQTtJQUNBLGtCQUFBOzs7QUFLTixnQkFBZ0IsT0FBTztFUjlCckIseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUhSSyxxQ0dRTDtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RVEwQkEsZ0JBQUE7O0FBRkYsZ0JBQWdCLE9BQU8sS1JyQnJCO0FRcUJGLGdCQUFnQixPQUFPLEtSckJsQixFQUFDO0VBQ0YsV0FBQTtFQUNBLHFCQUFBOztBQUVGLGdCUWlCYyxPQUFPLEtSakJwQjtFQUNDLHlCQUFBO0VBQ0EsV0FBQTs7O0FTS0osSUFDRTtFQUNFLGNBQUE7O0FBSUo7RUFDRSxhWjlCSyw4Qlk4Qkw7RUFDQSxlQUFBOztBQUdGO0VBQ0UseUJBQUE7O0FBQ0EsSUFBQztFQUNDLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7O0FBQ0EsSUFKRCxZQUlFO0VBQ0MseUJBQUE7O0FBS04sS0FBTTtFQUNKLHNCQUFBOztBQUdGO0FBQ0E7QUFDQSxVQUFVO0VBQ1Isa0JBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxhWjFESyxxQ1kwREw7RUFDQSxnQkFBQTs7QUFSRixVQVNFO0FBUkYsU0FRRTtBQVBGLFVBQVUsTUFPUjtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtFbEJzSUYsMEJBQUE7RUFDRyx1QkFBQTtFQUNLLGtCQUFBOztBa0J0SU4sVUFORixFQU1HO0FBQUQsU0FORixFQU1HO0FBQUQsVUFiTSxNQU9SLEVBTUc7RUFDRixzQkFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTs7QUFJSCxVQUFVLE1BQU87QUFDakIsVUFBVyxVQUFVO0VBQ25CLGtCQUFBOztBQUdGLHlCQUEwQixPQUFNO0VBQzlCLGdCQUFBOztBQUVGLElBQUksT0FBTyx5QkFBMEIsUUFBTyxLQUFNLFNBQVE7RUFDeEQsY0FBQTs7OztBQU9GLEtBQU07RUFDRixjQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsZ0NBQUE7OztBQUtKLGdCQUFpQixFQUFDLGVBQWU7RUFDN0IscUJBQUE7RUFDQSx5Q0FBQTs7QUFHSixnQkFBaUIsRUFBQyxXQUFXO0VBQ3pCLGtCQUFBO0VBQ0EseUNBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBNaXhpbnMubGVzc1xuLy8gU25pcHBldHMgb2YgcmV1c2FibGUgQ1NTIHRvIGRldmVsb3AgZmFzdGVyIGFuZCBrZWVwIGNvZGUgcmVhZGFibGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFVUSUxJVFkgTUlYSU5TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIEZvciBjbGVhcmluZyBmbG9hdHMgbGlrZSBhIGJvc3MgaDVicC5jb20vcVxuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGlkZSBhbiBpdGVtIHZpc3VhbGx5IG9ubHlcbi52aXN1YWxseWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7IHdpZHRoOiAxcHg7XG4gIG1hcmdpbjogLTFweDsgcGFkZGluZzogMDsgYm9yZGVyOiAwO1xufVxuXG4vLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuLmhpZGUtdGV4dCB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBCbG9jayBsZXZlbCBmb3JtIGlucHV0c1xuLmlucHV0LWJsb2NrLWxldmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyOHB4OyAgICAgICAgLy8gTWFrZSBpbnB1dHMgYXQgbGVhc3QgdGhlIGhlaWdodCBvZiB0aGVpciBidXR0b24gY291bnRlcnBhcnRcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7IC8vIE1ha2VzIGlucHV0cyBiZWhhdmUgbGlrZSB0cnVlIGJsb2NrLWxldmVsIGVsZW1lbnRzXG59XG5cbi8vIFdlYmtpdC1zdHlsZSBmb2N1c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4udGFiLWZvY3VzKCkge1xuICAvLyBEZWZhdWx0XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkICMzMzM7XG4gIC8vIFdlYmtpdFxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uY2VudGVyLWJsb2NrKCkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLy8gSUU3IGlubGluZS1ibG9ja1xuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLmllNy1pbmxpbmUtYmxvY2soKSB7XG4gICpkaXNwbGF5OiBpbmxpbmU7IC8qIElFNyBpbmxpbmUtYmxvY2sgaGFjayAqL1xuICAqem9vbTogMTtcbn1cblxuLy8gSUU3IGxpa2VzIHRvIGNvbGxhcHNlIHdoaXRlc3BhY2Ugb24gZWl0aGVyIHNpZGUgb2YgdGhlIGlubGluZS1ibG9jayBlbGVtZW50cy5cbi8vIEVtcyBiZWNhdXNlIHdlJ3JlIGF0dGVtcHRpbmcgdG8gbWF0Y2ggdGhlIHdpZHRoIG9mIGEgc3BhY2UgY2hhcmFjdGVyLiBMZWZ0XG4vLyB2ZXJzaW9uIGlzIGZvciBmb3JtIGJ1dHRvbnMsIHdoaWNoIHR5cGljYWxseSBjb21lIGFmdGVyIG90aGVyIGVsZW1lbnRzLCBhbmRcbi8vIHJpZ2h0IHZlcnNpb24gaXMgZm9yIGljb25zLCB3aGljaCBjb21lIGJlZm9yZS4gQXBwbHlpbmcgYm90aCBpcyBvaywgYnV0IGl0IHdpbGxcbi8vIG1lYW4gdGhhdCBzcGFjZSBiZXR3ZWVuIHRob3NlIGVsZW1lbnRzIHdpbGwgYmUgLjZlbSAofjIgc3BhY2UgY2hhcmFjdGVycykgaW4gSUU3LFxuLy8gaW5zdGVhZCBvZiB0aGUgMSBzcGFjZSBpbiBvdGhlciBicm93c2Vycy5cbi5pZTctcmVzdG9yZS1sZWZ0LXdoaXRlc3BhY2UoKSB7XG4gICptYXJnaW4tbGVmdDogLjNlbTtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICAqbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmllNy1yZXN0b3JlLXJpZ2h0LXdoaXRlc3BhY2UoKSB7XG4gICptYXJnaW4tcmlnaHQ6IC4zZW07XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICAqbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLy8gU2l6aW5nIHNob3J0Y3V0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnNpemUoQGhlaWdodCwgQHdpZHRoKSB7XG4gIHdpZHRoOiBAd2lkdGg7XG4gIGhlaWdodDogQGhlaWdodDtcbn1cbi5zcXVhcmUoQHNpemUpIHtcbiAgLnNpemUoQHNpemUsIEBzaXplKTtcbn1cblxuLy8gUGxhY2Vob2xkZXIgdGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnBsYWNlaG9sZGVyKEBjb2xvcjogQHBsYWNlaG9sZGVyVGV4dCkge1xuICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gIH1cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgfVxufVxuXG4vLyBUZXh0IG92ZXJmbG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG4udGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLy8gRk9OVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiNmb250IHtcbiAgI2ZhbWlseSB7XG4gICAgLnNlcmlmKCkge1xuICAgICAgZm9udC1mYW1pbHk6IEBzZXJpZkZvbnRGYW1pbHk7XG4gICAgfVxuICAgIC5zYW5zLXNlcmlmKCkge1xuICAgICAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgICB9XG4gICAgLm1vbm9zcGFjZSgpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAbW9ub0ZvbnRGYW1pbHk7XG4gICAgfVxuICB9XG4gIC5zaG9ydGhhbmQoQHNpemU6IEBiYXNlRm9udFNpemUsIEB3ZWlnaHQ6IG5vcm1hbCwgQGxpbmVIZWlnaHQ6IEBiYXNlTGluZUhlaWdodCkge1xuICAgIGZvbnQtc2l6ZTogQHNpemU7XG4gICAgZm9udC13ZWlnaHQ6IEB3ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lSGVpZ2h0O1xuICB9XG4gIC5zZXJpZihAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgI2ZvbnQgPiAjZmFtaWx5ID4gLnNlcmlmO1xuICAgICNmb250ID4gLnNob3J0aGFuZChAc2l6ZSwgQHdlaWdodCwgQGxpbmVIZWlnaHQpO1xuICB9XG4gIC5zYW5zLXNlcmlmKEBzaXplOiBAYmFzZUZvbnRTaXplLCBAd2VpZ2h0OiBub3JtYWwsIEBsaW5lSGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQpIHtcbiAgICAjZm9udCA+ICNmYW1pbHkgPiAuc2Fucy1zZXJpZjtcbiAgICAjZm9udCA+IC5zaG9ydGhhbmQoQHNpemUsIEB3ZWlnaHQsIEBsaW5lSGVpZ2h0KTtcbiAgfVxuICAubW9ub3NwYWNlKEBzaXplOiBAYmFzZUZvbnRTaXplLCBAd2VpZ2h0OiBub3JtYWwsIEBsaW5lSGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQpIHtcbiAgICAjZm9udCA+ICNmYW1pbHkgPiAubW9ub3NwYWNlO1xuICAgICNmb250ID4gLnNob3J0aGFuZChAc2l6ZSwgQHdlaWdodCwgQGxpbmVIZWlnaHQpO1xuICB9XG59XG5cblxuLy8gRk9STVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1peGluIGZvciBmb3JtIGZpZWxkIHN0YXRlc1xuLmZvcm1GaWVsZFN0YXRlKEB0ZXh0Q29sb3I6ICM1NTUsIEBib3JkZXJDb2xvcjogI2NjYywgQGJhY2tncm91bmRDb2xvcjogI2Y1ZjVmNSkge1xuICAvLyBTZXQgdGhlIHRleHQgY29sb3JcbiAgPiBsYWJlbCxcbiAgLmhlbHAtYmxvY2ssXG4gIC5oZWxwLWlubGluZSB7XG4gICAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gIH1cbiAgLy8gU3R5bGUgaW5wdXRzIGFjY29yZGluZ2x5XG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLFxuICBpbnB1dCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyQ29sb3I7XG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyQ29sb3IsIDEwJSk7XG4gICAgICAuYm94LXNoYWRvdygwIDAgNnB4IGxpZ2h0ZW4oQGJvcmRlckNvbG9yLCAyMCUpKTtcbiAgICB9XG4gIH1cbiAgLy8gR2l2ZSBhIHNtYWxsIGJhY2tncm91bmQgY29sb3IgZm9yIGlucHV0LXByZXBlbmQvLWFwcGVuZFxuICAuaW5wdXQtcHJlcGVuZCAuYWRkLW9uLFxuICAuaW5wdXQtYXBwZW5kIC5hZGQtb24ge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kQ29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAdGV4dENvbG9yO1xuICB9XG59XG5cblxuXG4vLyBDU1MzIFBST1BFUlRJRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJvcmRlciBSYWRpdXNcbi5ib3JkZXItcmFkaXVzKEByYWRpdXMpIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6IEByYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogQHJhZGl1cztcbn1cblxuLy8gRHJvcCBzaGFkb3dzXG4uYm94LXNoYWRvdyhAc2hhZG93KSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogQHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiBAc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3c7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgLW1zLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbi5yb3RhdGUoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xufVxuLnNjYWxlKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG59XG4udHJhbnNsYXRlKEB4LCBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbn1cbi5za2V3KEB4LCBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xuICAgICAtbW96LXRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xuICAgICAgIC1vLXRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xufVxuLnRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHksIEB6KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHksIEB6KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHksIEB6KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHksIEB6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHksIEB6KTtcbn1cblxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gUHJldmVudCBicm93c2VycyBmcm9tIGZsaWNrZXJpbmcgd2hlbiB1c2luZyBDU1MgM0QgdHJhbnNmb3Jtcy5cbi8vIERlZmF1bHQgdmFsdWUgaXMgYHZpc2libGVgLCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYGhpZGRlblxuLy8gU2VlIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5ueWtlYW5lL2Jvb3RzdHJhcC5naXQgYmFja2ZhY2UtdmlzaWJpbGl0eSBmb3IgZXhhbXBsZXNcbi5iYWNrZmFjZS12aXNpYmlsaXR5KEB2aXNpYmlsaXR5KXtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbn1cblxuLy8gQmFja2dyb3VuZCBjbGlwcGluZ1xuLy8gSGVhZHMgdXA6IEZGIDMuNiBhbmQgdW5kZXIgbmVlZCBcInBhZGRpbmdcIiBpbnN0ZWFkIG9mIFwicGFkZGluZy1ib3hcIlxuLmJhY2tncm91bmQtY2xpcChAY2xpcCkge1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogQGNsaXA7XG4gICAgIC1tb3otYmFja2dyb3VuZC1jbGlwOiBAY2xpcDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IEBjbGlwO1xufVxuXG4vLyBCYWNrZ3JvdW5kIHNpemluZ1xuLmJhY2tncm91bmQtc2l6ZShAc2l6ZSl7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBAc2l6ZTtcbiAgICAgLW1vei1iYWNrZ3JvdW5kLXNpemU6IEBzaXplO1xuICAgICAgIC1vLWJhY2tncm91bmQtc2l6ZTogQHNpemU7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBAc2l6ZTtcbn1cblxuXG4vLyBCb3ggc2l6aW5nXG4uYm94LXNpemluZyhAYm94bW9kZWwpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgIC1tb3otYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAgLW1zLWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBAYm94bW9kZWw7XG59XG5cbi8vIFVzZXIgc2VsZWN0XG4vLyBGb3Igc2VsZWN0aW5nIHRleHQgb24gdGhlIHBhZ2Vcbi51c2VyLXNlbGVjdChAc2VsZWN0KSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgICAgLW8tdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG59XG5cbi8vIFJlc2l6ZSBhbnl0aGluZ1xuLnJlc2l6YWJsZShAZGlyZWN0aW9uKSB7XG4gIHJlc2l6ZTogQGRpcmVjdGlvbjsgLy8gT3B0aW9uczogaG9yaXpvbnRhbCwgdmVydGljYWwsIGJvdGhcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFNhZmFyaSBmaXhcbn1cblxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcbi5jb250ZW50LWNvbHVtbnMoQGNvbHVtbkNvdW50LCBAY29sdW1uR2FwOiBAZ3JpZEd1dHRlcldpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uQ291bnQ7XG4gICAgIC1tb3otY29sdW1uLWNvdW50OiBAY29sdW1uQ291bnQ7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiBAY29sdW1uQ291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbkdhcDtcbiAgICAgLW1vei1jb2x1bW4tZ2FwOiBAY29sdW1uR2FwO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IEBjb2x1bW5HYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG4uaHlwaGVucyhAbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogQG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogQG1vZGU7XG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogQG1vZGU7XG59XG5cbi8vIE9wYWNpdHlcbi5vcGFjaXR5KEBvcGFjaXR5KSB7XG4gIG9wYWNpdHk6IEBvcGFjaXR5IC8gMTAwO1xuICBmaWx0ZXI6IH5cImFscGhhKG9wYWNpdHk9QHtvcGFjaXR5fSlcIjtcbn1cblxuXG5cbi8vIEJBQ0tHUk9VTkRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBZGQgYW4gYWxwaGF0cmFuc3BhcmVuY3kgdmFsdWUgdG8gYW55IGJhY2tncm91bmQgb3IgYm9yZGVyIGNvbG9yICh2aWEgRWx5c2UgSG9sbGFkYXkpXG4jdHJhbnNsdWNlbnQge1xuICAuYmFja2dyb3VuZChAY29sb3I6IEB3aGl0ZSwgQGFscGhhOiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsYShodWUoQGNvbG9yKSwgc2F0dXJhdGlvbihAY29sb3IpLCBsaWdodG5lc3MoQGNvbG9yKSwgQGFscGhhKTtcbiAgfVxuICAuYm9yZGVyKEBjb2xvcjogQHdoaXRlLCBAYWxwaGE6IDEpIHtcbiAgICBib3JkZXItY29sb3I6IGhzbGEoaHVlKEBjb2xvciksIHNhdHVyYXRpb24oQGNvbG9yKSwgbGlnaHRuZXNzKEBjb2xvciksIEBhbHBoYSk7XG4gICAgLmJhY2tncm91bmQtY2xpcChwYWRkaW5nLWJveCk7XG4gIH1cbn1cblxuLy8gR3JhZGllbnQgQmFyIENvbG9ycyBmb3IgYnV0dG9ucyBhbmQgYWxlcnRzXG4uZ3JhZGllbnRCYXIoQHByaW1hcnlDb2xvciwgQHNlY29uZGFyeUNvbG9yKSB7XG4gICNncmFkaWVudCA+IC52ZXJ0aWNhbChAcHJpbWFyeUNvbG9yLCBAc2Vjb25kYXJ5Q29sb3IpO1xuICBib3JkZXItY29sb3I6IEBzZWNvbmRhcnlDb2xvciBAc2Vjb25kYXJ5Q29sb3IgZGFya2VuKEBzZWNvbmRhcnlDb2xvciwgMTUlKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xKSByZ2JhKDAsMCwwLC4xKSBmYWRlaW4ocmdiYSgwLDAsMCwuMSksIDE1JSk7XG59XG5cbi8vIEdyYWRpZW50c1xuI2dyYWRpZW50IHtcbiAgLmhvcml6b250YWwoQHN0YXJ0Q29sb3I6ICM1NTUsIEBlbmRDb2xvcjogIzMzMykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gRkYgMy42K1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIElFMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAxMDAlIDAsIGZyb20oQHN0YXJ0Q29sb3IpLCB0byhAZW5kQ29sb3IpKTsgLy8gU2FmYXJpIDQrLCBDaHJvbWUgMitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIE9wZXJhIDExLjEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBMZSBzdGFuZGFyZFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLEBzdGFydENvbG9yLEBlbmRDb2xvcikpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuICAudmVydGljYWwoQHN0YXJ0Q29sb3I6ICM1NTUsIEBlbmRDb2xvcjogIzMzMykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peChAc3RhcnRDb2xvciwgQGVuZENvbG9yLCA2MCUpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIEZGIDMuNitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIElFMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oQHN0YXJ0Q29sb3IpLCB0byhAZW5kQ29sb3IpKTsgLy8gU2FmYXJpIDQrLCBDaHJvbWUgMitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBUaGUgc3RhbmRhcmRcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cbiAgLmRpcmVjdGlvbmFsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMsIEBkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gRkYgMy42K1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIElFMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIE9wZXJhIDExLjEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBUaGUgc3RhbmRhcmRcbiAgfVxuICAudmVydGljYWwtdGhyZWUtY29sb3JzKEBzdGFydENvbG9yOiAjMDBiM2VlLCBAbWlkQ29sb3I6ICM3YTQzYjYsIEBjb2xvclN0b3A6IDUwJSwgQGVuZENvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KEBtaWRDb2xvciwgQGVuZENvbG9yLCA4MCUpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbShAc3RhcnRDb2xvciksIGNvbG9yLXN0b3AoQGNvbG9yU3RvcCwgQG1pZENvbG9yKSwgdG8oQGVuZENvbG9yKSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsQHN0YXJ0Q29sb3IsQGVuZENvbG9yKSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG4gIH1cbiAgLnJhZGlhbChAaW5uZXJDb2xvcjogIzU1NSwgQG91dGVyQ29sb3I6ICMzMzMpICB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG91dGVyQ29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChyYWRpYWwsIGNlbnRlciBjZW50ZXIsIDAsIGNlbnRlciBjZW50ZXIsIDQ2MCwgZnJvbShAaW5uZXJDb2xvciksIHRvKEBvdXRlckNvbG9yKSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXJDb2xvciwgQG91dGVyQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXJDb2xvciwgQG91dGVyQ29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnN0cmlwZWQoQGNvbG9yLCBAYW5nbGU6IC00NWRlZykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoLjI1LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC4yNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSksIGNvbG9yLXN0b3AoLjc1LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC43NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuLy8gUmVzZXQgZmlsdGVycyBmb3IgSUVcbi5yZXNldC1maWx0ZXIoKSB7XG4gIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSlcIikpO1xufVxuXG5cblxuLy8gQ09NUE9ORU5UIE1JWElOU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQnV0dG9uIGJhY2tncm91bmRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi5idXR0b25CYWNrZ3JvdW5kKEBzdGFydENvbG9yLCBAZW5kQ29sb3IpIHtcbiAgLy8gZ3JhZGllbnRCYXIgd2lsbCBzZXQgdGhlIGJhY2tncm91bmQgdG8gYSBwbGVhc2luZyBibGVuZCBvZiB0aGVzZSwgdG8gc3VwcG9ydCBJRTw9OVxuICAuZ3JhZGllbnRCYXIoQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7XG4gICpiYWNrZ3JvdW5kLWNvbG9yOiBAZW5kQ29sb3I7IC8qIERhcmtlbiBJRTcgYnV0dG9ucyBieSBkZWZhdWx0IHNvIHRoZXkgc3RhbmQgb3V0IG1vcmUgZ2l2ZW4gdGhleSB3b24ndCBoYXZlIGJvcmRlcnMgKi9cbiAgLnJlc2V0LWZpbHRlcigpO1xuXG4gIC8vIGluIHRoZXNlIGNhc2VzIHRoZSBncmFkaWVudCB3b24ndCBjb3ZlciB0aGUgYmFja2dyb3VuZCwgc28gd2Ugb3ZlcnJpZGVcbiAgJjpob3ZlciwgJjphY3RpdmUsICYuYWN0aXZlLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yO1xuICAgICpiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGVuZENvbG9yLCA1JSk7XG4gIH1cblxuICAvLyBJRSA3ICsgOCBjYW4ndCBoYW5kbGUgYm94LXNoYWRvdyB0byBzaG93IGFjdGl2ZSwgc28gd2UgZGFya2VuIGEgYml0IG91cnNlbHZlc1xuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAZW5kQ29sb3IsIDEwJSkgZShcIlxcOVwiKTtcbiAgfVxufVxuXG4vLyBOYXZiYXIgdmVydGljYWwgYWxpZ25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGVsZW1lbnRzIGluIHRoZSBuYXZiYXIuXG4vLyBFeGFtcGxlOiBhbiBlbGVtZW50IGhhcyBhIGhlaWdodCBvZiAzMHB4LCBzbyB3cml0ZSBvdXQgYC5uYXZiYXJWZXJ0aWNhbEFsaWduKDMwcHgpO2AgdG8gY2FsY3VsYXRlIHRoZSBhcHByb3ByaWF0ZSB0b3AgbWFyZ2luLlxuLm5hdmJhclZlcnRpY2FsQWxpZ24oQGVsZW1lbnRIZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogKEBuYXZiYXJIZWlnaHQgLSBAZWxlbWVudEhlaWdodCkgLyAyO1xufVxuXG4vLyBQb3BvdmVyIGFycm93c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRm9yIHRpcHNpZXMgYW5kIHBvcG92ZXJzXG4jcG9wb3ZlckFycm93IHtcbiAgLnRvcChAYXJyb3dXaWR0aDogNXB4LCBAY29sb3I6IEBibGFjaykge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AYXJyb3dXaWR0aDtcbiAgICBib3JkZXItbGVmdDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbiAgLmxlZnQoQGFycm93V2lkdGg6IDVweCwgQGNvbG9yOiBAYmxhY2spIHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRoIHNvbGlkIEBjb2xvcjtcbiAgfVxuICAuYm90dG9tKEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBhcnJvd1dpZHRoO1xuICAgIGJvcmRlci1sZWZ0OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IEBhcnJvd1dpZHRoIHNvbGlkIEBjb2xvcjtcbiAgfVxuICAucmlnaHQoQGFycm93V2lkdGg6IDVweCwgQGNvbG9yOiBAYmxhY2spIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AYXJyb3dXaWR0aDtcbiAgICBib3JkZXItdG9wOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IEBhcnJvd1dpZHRoIHNvbGlkIEBjb2xvcjtcbiAgfVxufVxuXG4vLyBHcmlkIFN5c3RlbVxuLy8gLS0tLS0tLS0tLS1cblxuLy8gQ2VudGVyZWQgY29udGFpbmVyIGVsZW1lbnRcbi5jb250YWluZXItZml4ZWQoKSB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC5jbGVhcmZpeCgpO1xufVxuXG4vLyBUYWJsZSBjb2x1bW5zXG4udGFibGVDb2x1bW5zKEBjb2x1bW5TcGFuOiAxKSB7XG4gIGZsb2F0OiBub25lOyAvLyB1bmRvIGRlZmF1bHQgZ3JpZCBjb2x1bW4gc3R5bGVzXG4gIHdpZHRoOiAoKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCkgKiBAY29sdW1uU3BhbikgKyAoQGZsdWlkR3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5TcGFuIC0gMSkpIC0gMTY7IC8vIDE2IGlzIHRvdGFsIHBhZGRpbmcgb24gbGVmdCBhbmQgcmlnaHQgb2YgdGFibGUgY2VsbHNcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIHVuZG8gZGVmYXVsdCBncmlkIGNvbHVtbiBzdHlsZXNcbn1cblxuLy8gTWFrZSBhIEdyaWRcbi8vIFVzZSAubWFrZVJvdyBhbmQgLm1ha2VDb2x1bW4gdG8gYXNzaWduIHNlbWFudGljIGxheW91dHMgZ3JpZCBzeXN0ZW0gYmVoYXZpb3Jcbi5tYWtlUm93KCkge1xuICBtYXJnaW4tbGVmdDogQGdyaWRHdXR0ZXJXaWR0aCAqIC0xO1xuICAuY2xlYXJmaXgoKTtcbn1cbi5tYWtlQ29sdW1uKEBjb2x1bW5zOiAxLCBAb2Zmc2V0OiAwKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogKEBncmlkQ29sdW1uV2lkdGggKiBAb2Zmc2V0KSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBvZmZzZXQgLSAxKSkgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIDIpO1xuICB3aWR0aDogKEBncmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyAtIDEpKTtcbn1cblxuLy8gVGhlIEdyaWRcbiNncmlkIHtcblxuICAuY29yZSAoQGdyaWRDb2x1bW5XaWR0aCwgQGdyaWRHdXR0ZXJXaWR0aCkge1xuXG4gICAgLnNwYW5YIChAaW5kZXgpIHdoZW4gKEBpbmRleCA+IDApIHtcbiAgICAgIC5zcGFuQHtpbmRleH0geyAuc3BhbihAaW5kZXgpOyB9XG4gICAgICAuc3BhblgoQGluZGV4IC0gMSk7XG4gICAgfVxuICAgIC5zcGFuWCAoMCkge31cblxuICAgIC5vZmZzZXRYIChAaW5kZXgpIHdoZW4gKEBpbmRleCA+IDApIHtcbiAgICAgIC5vZmZzZXRAe2luZGV4fSB7IC5vZmZzZXQoQGluZGV4KTsgfVxuICAgICAgLm9mZnNldFgoQGluZGV4IC0gMSk7XG4gICAgfVxuICAgIC5vZmZzZXRYICgwKSB7fVxuXG4gICAgLm9mZnNldCAoQGNvbHVtbnMpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoQGdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zICsgMSkpO1xuICAgIH1cblxuICAgIC5zcGFuIChAY29sdW1ucykge1xuICAgICAgd2lkdGg6IChAZ3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSk7XG4gICAgfVxuXG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogQGdyaWRHdXR0ZXJXaWR0aCAqIC0xO1xuICAgICAgLmNsZWFyZml4KCk7XG4gICAgfVxuXG4gICAgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogQGdyaWRHdXR0ZXJXaWR0aDtcbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXNcbiAgICAuY29udGFpbmVyLFxuICAgIC5uYXZiYXItZml4ZWQtdG9wIC5jb250YWluZXIsXG4gICAgLm5hdmJhci1maXhlZC1ib3R0b20gLmNvbnRhaW5lciB7IC5zcGFuKEBncmlkQ29sdW1ucyk7IH1cblxuICAgIC8vIGdlbmVyYXRlIC5zcGFuWCBhbmQgLm9mZnNldFhcbiAgICAuc3BhblggKEBncmlkQ29sdW1ucyk7XG4gICAgLm9mZnNldFggKEBncmlkQ29sdW1ucyk7XG5cbiAgfVxuXG4gIC5mbHVpZCAoQGZsdWlkR3JpZENvbHVtbldpZHRoLCBAZmx1aWRHcmlkR3V0dGVyV2lkdGgpIHtcblxuICAgIC5zcGFuWCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICAuc3BhbkB7aW5kZXh9IHsgLnNwYW4oQGluZGV4KTsgfVxuICAgICAgLnNwYW5YKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAuc3BhblggKDApIHt9XG5cbiAgICAuc3BhbiAoQGNvbHVtbnMpIHtcbiAgICAgIHdpZHRoOiAoQGZsdWlkR3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyAtIDEpKTtcbiAgICAgICp3aWR0aDogKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSkgLSAoLjUgLyBAZ3JpZFJvd1dpZHRoICogMTAwICogMSUpO1xuICAgIH1cblxuICAgIC5yb3ctZmx1aWQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAuY2xlYXJmaXgoKTtcbiAgICAgIFtjbGFzcyo9XCJzcGFuXCJdIHtcbiAgICAgICAgLmlucHV0LWJsb2NrLWxldmVsKCk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogQGZsdWlkR3JpZEd1dHRlcldpZHRoO1xuICAgICAgICAqbWFyZ2luLWxlZnQ6IEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAtICguNSAvIEBncmlkUm93V2lkdGggKiAxMDAgKiAxJSk7XG4gICAgICB9XG4gICAgICBbY2xhc3MqPVwic3BhblwiXTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBnZW5lcmF0ZSAuc3BhblhcbiAgICAgIC5zcGFuWCAoQGdyaWRDb2x1bW5zKTtcbiAgICB9XG5cbiAgfVxuXG4gIC5pbnB1dChAZ3JpZENvbHVtbldpZHRoLCBAZ3JpZEd1dHRlcldpZHRoKSB7XG5cbiAgICAuc3BhblggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgaW5wdXQuc3BhbkB7aW5kZXh9LCB0ZXh0YXJlYS5zcGFuQHtpbmRleH0sIC51bmVkaXRhYmxlLWlucHV0LnNwYW5Ae2luZGV4fSB7IC5zcGFuKEBpbmRleCk7IH1cbiAgICAgIC5zcGFuWChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLnNwYW5YICgwKSB7fVxuXG4gICAgLnNwYW4oQGNvbHVtbnMpIHtcbiAgICAgIHdpZHRoOiAoKEBncmlkQ29sdW1uV2lkdGgpICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSkgLSAxMDtcbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSxcbiAgICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgLy8gb3ZlcnJpZGUgbWFyZ2luLWxlZnQgZnJvbSBjb3JlIGdyaWQgc3lzdGVtXG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgLnNwYW5YXG4gICAgLnNwYW5YIChAZ3JpZENvbHVtbnMpO1xuXG4gIH1cblxufVxuXG4uZGFya0xpZ2h0IChAYSkgd2hlbiAobGlnaHRuZXNzKEBhKSA+PSA1MCUpIHtcbiAgY29sb3I6IEBncmF5RGFya2VyO1xufVxuLmRhcmtMaWdodCAoQGEpIHdoZW4gKGxpZ2h0bmVzcyhAYSkgPCA1MCUpIHtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbiIsImh0bWwubmF2LW9wZW4sXG5odG1sLm5hdi1vcGVuIGJvZHkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm5hdmJhciB7XG4gIC8vIEZpeCBmb3IgSUU3J3MgYmFkIHotaW5kZXhpbmcgc28gZHJvcGRvd25zIGRvbid0XG4gIC8vIGFwcGVhciBiZWxvdyBjb250ZW50IHRoYXQgZm9sbG93cyB0aGUgbmF2YmFyXG4gICpwb3NpdGlvbjogcmVsYXRpdmU7XG4gICp6LWluZGV4OiAyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gNTtcblxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC50b2dnbGUtbmF2LWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5uYXZiYXItaW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXJCYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQnJhbmQsIGxpbmtzLCB0ZXh0LCBhbmQgYnV0dG9uc1xuICBjb2xvcjogQG5hdmJhclRleHQ7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG5cbiAgLy8gSG92ZXIgYW5kIGFjdGl2ZSBzdGF0ZXNcbiAgLy8gUGxhaW4gdGV4dCBpbiB0b3BiYXJcbiAgLm5hdmJhci10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gU29jaWFsIGljb25zIGFwcGVhcmluZyBpbiBtYWluIG9yIHN0aWNreSBuYXZcbiAgI2hlYWRlci1zb2NpYWwgbGkgPiBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIH1cblxuICAvLyBDb21tb24gbmF2IGxheW91dFxuICAubmF2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IEBuYXZiYXJUZXh0O1xuXG4gICAgJiA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhckxpbmtDb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmRpdmlkdWFsIG5hdiBsaW5rc1xuICBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICYgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IEBuYXZiYXJIZWlnaHQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBuYXZiYXJIZWlnaHQgLyA0O1xuICAgICAgcGFkZGluZy1yaWdodDogQG5hdmJhckhlaWdodCAvIDQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJvcGRvd25zIHdpdGhpbiBuYXZcbiAgbGkuZHJvcGRvd24gPiBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIGxpLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgIGNvbG9yOiBAbmF2YmFyTGlua0NvbG9yO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICB9XG4gIH1cblxuICBsaSA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXJMaW5rQmFja2dyb3VuZEFjdGl2ZTtcbiAgICBjb2xvcjogQG5hdmJhckxpbmtDb2xvckhvdmVyO1xuXG4gICAgLmNhcmV0OmJlZm9yZSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9ySG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViIG1lbnVzXG4gIC5zdWItbWVudTpiZWZvcmUsXG4gIC5zdWItc3ViLW1lbnU6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBsZWZ0OiAtOXB4O1xuICAgIHRvcDogMzAlO1xuICB9XG4gIC5zdWItbWVudTphZnRlcixcbiAgLnN1Yi1zdWItbWVudTphZnRlciB7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIEB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAzMSU7XG4gICAgbGVmdDogLThweDtcbiAgfVxuXG4gIC8vIEhvbWUgbGluayBhbmQgaG9tZSBpY29uXG4gIGxpLmhvbWUtaWNvbixcbiAgbGkuaG9tZS1saW5rIHtcbiAgICBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGxpbmtDb2xvckhvdmVyLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgLmhvbWUtaWNvbjpob3ZlciBpbWcsXG4gIGxpLmhvbWUtbGluazpob3ZlciBpIHtcbiAgICAub3BhY2l0eSg4NSk7XG4gIH1cblxuICBsaS5ob21lLWxpbmsge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBAbmF2YmFySGVpZ2h0O1xuICAgICAgICB3aWR0aDogQG5hdmJhckhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsaS5ob21lLWljb24gPiBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAoQG5hdmJhckhlaWdodCAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICB9XG4gIH1cblxuICAvLyBOYXYgdG9nZ2xlIChidXJnZXIgYnV0dG9uKVxuICAuYnRuLW5hdmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLy8gQGljb25iYXJIZWlnaHQgaXMgdXNlZCA1eDogM3ggZm9yIHRoZSBiYXJzLCAyeCBmb3IgdGhlIG1hcmdpbiBiZXR3ZWVuIHRoZW0uXG4gICAgcGFkZGluZzogKGZsb29yKEBuYXZiYXJIZWlnaHQgLSAoNSAqIEBpY29uYmFySGVpZ2h0KSkpIC8gMiAxMHB4O1xuXG4gICAgLmxhYmVsIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luOiAtMnB4IDAgMCA1cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiBAbmF2YmFyRm9udFNpemU7XG4gICAgfVxuXG4gICAgLm5hdmJhciAuYnRuLW5hdmJhciAuYmFycyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuaWNvbi1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogQGljb25iYXJIZWlnaHQ7XG4gICAgfVxuXG4gICAgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgICAgIG1hcmdpbi10b3A6IEBpY29uYmFySGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIC5uYXYtbGVmdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgc3R5bGVzIGZvciAubmF2YmFyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA5O1xuXG4gICAgbGkuZHJvcGRvd24ge1xuICAgICAgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbmF2YmFySGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQG5hdmJhckhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAudG9nZ2xlLW5hdi1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLm5hdi1zaGVsZiB7XG4gICAgICBiYWNrZ3JvdW5kOiBAZHJvcGRvd25CYWNrZ3JvdW5kO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgICAgLnNpdGUtbmFtZSwgLmhvbWUtaWNvbiwgLmhvbWUtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHVsLCBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuXG4gICAgICBsaS5ob21lLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICBsaSBiLmNhcmV0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAucm90YXRlKCAtOTBkZWcgKTtcbiAgICAgIH1cblxuICAgICAgbGkub3BlbiA+IGEgLmNhcmV0IHtcbiAgICAgICAgLnJvdGF0ZSggMGRlZyApO1xuICAgICAgfVxuXG4gICAgICBsaS5vcGVuID4gdWwuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5ib3gtc2hhZG93KCBub25lICk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm5hdiA+IGxpIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLm9wZW4gLm5hdi1zaGVsZiB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgfVxuXG4gICAgLm5hdiBsaSB7XG4gICAgICAmLmhvbWUtbGluayxcbiAgICAgICYuc2l0ZS1uYW1lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gR3JhZGllbnQgaXMgYXBwbGllZCB0byBpdCdzIG93biBlbGVtZW50IGJlY2F1c2Ugb3ZlcmZsb3dcbi8vIHZpc2libGUgaXMgbm90IGhvbm9yZWQgYnkgSUUgd2hlbiBmaWx0ZXIgaXMgcHJlc2VudFxuLm5hdmJhci1pbm5lciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gRHJvcGRvd24gYXJyb3cvY2FyZXRcbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogQGJhc2VGb250U2l6ZTtcbiAgcGFkZGluZzogMCAoQGJhc2VGb250U2l6ZSAvIDIpO1xuICB0b3A6IDJweDtcblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9yO1xuICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogIDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG59XG5cbi8vIEdlbmVyYWwgZHJvcGRvd24vZHJvcHVwIHN0eWxlc1xuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuY2FyZXQge1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAd2hpdGU7XG4gIH1cblxuICAmLmFjdGl2ZSAuY2FyZXQge1xuICAgIC5vcGFjaXR5KDEwMCk7XG4gIH1cbn1cblxuLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC8vIFRoZSBjYXJldCBtYWtlcyB0aGUgdG9nZ2xlIGEgYml0IHRvbyB0YWxsIGluIElFN1xuICAqbWFyZ2luLWJvdHRvbTogLTNweDtcbn1cblxuLy8gRHJvcGRvd24gbWVudVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleERyb3Bkb3duO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogM3B4IDA7XG4gIG1hcmdpbjogMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd25CYWNrZ3JvdW5kO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO1xuICAqYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gICpib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIGxpIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpbmtzIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICYgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiAzcHggMTVweDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFjdGl2ZSBsaW5rcy9tZW51cyB3aXRoaW4gZHJvcGRvd25zXG4gIC5hY3RpdmUgPiBhLFxuICAuYWN0aXZlID4gYTpob3ZlciB7XG4gICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIFRPRE86IFdoYXQgaXMgdGhpcz9cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGRyb3Bkb3duQm9yZGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDlweDtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOXB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cblxuICAvLyBBZGQgc3VwcG9ydCBmb3Igc2Vjb25kIGxldmVsIGRyb3Bkb3duIG1lbnVzXG4gIC5zdWItbWVudSxcbiAgLnN1Yi1zdWItbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTIwJTtcbiAgICBsZWZ0OiA5OSU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgLmljb24tYXJyb3ctcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAzcHg7XG4gIH1cbiAgbGk6aG92ZXIgLnN1Yi1tZW51LFxuICAuc3ViLW1lbnUgbGk6aG92ZXIgLnN1Yi1zdWItbWVudSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGxpOmhvdmVyIC5zdWItc3ViLW1lbnUsXG4gICAgbGk6aG92ZXIgLnN1Yi1tZW51IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICBodG1sLm5vLXRvdWNoIHVsLm5hdiBsaS5kcm9wZG93bjpob3ZlciB1bC5kcm9wZG93bi1tZW51LFxuICBodG1sLnRvdWNoIHVsLm5hdiBsaS5kcm9wZG93bi5vcGVuIHVsLmRyb3Bkb3duLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5vcGVuIHtcbiAgLy8gSUU3J3Mgei1pbmRleCBvbmx5IGdvZXMgdG8gdGhlIG5lYXJlc3QgcG9zaXRpb25lZCBhbmNlc3Rvciwgd2hpY2ggd291bGRcbiAgLy8gbWFrZSB0aGUgbWVudSBhcHBlYXIgYmVsb3cgYnV0dG9ucyB0aGF0IGFwcGVhcmVkIGxhdGVyIG9uIHRoZSBwYWdlXG4gICp6LWluZGV4OiBAemluZGV4RHJvcGRvd247XG5cbiAgJiA+IC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWxsb3cgZm9yIGRyb3Bkb3ducyB0byBnbyBib3R0b20gdXAgKGFrYSwgZHJvcHVwLW1lbnUpXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBAYmxhY2s7XG4gICAgY29udGVudDogXCJcXDIxOTFcIjtcbiAgfVxuICAvLyBEaWZmZXJlbnQgcG9zaXRpb25pbmcgZm9yIGJvdHRvbSB1cCBtZW51XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgfVxufVxuXG4vLyBcIkRvbid0IG1pc3NcIi90b3BpY3MgYmFyXG4jdG9waWNzLWJhciB7XG4gIHBhZGRpbmc6IDNweCAwO1xuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICYubWVudS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE5hdmJhciBzZWFyY2ggZm9ybVxuI21haW4tbmF2Lm5hdmJhciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAbmF2YmFyUnVsZUNvbG9yO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdmJhclJ1bGVDb2xvcjtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT0xPUlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR3JheXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBibGFjazogICAgICAgICAgICAgICAgICMwMDA7XG5AZ3JheURhcmtlcjogICAgICAgICAgICAjMjIyO1xuQGdyYXlEYXJrOiAgICAgICAgICAgICAgIzQ4NDg0ODtcbkBncmF5OiAgICAgICAgICAgICAgICAgICM3RDgxODU7XG5AZ3JheUxpZ2h0OiAgICAgICAgICAgICAjYWFhO1xuQGdyYXlMaWdodGVyOiAgICAgICAgICAgI2RkZDtcbkB3aGl0ZTogICAgICAgICAgICAgICAgICNmZmY7XG5cblxuLy8gQWNjZW50IGNvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGJsdWU6ICAgICAgICAgICAgICAgICAgIzIyNzViYjtcbkBibHVlRGFyazogICAgICAgICAgICAgICMwMDY0Y2Q7XG5AZ3JlZW46ICAgICAgICAgICAgICAgICAjNDZhNTQ2O1xuQHJlZDogICAgICAgICAgICAgICAgICAgI2JkMjYxZDtcbkB5ZWxsb3c6ICAgICAgICAgICAgICAgICNmZmM0MGQ7XG5Ab3JhbmdlOiAgICAgICAgICAgICAgICAjZjg5NDA2O1xuQHBpbms6ICAgICAgICAgICAgICAgICAgI2MzMzI1ZjtcbkBwdXJwbGU6ICAgICAgICAgICAgICAgICM3YTQzYjY7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQmFzZSBDb2xvciAodXNlZCBmb3IgbmF2YmFyLCB3aWRnZXQgdGl0bGVzLCBldGMuKVxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMyMjc1YmJcbiAqL1xuQGJhc2VDb2xvcjpcdFx0XHRcdEBibHVlO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEhlYWRlci9Gb290ZXIgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjIyXG4gKi9cbkBoZWFkZXJGb290ZXJDb2xvcjpcdFx0QGdyYXlEYXJrZXI7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgUHJlLUZvb3RlciBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNkZGRcbiAqL1xuQHByZUZvb3RlckNvbG9yOlx0XHRAZ3JheUxpZ2h0ZXI7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQ29sb3Igb2YgbGlua3NcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjI3NWJiXG4gKi9cbkBsaW5rQ29sb3I6ICAgICAgICAgICAgIEBibHVlO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEhvdmVyIGNvbG9yIG9mIGxpbmtzXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzIyNzViYlxuICovXG5AbGlua0NvbG9ySG92ZXI6ICAgICAgICBsaWdodGVuKEBsaW5rQ29sb3IsIDEwJSk7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQmFja2dyb3VuZCBjb2xvciBvZiBwb3N0IG1ldGEgYm94ZXMgKGF1dGhvciBiaW8sIHJlbGF0ZWQgcG9zdHMsIGV0Yy4pXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgI2ZmZlxuICovXG5AcG9zdEJveEJhY2tncm91bmRDb2xvcjpcdCNmZmY7XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExBWU9VVFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGNvbnRhaW5lck1heFdpZHRoOlx0XHQxMTcwcHg7XG5cbi8qKlxuICogQGdyb3VwIEJhc2ljc1xuICogQGxhYmVsIEJvZHkgQmFja2dyb3VuZCBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNmZmZcbiAqL1xuQGJvZHlCYWNrZ3JvdW5kOiAgICAgICAgQHdoaXRlO1xuXG4vKipcbiAqIEBncm91cCBCYXNpY3NcbiAqIEBsYWJlbCBQYWdlIEJhY2tncm91bmQgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjZmZmXG4gKi9cbkBwYWdlQmFja2dyb3VuZDogICAgICAgIEB3aGl0ZTtcblxuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgVGV4dCBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMzMzNcbiAqL1xuQHRleHRDb2xvcjogICAgICAgICAgICAgQGdyYXlEYXJrO1xuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgRGVmYXVsdCBWZXJ0aWNhbCBTcGFjaW5nXG4gKiBAdHlwZSBwaXhlbHNcbiAqIEBkZWZhdWx0X3ZhbHVlIDI0cHhcbiAqL1xuQGJhc2VsaW5lOlx0XHRcdFx0MjRweDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGdyaWRDb2x1bW5zOiAgICAgICAgICAgICAxMjtcbkBmbHVpZEdyaWRDb2x1bW5XaWR0aDogICAgNi4zODI5Nzg3MjMlO1xuQGZsdWlkR3JpZEd1dHRlcldpZHRoOiAgICAyLjEyNzY1OTU3NCU7XG5AZ3JpZFJvd1dpZHRoOiAgICAgICAgICAgIDEwMCU7XG5cbi8vIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaGlnaGRlbnNpdHk6IH5cIm9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCIsXG4gICAgICAgICAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCIsXG4gICAgICAgICAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMy8yIClcIixcbiAgICAgICAgICAgICAgflwib25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCI7XG5cbkBtb2JpbGU6ICAgICAgflwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyOXB4KVwiO1xuXG5AdGFibGV0OiAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KVwiO1xuQHRhYmxldERvd246ICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpXCI7XG5AdGFibGV0VXA6ICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweClcIjtcblxuQGRlc2t0b3A6ICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTI4cHgpXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUWVBPR1JBUEhZXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgU2FucyBGb250IEZhbWlseVxuICogQHR5cGUgdGV4dFxuICogQGRlZmF1bHRfdmFsdWUgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXG4gKi9cbkBzYW5zRm9udEZhbWlseTogICAgICAgIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIFNlcmlmIEZvbnQgRmFtaWx5XG4gKiBAdHlwZSB0ZXh0XG4gKi9cbkBzZXJpZkZvbnRGYW1pbHk6ICAgICAgIEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbkBtb25vRm9udEZhbWlseTogICAgICAgIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIEJhc2UgRm9udCBTaXplXG4gKiBAdHlwZSBwaXhlbHNcbiAqL1xuQGJhc2VGb250U2l6ZTogICAgICAgICAgMTZweDtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIFNhbnMgRm9udCBGYW1pbHlcbiAqIEB0eXBlIGRyb3Bkb3duXG4gKiBAb3B0aW9ucyBAc2VyaWZGb250RmFtaWx5fEBzYW5zRm9udEZhbWlseVxuICogQGRlZmF1bHRfdmFsdWUgQHNlcmlmRm9udEZhbWlseVxuICovXG5AYmFzZUZvbnRGYW1pbHk6ICAgICAgICBAc2VyaWZGb250RmFtaWx5O1xuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIEJhc2UgTGluZSBIZWlnaHRcbiAqIEB0eXBlIHRleHRcbiAqIEBkZWZhdWx0X3ZhbHVlIDEuNVxuICovXG5AYmFzZUxpbmVIZWlnaHQ6ICAgICAgICAxLjU7XG5cbkBhbHRGb250RmFtaWx5OiAgICAgICAgIEBzYW5zRm9udEZhbWlseTtcbkBiYXNlRm9udFdlaWdodDpcdFx0bm9ybWFsO1xuXG5AaGVhZGluZ3NGb250RmFtaWx5OiAgICBAc2Fuc0ZvbnRGYW1pbHk7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAYmFzZUZvbnRGYW1pbHlcbkBoZWFkaW5nc0ZvbnRXZWlnaHQ6ICAgIGJvbGQ7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAYmFzZUZvbnRXZWlnaHRcbkBoZWFkaW5nc0NvbG9yOiAgICAgICAgIGluaGVyaXQ7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAdGV4dENvbG9yXG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZPUk1TLCBUQUJMRVMgQU5EIEJVVFRPTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHRhYmxlQmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7IC8vIG92ZXJhbGwgYmFja2dyb3VuZC1jb2xvclxuQHRhYmxlQmFja2dyb3VuZEFjY2VudDogICAgICAgICAgICAgI2Y5ZjlmOTsgLy8gZm9yIHN0cmlwaW5nXG5AdGFibGVCYWNrZ3JvdW5kSG92ZXI6ICAgICAgICAgICAgICAjZjVmNWY1OyAvLyBmb3IgaG92ZXJcbkB0YWJsZUJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICNkZGQ7IC8vIHRhYmxlIGFuZCBjZWxsIGJvcmRlclxuXG5cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBidG5CYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgIEB3aGl0ZTtcbkBidG5CYWNrZ3JvdW5kSGlnaGxpZ2h0OiAgICAgICAgICAgIGRhcmtlbihAd2hpdGUsIDEwJSk7XG5AYnRuQm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAjY2NjO1xuXG5AYnRuUHJpbWFyeUJhY2tncm91bmQ6ICAgICAgICAgICAgICBAYmFzZUNvbG9yO1xuQGJ0blByaW1hcnlCYWNrZ3JvdW5kSGlnaGxpZ2h0OiAgICAgc3BpbihAYnRuUHJpbWFyeUJhY2tncm91bmQsIDE1JSk7XG5cblxuLy8gRm9ybXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbnB1dEJhY2tncm91bmQ6ICAgICAgICAgICAgICAgQHdoaXRlO1xuQGlucHV0Qm9yZGVyOiAgICAgICAgICAgICAgICAgICAjY2NjO1xuQGlucHV0Qm9yZGVyUmFkaXVzOiAgICAgICAgICAgICAzcHg7XG5AaW5wdXREaXNhYmxlZEJhY2tncm91bmQ6ICAgICAgIEBncmF5TGlnaHRlcjtcbkBmb3JtQWN0aW9uc0JhY2tncm91bmQ6ICAgICAgICAgI2Y1ZjVmNTtcblxuQHBsYWNlaG9sZGVyVGV4dDogICAgICAgICBAZ3JheUxpZ2h0O1xuXG5cbi8vIEZvcm0gc3RhdGVzIGFuZCBhbGVydHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB3YXJuaW5nVGV4dDogICAgICAgICAgICAgI2MwOTg1MztcbkB3YXJuaW5nQmFja2dyb3VuZDogICAgICAgI2ZjZjhlMztcbkB3YXJuaW5nQm9yZGVyOiAgICAgICAgICAgZGFya2VuKHNwaW4oQHdhcm5pbmdCYWNrZ3JvdW5kLCAtMTApLCAzJSk7XG5cbkBlcnJvclRleHQ6ICAgICAgICAgICAgICAgI2I5NGE0ODtcbkBlcnJvckJhY2tncm91bmQ6ICAgICAgICAgI2YyZGVkZTtcbkBlcnJvckJvcmRlcjogICAgICAgICAgICAgZGFya2VuKHNwaW4oQGVycm9yQmFja2dyb3VuZCwgLTEwKSwgMyUpO1xuXG5Ac3VjY2Vzc1RleHQ6ICAgICAgICAgICAgICM0Njg4NDc7XG5Ac3VjY2Vzc0JhY2tncm91bmQ6ICAgICAgICNkZmYwZDg7XG5Ac3VjY2Vzc0JvcmRlcjogICAgICAgICAgIGRhcmtlbihzcGluKEBzdWNjZXNzQmFja2dyb3VuZCwgLTEwKSwgNSUpO1xuXG5AaW5mb1RleHQ6ICAgICAgICAgICAgICAgICMzYTg3YWQ7XG5AaW5mb0JhY2tncm91bmQ6ICAgICAgICAgICNkOWVkZjc7XG5AaW5mb0JvcmRlcjogICAgICAgICAgICAgIGRhcmtlbihzcGluKEBpbmZvQmFja2dyb3VuZCwgLTEwKSwgNyUpO1xuXG4vLyBaLWluZGV4IG1hc3RlciBsaXN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AemluZGV4RHJvcGRvd246ICAgICAgICAgIDEwMDA7XG5AemluZGV4UG9wb3ZlcjogICAgICAgICAgIDEwMTA7XG5AemluZGV4VG9vbHRpcDogICAgICAgICAgIDEwMjA7XG5AemluZGV4Rml4ZWROYXZiYXI6ICAgICAgIDEwMzA7XG5AemluZGV4TW9kYWxCYWNrZHJvcDogICAgIDEwNDA7XG5AemluZGV4TW9kYWw6ICAgICAgICAgICAgIDEwNTA7XG5cbi8vIE5hdmJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG5hdmJhckhlaWdodDogICAgICAgICAgICAgICAgICAgIDQwcHg7XG5AbmF2YmFyRm9udFNpemU6ICAgICAgICAgICAgICAgICAgMTVweDtcbkBuYXZiYXJCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBAYm9keUJhY2tncm91bmQ7XG4vLyBOYXZiYXIgYnV0dG9uIChidXJnZXIpIGZvciB0b2dnbGluZyBuYXZiYXIgaXRlbXMgaW4gcmVzcG9uc2l2ZSBsYXlvdXRzXG5AaWNvbmJhckhlaWdodDogM3B4O1xuXG4gICAgLy8gTmF2YmFyIGRyb3Bkb3duc1xuICAgIEBkcm9wZG93bkJhY2tncm91bmQ6IEB3aGl0ZTtcbiAgICBAZHJvcGRvd25Cb3JkZXI6IHJnYmEoMCwwLDAsLjIpO1xuICAgIEBkcm9wZG93bkRpdmlkZXJUb3A6ICNlNWU1ZTU7XG4gICAgQGRyb3Bkb3duRGl2aWRlckJvdHRvbTogQHdoaXRlO1xuXG4gICAgLy8gTWFpbiBuYXZiYXJcbiAgICBAbmF2YmFyVGV4dDogQHRleHRDb2xvcjtcbiAgICBAbmF2YmFyTGlua0NvbG9yOiBAbmF2YmFyVGV4dDtcbiAgICBAbmF2YmFyTGlua0NvbG9ySG92ZXI6IGRhcmtlbihAbmF2YmFyTGlua0NvbG9yLCA1JSk7XG4gICAgQG5hdmJhckxpbmtCYWNrZ3JvdW5kQWN0aXZlOiBkYXJrZW4oQG5hdmJhckJhY2tncm91bmQsIDUlKTtcbiAgICBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9yOiBAbmF2YmFyTGlua0NvbG9yO1xuICAgIEBuYXZiYXJEcm9wZG93bkNhcmV0Q29sb3JIb3ZlcjogQG5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgIEBuYXZiYXJSdWxlQ29sb3I6IEBncmF5TGlnaHQ7XG5cbiAgICAvLyBTdGlja3kgbmF2YmFyXG4gICAgQHN0aWNreU5hdmJhclRleHQ6IEB0ZXh0Q29sb3I7XG4gICAgQHN0aWNreU5hdmJhckxpbmtDb2xvcjogQHN0aWNreU5hdmJhclRleHQ7XG4gICAgQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyOiBkYXJrZW4oQHN0aWNreU5hdmJhckxpbmtDb2xvciwgNSUpO1xuICAgIEBzdGlja3lOYXZiYXJCYWNrZ3JvdW5kQ29sb3I6IEB3aGl0ZTtcbiAgICBAc3RpY2t5TmF2YmFyRHJvcGRvd25DYXJldENvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuICAgIEBzdGlja3lOYXZiYXJEcm9wZG93bkNhcmV0Q29sb3JIb3ZlcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuXG5cbi8vIFNvY2lhbCBCcmFuZHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkByc3M6ICNmODk0MDY7XG5AZmFjZWJvb2s6ICMzYTU3OTU7XG5AdHdpdHRlcjogIzU1YWNlZTtcbkB5b3V0dWJlOiAjZTUyZDI3O1xuQGdwbHVzOiAjZGQ0YjM5O1xuQGZsaWNrcjogI2ZmMDA4NDtcbkBsaW5rZWRpbjogIzAwN2JiNjtcbkB0dW1ibHI6ICMzNTQ2NWM7XG4iLCJAc3RpY2t5TmF2TGluZUhlaWdodDogNTZweDtcblxuLnN0aWNreS1uYXYtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnN0aWNreS1uYXYtaG9sZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA5OTk5ODtcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdGlja3lOYXZiYXJCYWNrZ3JvdW5kQ29sb3I7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIC50cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyk7XG5cbiAgJi50cmFuc2l0aW9uaW5nIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogQHN0aWNreU5hdkxpbmVIZWlnaHQ7XG5cbiAgICAubmF2YmFyIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgJi5zaG93IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBib2R5LmFkbWluLWJhciAmIHtcbiAgICB0b3A6IDMycHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzgycHgpIHtcbiAgICAgIHRvcDogNDZweDtcbiAgICB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBib2R5ICYubWFpbl9uYXZfaGlkZV9hcnRpY2xlLFxuICAgIGJvZHkgJi5zdGlja3lfbmF2X2Rpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi8vIEV4dGVuZCB0aGUgY29tbW9uIG5hdmJhciBzdHlsZXNcbi5uYXZiYXIuc3RpY2t5LW5hdmJhciB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIC50cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyk7XG5cbiAgLm5hdiB7XG4gICAgY29sb3I6IEBzdGlja3lOYXZiYXJUZXh0O1xuICB9XG5cbiAgbGkge1xuICAgIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IEBzdGlja3lOYXZMaW5lSGVpZ2h0O1xuICAgICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3I7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgICAgfVxuXG4gICAgICAuY2FyZXQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQHN0aWNreU5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciAuY2FyZXQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQHN0aWNreU5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvckhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaG9tZS1saW5rID4gYTpob3ZlciB7XG4gICAgICBjb2xvcjogbGlnaHRlbihAc3RpY2t5TmF2YmFyTGlua0NvbG9yLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJvcGRvd25zIHdpdGhpbiBuYXZcbiAgbGkuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLnNvY2lhbC1pY29ucyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG5cbiAgLmJ0bi1uYXZiYXIge1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBAc3RpY2t5TmF2TGluZUhlaWdodDtcblxuICAgIC5iYXJzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAuaWNvbi1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5ob21lLWxpbmsge1xuICAgIC8vIFRPRE86IHNob3VsZCBiZSBiYXNlZCBvbiBhIHZhcmlhYmxlXG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5uYXYgPiBsaSB7XG4gICAgICBhIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgYmUgYmFzZWQgb24gdmFyaWFibGVcbiAgICAgICAgICB3aWR0aDogMS40OWVtO1xuICAgICAgICAgIGhlaWdodDogMS40OWVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pY29uLWhvbWU6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udGFpbnMgc29jaWFsIGljb25zLCBzZWFyY2gsIGRvbmF0ZSBsaW5rXG4gIC5uYXYtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgICNoZWFkZXItZXh0cmFzIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYS5kb25hdGUtbGluazpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuZG9uYXRlIHtcbiAgICAgICAgYSBzcGFuIHtcbiAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgYmUgYmFzZWQgb24gdmFyc1xuICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgICBjb2xvcjogQHdoaXRlO1xuXG4gICAgICAgICAgLy8gVE9ETzogaXMgdGhpcyBzcGVjaWZpYyB0byB0aGUgZG9uYXRlIGxpbms/XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHJlZDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQHJlZCwgNSUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFRPRE86IHdoYXQgaXMgdGhpcyBmb3I/XG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgLy8gTmF2YmFyIHNlYXJjaCBmb3JtXG4gIC5mb3JtLXNlYXJjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC50b2dnbGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgY29sb3I6IEBiYXNlQ29sb3I7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5MTtcbiAgICAgIC50cmFuc2l0aW9uKCAwLjNzICk7XG4gICAgfVxuICAgIC5pbnB1dC1hcHBlbmQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDQ0cHg7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAudHJhbnNpdGlvbiggMC4zcyApO1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIHotaW5kZXg6IDkwO1xuICAgICAgd2lkdGg6IDI0NnB4O1xuICAgICAgLnRleHQtaW5wdXQtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDE5NnB4O1xuICAgICAgfVxuICAgICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLmJveC1zaXppbmcoIGJvcmRlci1ib3ggKTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogNTBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIC5ib3gtc2l6aW5nKCBib3JkZXItYm94ICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgICAjc3RpY2t5LW5hdi1zZWFyY2guc2hvdyB7XG4gICAgICAuaW5wdXQtYXBwZW5kIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuICAgICAgLmlucHV0LWFwcGVuZCxcbiAgICAgIC50b2dnbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzNDM0O1xuICAgICAgICBjb2xvcjogQGJvZHlCYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXYtbGVmdCB7XG4gICAgJiA+IHVsIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSGlkZXMgdGhlIHNlY29uZCBzaXRlIG5hbWUgaW4gdGhlIHN0aWNreSBoZWFkZXJcbiAgLy8gd2hlbiAubmF2LXNoZWxmIGlzIHZpc2libGVcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gICAgLm5hdi1sZWZ0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gU2l0ZSBuYW1lXG4gIC5zaXRlLW5hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjMzQzNDM0O1xuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvcjtcbiAgICAgIG1heC13aWR0aDogMjE0cHg7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSaWdodCBzaWRlIG9mIG5hdiwgc2VhcmNoLCBkb25hdGUsIHNvY2lhbCBpY29uc1xuICAubmF2LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgI2hlYWRlci1leHRyYXMge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBhLmRvbmF0ZS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3RpY2t5IG5hdiBkcm9wZG93biBtb2RzXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGxpLmRyb3Bkb3duIHtcbiAgICAgIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogQHN0aWNreU5hdkxpbmVIZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1zaGVsZiBiLmNhcmV0IHtcbiAgICAgIHBhZGRpbmc6IDIycHg7XG4gICAgfVxuICB9XG59XG5cbi8vIEZvcm1hdCB0aGUgc3RpY2t5IG5hdiBvdmVyZmxvdyBtZW51XG4jbWVudS1vdmVyZmxvdyA+IHVsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAuY2FyZXQ6OmJlZm9yZSwgLmNhcmV0OjphZnRlciB7XG4gICAgZGlzcGxheTpub25lO1xuICB9XG4gIHVsLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBsaSBhIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gICAgfVxuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnN1Yi1tZW51LFxuICAgIC5zdWItc3ViLW1lbnUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogQmVmb3JlIEZvb3RlciwgU2l0ZSBGb290ZXJcbiAqXG4gKiAjYmVmb3JlLWZvb3RlciAtIGEgZHluYW1pYyB3aWRnZXQgYXJlYSBwcmlvciB0byAjc2l0ZS1mb290ZXJcbiAqICNzaXRlLWZvb3RlclxuICogICAjc3VwcGxlbWVudGFyeSAtIHByaW1hcnkgd2lkZ2V0IHpvbmVzIGZvciBzaXRlIGZvb3RlclxuICogICAjYm9pbGVycGxhdGUgLSBzb2NpYWwgaWNvbnMsIGNvcHlyaWdodCwgSU5OIGxvZ28gYW5kIGZvb3RlciBsaW5rc1xuICpcbiAqIEBzaW5jZSAwLjUuM1xuICovXG4gXG4uYmVmb3JlLWZvb3Rlci13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByZUZvb3RlckNvbG9yO1xufVxuXG4jYmVmb3JlLWZvb3RlciB7XG4gIC53aWRnZXQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uZm9vdGVyLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGhlYWRlckZvb3RlckNvbG9yO1xuICBwYWRkaW5nOiAwIDAgMThweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI3N1cHBsZW1lbnRhcnkge1xuICBwYWRkaW5nOiBAYmFzZWxpbmUgMCAwIDA7XG4gICYuXzFjb2wgYXNpZGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4vKiBzcGVjaWZpYyB0byB0aGUgb25lIGNvbHVtbiBmb290ZXIgbGF5b3V0ICovXG4uXzFjb2wgLndpZGdldF9uYXZfbWVudSBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG5cbi8qXG4gKiBpbWFnZSBkaXNwbGF5cyAzMDBweCB3aWRlLCBidXQgaXMgcGh5c2ljYWxseSAxNjk5eDM4NSBweF4yXG4gKiBXZSdsbCB1c2UgbWF0aCB0byBnZXQgdGhlIHBhZGRpbmcgdG9wIGFuZCBib3R0b20gY29ycmVjdCwgYWNjb3JkaW5nIHRvIHRoZSBicmFuZCBndWlkZWxpbmVzXG4gKiBtYXJnaW4gdG9wIGFuZCBtYXJnaW4gYm90dG9tIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgaGVpZ2h0IG9mIG9uZSBvZiB0aGUgc3F1YXJlcy5cbiAqIEJ5IGNyb3BwaW5nIHRoZSBpbWFnZSB0byB0aGUgb3V0ZXIgYm91bmRhcnkgb2YgdGhlIGxvd2VyLWxlZnQgc3F1YXJlIGluIGlubl9sb2dvX3JldmVyc2V0eXBlLnBuZywgd2UgZ2V0IGEgc3F1YXJlIGhlaWdodCBvZiAxODRweC5cbiAqIDE4NC8xNjY5ID0geC8zMDBcbiAqL1xuQGlubi1sb2dvLXBoeXNpY2FsLXdpZHRoOiAxNjY5cHg7XG5AaW5uLWxvZ28tcGh5c2ljYWwtaGVpZ2h0OiAzODVweDtcbkBpbm4tbG9nby13aWR0aDogMjAwcHg7XG5AaW5uLWxvZ28tc3F1YXJlOiAoQGlubi1sb2dvLXdpZHRoKjE4NC9AaW5uLWxvZ28tcGh5c2ljYWwtd2lkdGgpOyAvLyAxODQgY29tZXMgZm9ybSB0aGUgd2lkdGggb2Ygb25lIHNxdWFyZSBpbiBJTk4ncyAyMDE1IGxvZ29cbkBpbm4tbG9nby1oZWlnaHQ6IChAaW5uLWxvZ28td2lkdGgqQGlubi1sb2dvLXBoeXNpY2FsLWhlaWdodC9AaW5uLWxvZ28tcGh5c2ljYWwtd2lkdGgpOyAvLyB0aGUgcmVuZGVyZWQgaGVpZ2h0IG9mIHRoZSBsb2dvIGltYWdlXG5AZm9vdGVyLXNvY2lhbC1sb2dvLWZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSArIDI7XG5cbiNpbm4tbG9nbyB7XG4gIG1hcmdpbi10b3A6IEBpbm4tbG9nby1zcXVhcmU7XG4gIG1hcmdpbi1ib3R0b206IEBpbm4tbG9nby1zcXVhcmUqMC43NTtcbiAgbWF4LXdpZHRoOiBAaW5uLWxvZ28td2lkdGg7XG59XG5cbiNmb290ZXItbG9nb3MtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHggMDtcbn1cblxuI2Zvb3Rlci1sb2dvcyB7XG4gIG92ZXJmbG93OmhpZGRlbjtcbiAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIFx0ZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NyU7XG4gICAgaW1nIHtcblx0ICBkaXNwbGF5OiBibG9jaztcblx0ICB3aWR0aDogMTAwJTtcblx0ICBtYXgtd2lkdGg6IDE4MHB4O1xuXHQgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuICBoNiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBncmF5TGlnaHRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBncmF5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBhIHtcblx0ICBmbG9hdDogcmlnaHQ7XG5cdCAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbnVsI2Zvb3Rlci1zb2NpYWwge1xuICBwYWRkaW5nLXRvcDogQGlubi1sb2dvLXNxdWFyZTtcbiAgcGFkZGluZy1ib3R0b206IEBpbm4tbG9nby1zcXVhcmUqMC43NTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIGxpIHtcbiAgICBoZWlnaHQ6IEBpbm4tbG9nby1oZWlnaHQ7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIHBhZGRpbmctdG9wOiAoKEBpbm4tbG9nby1oZWlnaHQgLSBAZm9vdGVyLXNvY2lhbC1sb2dvLWZvbnQtc2l6ZSkvMS43NSk7XG4gICAgfVxuICAgIGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwO1xuICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIG1hcmdpbi10b3A6IDEuMjUqQGlubi1sb2dvLXNxdWFyZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogZGFya2VuKEB3aGl0ZSwgMjUlKTtcbiAgICAgIH1cbiAgICAgIGZvbnQtc2l6ZTogQGZvb3Rlci1zb2NpYWwtbG9nby1mb250LXNpemU7XG4gICAgICAuZGFya0xpZ2h0KEBoZWFkZXJGb290ZXJDb2xvcik7XG4gICAgfVxuICB9XG4gIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4jYm9pbGVycGxhdGUge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjojOUY5RkEzO1xuICB9XG4gIC5tZW51IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuNjY3O1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgfVxuICB9XG4gIC5tZW51IHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxufVxuXG5mb290ZXIgI2JvaWxlcnBsYXRlIHtcbiAgcCB7XG4gICAgY29sb3I6IzlGOUZBMztcbiAgfVxuICBhIHtcbiAgICBjb2xvcjpAZ3JheUxpZ2h0ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjojMDlDOUZGOyAvLyBUaGlzIGJsdWUgaXMgSU5OJ3MgUHJpbWFyeSBCcmFuZCBjb2xvciFcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gICNib2lsZXJwbGF0ZSAuc3BhbjYucmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTc5cHgpIHtcbiAgLy8gSWYgdGhlIElOTiBsb2dvIGlzIG5vdCBkaXNwbGF5ZWQsIHRoZSBmb290ZXIgY3JlZGl0IGdldHMgc29tZSBwYWRkaW5nIHVwIHRvcFxuICAuZm9vdGVyLWNyZWRpdC1wYWRkaW5nLWlubi1sb2dvLW1pc3Npbmcge1xuICAgIG1hcmdpbi10b3A6IEBpbm4tbG9nby1oZWlnaHQgKyAxLjc1KkBpbm4tbG9nby1zcXVhcmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICNib2lsZXJwbGF0ZSAucm93LWZsdWlkIHtcbiAgICAuc3BhbjYge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICB1bCNmb290ZXItc29jaWFsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgLmZvb3Rlci1jcmVkaXQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmJhY2stdG8tdG9wIHtcbiAgLnZpc3VhbGx5aGlkZGVuXG59XG4iLCIvL092ZXJyaWRlIExhcmdvIHN0eWxlcywgaHR0cDovL2ppcmEuaW5uLm9yZy9icm93c2UvUk5TLTEwNlxuYm9keS5ub3JtYWwuc2luZ2xlLXBvc3QgYXJ0aWNsZS5wb3N0ID4gaGVhZGVyIC5lbnRyeS1kYXRlLFxuYm9keS5ub3JtYWwuc2luZ2xlLXBvc3QgYXJ0aWNsZS5wb3N0ID4gaGVhZGVyIC5zZXAge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi50b3AtZGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnlsaW5lIC50d2l0dGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzU1YWNlZTtcbiAgfVxufVxucC53cC1jYXB0aW9uLXRleHQge1xuICBmb250LWZhbWlseTogQHNtYWxsdGV4dDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbTtcbn1cblxuZmlnY2FwdGlvbiBjaXRlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLy8gVGhlbWUgY29sb3JzXG5AYmFzZUNvbG9yOiB0cmFuc3BhcmVudDtcbkBsaWdodGJsdWU6ICM1MGM1Zjc7XG5AYmx1ZTogIzIyNkY5MTtcbkByZWQ6ICNCNDM0MzQ7XG5AeWVsbG93OiAjRjBCOTU2O1xuXG5AdHJhbnNwYXJlbnRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG5cbi8vIFR5cG9ncmFwaHlcbkBzYW5zOiBcInRhYmxldC1nb3RoaWMtY29uZGVuc2VkXCIsc2Fucy1zZXJpZjtcbkBib2R5OiBcImxlaXR1cmEtbmV3c1wiLEdlb3JnaWEsc2VyaWY7XG5Ac21hbGx0ZXh0OiBcImhlbHZldGljYSBuZXVlXCIsaGVsdmV0aWNhLHNhbnMtc2VyaWY7XG4iLCIvKiBUeXBvZ3JhcGh5ICovXG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IEBncmF5RGFyaztcbiAgYSB7XG4gICAgY29sb3I6IEBncmF5RGFyaztcbiAgfVxufVxuXG4vKiAgTmF0cyBjaGFuZ2VzIHRvIGhlYWRpbmcgc2l6ZXMgICovXG5cbi5lbnRyeS1jb250ZW50IGgxLFxuZW50cnktY29udGVudCBoMiB7XHRcbiAgICBmb250LXNpemU6IDMwcHg7XG59XG4uZW50cnktY29udGVudCBoMyB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuLmVudHJ5LWNvbnRlbnQgaDQsIFxuLmVudHJ5LWNvbnRlbnQgaDVcbi5lbnRyeS1jb250ZW50IGg2e1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5lbnRyeS1jb250ZW50IGg1LFxuLmVudHJ5LWNvbnRlbnQgaDZ7XG5cdGNvbG9yOiBncmF5O31cblx0XG4jdG9waWNzLWJhciB1bCBsaSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XHRcblx0XG4vKiBlbmQgbmF0J3MgY2hhbmdlcyAqL1xuXG5hIHtcbiAgY29sb3I6IEByZWQ7XG4gICY6aG92ZXIge1xuICBcdGNvbG9yOiBAcmVkO1xuICBcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIH1cblxuXHRcdFxucCxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogQGJvZHk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5oNS5ieWxpbmUge1xuICBmb250LWZhbWlseTogQHNtYWxsdGV4dDtcbn1cblxuLyogTGFyZ28gSGVsdmV0aWNhIE92ZXJyaWRlcyAqL1xuLnRvcC10YWcsIFxuLm5hdiwgXG4udG9wLWRhdGUsIFxuLmxvYWQtbW9yZSwgXG4ucG9zdC1zb2NpYWw+c3Bhbixcbi5yc3Mtc3Vic2NyaWJlLWxpbmssXG4udGFncyxcbi5yZWxhdGVkLWl0ZW1zIHAsXG4uc3Vic2NyaWJlLFxuLndpZGdldC5sYXJnby1zZXJpZXMtcG9zdHMgbGkgYSxcbnVsLnN0YWZmLXJvc3RlciAuc3RhZmYtbmFtZSxcbi5hcmNoaXZlLWJhY2tncm91bmQgLnJlbGF0ZWQtdG9waWNzLFxuLmxhYmVscyxcbi5uYXZiYXIsXG4ucGFnZXIsXG4ucG9zdC1wYWdpbmF0aW9uIGEsXG4ucG9zdC1wYWdpbmF0aW9uIHNwYW4sXG4vKiBBTkFMWVRJQyBCUklER0UgKi9cbiNzaWRlYmFyIC53aWRnZXRfYW5hbHl0aWMtYnJpZGdlLXBvcHVsYXItcG9zdHMgb2wgbGk6OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn0iLCIud2lkZ2V0dGl0bGUsXG4uc3RvcmllcyBoMy53aWRnZXR0aXRsZSB7XG4gIC5zZWN0aW9uLXRpdGxlO1xuICBhIHtcbiAgICBjb2xvcjogQGJsdWU7XG4gIH1cbn1cblxuLndpZGdldCB7XG4gIHBhZGRpbmc6IDA7XG4gIGg1IHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG4gIC8vIGRlZmF1bHQgYWRkcyAuNjZlbSBib3R0b20gcGFkZGluZ1xuICAvLyBuZWVkIHRvIHJlcGxhY2UgdGhpcyB3aXRoIGEgYm90dG9tIG1hcmdpbiBkdWUgdG8gdGhlIGdyYXkgYm9yZGVyIGFyb3VuZCBpbWFnZXNcbiAgaW1nLmF0dGFjaG1lbnQtbGFyZ2UsXG4gIGltZy5hdHRhY2htZW50LW1lZGl1bSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42NmVtO1xuICB9XG59XG5cbiNzaWRlYmFyIHtcbiAgLndpZGdldCB7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG4gIC53aWRnZXR0aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4OyAgXG4gIH1cbn1cbi5hdXRob3ItYm94IHVsIGxpIHtcbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJsdWU7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBibHVlLDEwJSk7XG4gICAgfSBcbiAgfVxufVxuLmFydGljbGUtYm90dG9tIC5hdXRob3ItYm94IHtcbiAgLndpZGdldHRpdGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBMYXJnbyB0YXggbGlzdCB3aWRnZXRcbi53aWRnZXQtYXJlYSAubGFyZ28tdGF4b25vbXktbGlzdCBoNSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubGFyZ28tdGF4b25vbXktbGlzdCAge1xuICBhIHtcbiAgICBjb2xvcjogQGdyYXlEYXJrO1xuICAgIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBibHVlO1xuICAgIH1cbiAgfVxuICBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4vLyBTYXZlZCBMaW5rcyB3aWRnZXRcbi5zYXZlZC1saW5rcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBncmF5TGlnaHQ7XG4gIHBhZGRpbmc6IDI0cHg7XG59XG4uc291cmNlIHtcbiAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLy8gT3ZlcnJpZGUgc29tZSBzdHlsZXMgc2V0IGluIHRoZSBTYXZlZCBMaW5rcyBXaWRnZXQgQ1NTLCB3aGljaCBpcyBlbnF1ZXVlZCBhZnRlciB0aGlzIHRoZW1lXG4ud2lkZ2V0LnNhdmVkLWxpbmtzIC5wb3N0LWxlYWQge1xuICBwIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbiAgaDUge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgcC5kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICB9XG59XG5cbi8vIERvdWJsZWNsaWNrIGFkc1xuLmRmdy11bml0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJBZHZlcnRpc2VtZW50XCI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBAc21hbGx0ZXh0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiBAZ3JheTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI2hlYWRlci1hZC16b25lLWNvbnRhaW5lcixcbiNiZWZvcmUtZm9vdGVyLFxuLmFkLXpvbmUuY2VudGVyIHtcbiAgZGl2IGRpdiB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgLmRmdy11bml0OmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxufVxuI2hlYWRlci1hZC16b25lLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogNXB4IDA7XG59XG4uYmVmb3JlLWZvb3Rlci13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbiNiZWZvcmUtZm9vdGVyIHtcbiAgcGFkZGluZzogNHB4IDAgOHB4O1xufVxuXG4jc2lkZWJhciAud2lkZ2V0X2FuYWx5dGljLWJyaWRnZS1wb3B1bGFyLXBvc3RzIGxpK2xpIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi8vIEZvb3RlciBcbiNzaXRlLWZvb3RlciBsaSB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgYSB7XG4gICAgY29sb3I6IEB3aGl0ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAcmVkO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG4gIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI3NpdGUtZm9vdGVyIGxpIGxpOmxhc3QtY2hpbGQsXG4gICNzaXRlLWZvb3RlciAud2lkZ2V0LFxuICAjc2l0ZS1mb290ZXIgZGl2W2NsYXNzXj1cInNwYW5cIl0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiNib2lsZXJwbGF0ZSBwIHtcbiAgZm9udC1mYW1pbHk6IEBzbWFsbHRleHQ7XG59XG4jc2l0ZS1mb290ZXIgLnNwYW41IHVsIGxpOmxhc3QtY2hpbGQgYSB7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLmN0YS1idXR0b247XG59XG4vKiBDaGFuZ2VkIGJ1dHRvbiBwb3NpdGlvbiBwZXIgVG9tJ3MgcmVxdWVzdCBORiAqL1xuaGVhZGVyIC5uZXdzbGV0dGVyLXNpZ251cCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNzBweDtcbiAgICByaWdodDogNjBweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG59XG4ubmV3c2xldHRlci1zaWdudXAge1xuICB6LWluZGV4OiA5OTk7XG4gIGEge1xuICAgIGNvbG9yOiBAYmxhY2s7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGJsYWNrLCAzMCUpO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQHJlZCwgMTAlKTtcbiAgICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc3BhbiB7XG4gICAgLmN0YS1idXR0b247XG4gICAgcGFkZGluZzogNXB4IDhweCA4cHggOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIH1cbn1cbi5hcnRpY2xlLWJvdHRvbSAubmV3c2xldHRlci1zaWdudXAge1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbiIsIi8qIEJhc2Ugc3R5bGVzIGZvciBzZWN0aW9uIGFuZCB3aWRnZXQgdGl0bGVzICovXG4uc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IEBibHVlO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBAYmx1ZTtcbn1cblxuLnRleHQtYWxpZ24tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY3RhLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgLy8gRm9yIGxpbmtzXG4gIGEsIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEByZWQsMTAlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxufVxuIiwiLmdsb2JhbC1uYXYge1xuICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2hlYWRlci1zZWFyY2gge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5kb25hdGUtYnRuIHtcbiAgLmN0YS1idXR0b25cbn1cblxuI3NpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDEwcHggMDtcbiAgLmhlYWRlcl9pbWcge1xuICAgIG1heC13aWR0aDogMjA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbiNtYWluLW5hdi5uYXZiYXIge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2FhYTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNhYWE7XG4gIGxpIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgJiA+IGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDUycHg7XG4gICAgfVxuICB9XG59XG4jbWFpbi1uYXYubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpID4gYSB7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xufVxuXG4jdG9waWNzLWJhciBhIHtcbiAgY29sb3I6IEBibHVlO1xufVxuIiwiLyoqXG4gKiBEZWZpbmUgdGhlIHZhcmlvdXMgcGFkZGluZ3MgYW5kIGhlaWdodHMgYXJvdW5kIHRoZSBmbGFnXG4gKi9cbkBmbGFnQmFzZTogMWVtO1xuQGZsYWdMaW5lSGVpZ2h0OiAxLjM7IC8vIFRoaXMgaXMgdGhlIGxhcmdvIGhlYWRpbmcgZGVmYXVsdC5cbkBmbGFnUGFkZGluZzogMTAvMTYqQGZsYWdCYXNlO1xuQGZsYWdIZWlnaHQ6IChAZmxhZ0xpbmVIZWlnaHQgKiBAZmxhZ0Jhc2UpICsgQGZsYWdQYWRkaW5nICsgQGZsYWdQYWRkaW5nO1xuXG4vKipcbiAqIEluY3JlYXNlIHRoZSBoZWlnaHQgb2YgdGhlIHBhZGRpbmcgb24gcG9zdCBoZWFkbGluZXNcbiAqL1xuYm9keS5ub3JtYWwuc2luZ2xlLXBvc3Qge1xuICAucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzIGgxLmVudHJ5LXRpdGxlLFxuICAucG9zdC10eXBlLXNwb25zb3JlZCBoMS5lbnRyeS10aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDUwcHggKyAxMnB4OyAvLyBlc3RpbWF0ZWQgZmxhZyBoZWlnaHQgcGx1cyB0aGUgbWFyZ2luLWJvdHRvbSBmcm9tIHRoaXMgaDEuZW50cnktdGl0bGUsIGZvciB1bmlmb3JtIHNwYWNpbmcgaW4gdGhlIGhlYWRlci5cbiAgICBjbGVhcjogYm90aDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjI1ZW07XG4gICAgfVxuICB9XG59XG5cblxuLyoqXG4gKiBBIG1peGluIHRvIHNldCB1cCB0aGUgYmFzaWMgOjpiZWZvcmUgYW5kIDo6YWZ0ZXIgYW5kIGJhY2tncm91bmQgYW5kIHBhZGRpbmcgZm9yIHRoZSBQcmVzcyBSZWxlYXNlcyBhbmQgU3BvbnNvcmVkIHBvc3QgdHlwZXMuXG4gKlxuICogRG9lc24ndCBzZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb3IgdGhlIGJvcmRlciBjb2xvcnMuIERvZXMgc2V0IHRoZWlyIHdpZHRocyBhbmQgcGFkZGluZy5cbiAqL1xuLmZsYWctbWl4aW57XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAwLjYyNWVtOyAvLyAxMC8xNlxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBAc21hbGx0ZXh0O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xICogKCAwLjUgKiBAZmxhZ0hlaWdodCApO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci10b3Atd2lkdGg6ICggMC41ICogQGZsYWdIZWlnaHQgKTtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZCA7XG4gICAgYm9yZGVyLXJpZ2h0OiAoMC41ICogQGZsYWdIZWlnaHQpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6ICggMC41ICogQGZsYWdIZWlnaHQgKTtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vKlxuICogR2VuZXJhbCBwb3N0IHN0eWxlc1xuICovXG4ucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzLFxuLnBvc3QtdHlwZS1zcG9uc29yZWQge1xuICAudG9wLXRhZyB7XG4gICAgc3BhbiB7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAuZmxhZy1taXhpbjtcbiAgICAgIC8vXG4gICAgICAvLyBDaGFuZ2luZyB0aGlzIGZvbnQgc2l6ZSB3aWxsIGNoYW5nZSB0aGUgZmxhZyBzaXplIHByb3BvcnRpb25hbGx5IVxuICAgICAgLy9cbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLypcbiAqIFNwZWNpZmljIGNvbG9yIHN0eWxlc1xuICovXG4ucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzIC50b3AtdGFnIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93O1xuICAmOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHllbGxvdztcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHllbGxvdztcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAeWVsbG93O1xuICB9XG59XG4ucG9zdC10eXBlLXNwb25zb3JlZCAudG9wLXRhZyBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Ymx1ZTtcbiAgJjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQGxpZ2h0Ymx1ZTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQGxpZ2h0Ymx1ZTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAbGlnaHRibHVlO1xuICB9XG59XG5cbi8vIGZpeCBmb3IgaG9tZXBhZ2UgYmVsb3ctdG9wc3Rvcnlcbi50b3BzdG9yeS1iZWxvdyAuaGFzLXRodW1ibmFpbC5wb3N0LXR5cGUtcHJlc3MtcmVsZWFzZXMsXG4udG9wc3RvcnktYmVsb3cgLmhhcy10aHVtYm5haWwucG9zdC10eXBlLXNwb25zb3JlZCB7XG4gIC50b3AtdGFnIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAvLyBpbiBob21lcGFnZXMvYXNzZXRzL2xlc3MvaG9tZXBhZ2UubGVzcyB0aGVyZSBpcyBhIGJveC1zaGFkb3cgb24gdGhpcyBlbGVtZW50LCBidXQgaXQgaXMgbm90IGFwcGxpZWQgaGVyZSBiZWNhdXNlIHRoZSBzaGFkb3cgZHJhd3MgYSBib3ggYXJvdW5kIHRoZSB0cmFuc3BhcmVudCBlbGVtZW50cyBhbmQgaXQgbG9va3Mgd2VpcmQuXG4gICAgICB9XG4gICAgICBjb2xvcjogQHdoaXRlO1xuICAgIH1cbiAgfVxufVxuLy8gQW5kIGZvciBhcmNoaXZlIHBhZ2VzXG4ucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzLFxuLnBvc3QtdHlwZS1zcG9uc29yZWQge1xuICAuZW50cnktY29udGVudCBoNS50b3AtdGFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vbm90IHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVGhlIGhpZXJhcmNoaWNhbCBoZWFkZXIgZG9lc24ndCBkaXNwbGF5IGEgdG9wIHRlcm0gKHVzZWQgaW4gY2F0ZWdvcmllcyksIHNvIHdlIGZha2UgaXQgd2l0aCBhIDo6YmVmb3JlXG4gKi9cbi5wcmltYXJ5LWZlYXR1cmVkLXBvc3QsXG4uc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3Qge1xuICAucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzLFxuICAucG9zdC10eXBlLXNwb25zb3JlZCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogNDBweDsgLy8gaW5zdXJhbmNlIGFnYWluc3QgZm9udC1mYW1pbHkgc2hlbmFuaWdhbnNcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy9ub3QgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIGNvbHVtbi5cbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LWZhbWlseTogQHNtYWxsdGV4dDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBib3JkZXItdG9wOiAyMHB4IHNvbGlkIEB5ZWxsb3c7XG4gICAgICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkIEB5ZWxsb3c7XG4gICAgICBib3JkZXItcmlnaHQ6IDIwcHggc29saWQgd2hpdGU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuLy8gRml4IG1hcmdpbnMgb24gdGhlIDo6YmVmb3JlIGlmZiB0aGVyZSBpcyBhIGZlYXR1cmVkIG1lZGlhLCB1c2luZyB0aGUgc3BhbjggY2xhcyBzdGhhdCBpcyBvbmx5IHVzZWQgaWYgdGhlcmUgaXMgYSBmZWF0dXJlZCBtZWRpYS5cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY5cHggKSB7XG4gIC5zZWNvbmRhcnktZmVhdHVyZWQtcG9zdCAuc3Bhbjgge1xuICAgIC5wb3N0LXR5cGUtcHJlc3MtcmVsZWFzZXMsXG4gICAgLnBvc3QtdHlwZS1zcG9uc29yZWQge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIuMTI3NjU5NTclO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLnByaW1hcnktZmVhdHVyZWQtcG9zdCxcbi5zZWNvbmRhcnktZmVhdHVyZWQtcG9zdCB7XG4gIC5wb3N0LXR5cGUtc3BvbnNvcmVkIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJTUE9OU09SRURcIjtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IEBsaWdodGJsdWU7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAbGlnaHRibHVlO1xuICAgIH1cbiAgfVxufVxuLnByaW1hcnktZmVhdHVyZWQtcG9zdCxcbi5zZWNvbmRhcnktZmVhdHVyZWQtcG9zdCB7XG4gIC5wb3N0LXR5cGUtcHJlc3MtcmVsZWFzZXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlBSRVNTIFJFTEVBU0VcIjtcbiAgICB9XG4gIH1cbn1cblxuaDUudG9wLXRhZyB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi8qKlxuICogU3R5bGVzIGZvciB0aGUgc3BvbnNvcmVkIGNvbnRlbnQgZGl2IHRoYXQgY2FuIGJlIHBhc3RlZCBpbnRvIHRoZSB0b3Agb2Ygc3Rvcmllcy5cbiAqXG4gKiAuc3BvbmNvbi1zcG9uc29yLWJlZm9yZS13cmFwcGVyIGlzIGZvciBsZWdhY3kgSFRNTC5cbiAqL1xuLnNwb25jb24tc3BvbnNvci1iZWZvcmUtd3JhcHBlcixcbi5zcG9uc29yZWQtYnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBwYWRkaW5nOiAwLjVlbSAwLjc1ZW0gMC43NWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAuY2xlYXJmaXg7XG4gIGgzLFxuICBwIHtcbiAgICBmb250LWZhbWlseTogQHNhbnM7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbiAgcCB7XG4gICAgbWFyZ2luLXRvcDogMS41ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbiAgLmFsaWduLWxlZnQge1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuc3BvbmNvbi1zcG9uc29yLWJlZm9yZS1zcG9uc29yZWQtYnkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogNnB4IDIwcHggMTJweCAwO1xuICB9XG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi8qKlxuICogUHJlc3MgcmVsZWFzZSBwb3N0cyBtZW51LCBpbnNlcnRlZCBpbnRvIHBvc3RzXG4gKiBcbiAqIEBzZWUgcm5zX3ByZXNzX3JlbGVhc2VfbWVudVxuICovXG4jcHJlc3MtcmVsZWFzZS1tZW51IHtcbiAgdWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICBmb250LWZhbWlseTogQHNhbnM7XG4gIH1cbn1cbi8vIFNvbWUgc2hpbXMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJveCBpcyAxMDAlIHRoZSB3aWR0aCBvZiB0aGUgc2lkZWJhciwgZXZlbiB0aG91Z2ggbm9uZSBvZiBpdHMgY29uc3RpdHVlbnQgZWxlbWVudHMgYXJlIHdpZGUgZW5vdWdoIHRvIGZvcmNlIHRoZWlyIHJlc3BlY3RpdmUgYmxvY2sgZWxlbWVudHMgb3V0IHRvIHRoZSB3aWR0aCBvZiB0aGUgc2lkZWJhci5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDc5cHgpIHtcbiAgI3NpZGViYXIgI3ByZXNzLXJlbGVhc2UtbWVudS53aWRnZXQge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTA4MHB4KSB7XG4gICNzaWRlYmFyICNwcmVzcy1yZWxlYXNlLW1lbnUud2lkZ2V0IHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8qKlxuICogQWRkIGEgbWFyZ2luLWJvdHRvbSB0byB0aGUgcHJlc3MgcmVsZWFzZSBmZWF0dXJlZCBpbWFnZSBpbiB0aGUgbWFpbiBib2R5IG9mIHRoZSBwb3N0XG4gKi9cbkBtZWRpYSAoIG1heC13aWR0aDogNzY4cHggKSB7XG4gICNmZWF0LWltZy1wcmVzcy1yZWxlYXNlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGJhc2VMaW5lSGVpZ2h0ICogQGJhc2VGb250U2l6ZTsgLy8gbWFrZSB0aGUgcGFkZGluZyBlcXVhbCB0byBvbmUgbGluZSBvZiB0ZXh0XG4gIH1cbn1cbiIsIi5zaW5nbGUtcm91bmR1cCB7XG4gIGFydGljbGUgaGVhZGVyLFxuICAuYXJ0aWNsZS1ib3R0b20sXG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDE3LjAyMTI3NjU5NCU7XG4gIH1cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIGgzIHtcbiAgICAuc2VjdGlvbi10aXRsZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICAuaGVhZGxpbmUtZXhjZXJwdCB7XG4gICAgaDQudG9wLXRhZyB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LWZhbWlseTogQHNhbnM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICBjb2xvcjogI2FhYTtcbiAgICB9XG4gICAgaDMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgfVxuICAgIC5hcnRpY2xlLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBAdGFibGV0RG93biB7XG4gICAgLmFydGljbGUtYm90dG9tLFxuICAgIC5lbnRyeS1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDAgQGZsdWlkR3JpZENvbHVtbldpZHRoO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgQG1vYmlsZSB7XG4gICAgLmFydGljbGUtYm90dG9tLFxuICAgIC5lbnRyeS1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG4iLCJib2R5Lm5vcm1hbC5wYWdlIC5lbnRyeS1jb250ZW50IHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAgMTAlO1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cbn1cblxuLy8gTWFyZ2luIGJldHdlZW4gdGhlIGNvbHVtbiBoZWFkZXIgb24gdHdvLWNvbHVtbiBwb3N0cyBhbmQgdGhlIHBvc3QgaGVhZGxpbmVcbi5jb2x1bW5zLWhlYWRlciArIGhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDJlbTtcbn1cblxuLy8gcmVtb3ZlIGdyYXkgYm9yZGVyIGFyb3VuZCBoZWFkZXIgaW1hZ2VzXG5ib2R5LnRheC1jb2x1bW5zICNtYWluLFxuYm9keS5zaW5nbGUtZm9ybWF0LXN0YW5kYXJkICNtYWluIHtcbiAgLmhlcm8uaXMtaW1hZ2UgaW1nIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbiIsIi5lbnRyeS1jb250ZW50IC50YXgtdGVybS1saXN0aW5nIHtcbiAgaW1nLnRodW1iIHtcbiAgICBtYXgtd2lkdGg6IDgwcHg7XG4gIH1cbiAgaDMge1xuXHRmb250LXNpemU6IDMycHg7XG5cdG1hcmdpbi1ib3R0b206IDhweDtcblx0Ji53aWRnZXR0aXRsZSB7XG5cdCAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7XG5cdCAgYSB7XG5cdCAgICBjb2xvcjogIzMzMztcblx0ICB9XG5cdH1cbiAgICAmLmVudHJ5LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gIGg1LmJ5bGluZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAmLnJlY2VudCB7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGFydGljbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuICAuaXRlbSB7XG4gICAgbWFyZ2luLXRvcDogMzZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHVzZSBDVEEgYnV0dG9uIHN0eWxlcyBmb3IgZ3Jhdml0eSBmb3JtcyBidXR0b25zXG4uZ2Zvcm1fYnV0dG9uIHtcbiAgcGFkZGluZzogMTJweDtcbiAgLmN0YS1idXR0b247XG59XG5cbi8vIGRhdGVwaWNrZXIgZml4ZXMsIHRoZXNlIG1heSBuZWVkIHRvIGJlIHNjb3BlZCBtb3JlIG5hcnJvd2x5Li4uXG4udWktZGF0ZXBpY2tlciB7XG4gIHdpZHRoOiAyNjBweDtcbiAgdGQgYSB7XG4gICAgd2lkdGg6IDM2cHg7XG4gIH1cbn1cbi51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIHBhZGRpbmc6IDEwcHggMjBweCAyMHB4O1xufVxuXG4uZ2Zvcm1fd3JhcHBlciB7XG4gIFxuICAvLyBjaGVja2JveGVzIGFuZCBsYWJlbHNcbiAgLmdmaWVsZF9jaGVja2JveCBsaSB7XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIGZpeCB3ZWlyZCBzcGFjaW5nIG9mIGZpZWxkIGxhYmVscyBmb3IgYWRkcmVzc2VzXG4gIGlucHV0W3R5cGU9dGV4dF0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IC5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyIGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG4gIFxuICAvLyB0cnkgdG8gc2V0IHRoZSBoZWlnaHQgb2YgZHJvcGRvd24gbWVudXMgdG8gbWF0Y2ggdGV4dCBmaWVsZHNcbiAgJi5nZl9icm93c2VyX2Nocm9tZSAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9yaWdodCBzZWxlY3QsXG4gICYuZ2ZfYnJvd3Nlcl9jaHJvbWUgLmdpbnB1dF9jb21wbGV4IHNlbGVjdCB7XG4gICAgaGVpZ2h0OiA0MXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICBcbn1cblxuLy8gbWFrZSB0aGUgcmFkaW8gYnV0dG9ucyBpbnRvIHJlYWwgYnV0dG9ucyBvbiBkb25hdGlvbiBmb3JtIFxuI2dmb3JtX3dyYXBwZXJfMTcge1xuICB1bC5nZmllbGRfcmFkaW8gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgaW5wdXQge1xuXHQgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGxhYmVsIHtcblx0ICBwYWRkaW5nOiAxMnB4IDI0cHg7XG5cdCAgLmN0YS1idXR0b247XG5cdCAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheTtcblx0ICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBzdHlsZXMgdHdlYWtzIGZvciB0aGUgcHJlc3MgcmVsZWFzZSBzdWJtaXNzaW9uIGZvcm1cbiNnZm9ybV93cmFwcGVyXzI0IHtcbiAgLmdmaWVsZF9kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgfVxuICAuZ2Zvcm1fbmV4dF9idXR0b24sXG4gIC5nZm9ybV9wcmV2aW91c19idXR0b24ge1xuICAgIC5jdGEtYnV0dG9uO1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgfVxuICAuZ2Zvcm1fcHJldmlvdXNfYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cbn0iLCIvKipcbiAqIFN0eWxlcyBmb3Igc2VhcmNoIGZvcm1zIGFuZCBzZWFyY2ggcmVzdWx0c1xuICpcbiAqIFN0eWxlcyBmb3IgdGhlIGdsb2JhbCBuYXYgc2VhcmNoIGFyZSBpbiBsZXNzL2luYy9oZWFkZXIubGVzc1xuICovXG5cbi8vIFNlYXJjaCBSZXN1bHRzXG4uYXJjaGl2ZS5zZWFyY2gtcmVzdWx0cyB7XG4gIC5pbnB1dC1hcHBlbmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuZm9ybS1zZWFyY2gge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuICAuc2VhcmNoLXRlcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBncmF5TGlnaHRlcjtcbiAgICBwYWRkaW5nOiAxcHggNXB4O1xuICB9XG4gIGgzIC5yc3MtbGluayB7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGdyYXk7XG4gIH1cblxuICAuc3RvcmllcyB7XG4gICAgYXJ0aWNsZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICB9XG4gIH1cbiAgLy8gTm8gc3BhY2luZyBhZnRlciBwYXJhZ3JhcGgsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vSU5OL0xhcmdvL3B1bGwvMTE3N1xuICAuZW50cnktY29udGVudCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5kYXRlLWxpbmsgYSxcbiAgLmRhdGUtbGluayB7XG4gICAgY29sb3I6IEBncmF5O1xuICB9XG59XG4uc2VhcmNoLXJlc3VsdHMgI2NvbnRlbnQgLmZvcm0tc2VhcmNoIHtcbn1cblxuLyogR29vZ2xlIENTRSAqL1xuLmdjc19jb250YWluZXIge1xuICBtYXJnaW46IDIwcHggMDtcblxuICB0YWJsZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgdGFibGUsXG4gIHRib2R5LFxuICB0cixcbiAgdGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gIC5nc2Mtc2VhcmNoLWJveCB7XG4gICAgbWFyZ2luOiAxOHB4IDA7XG4gICAgLmdzc3RfYSAuZ3NjYl9hIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogM3B4O1xuICAgIH1cbiAgICB0ZC5nc2liX2Ege1xuICAgICAgcGFkZGluZzogMCA2cHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ3NjLWNvbnRyb2wtY3NlIHtcbiAgICAuZ3MtcmVzdWx0IHtcbiAgICAgIC5ncy10aXRsZSxcbiAgICAgIC5ncy10aXRsZSAqIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSAnZG93bmxvYWQnIHBvc3QgdHlwZSByZWdpc3RlcmVkIGJ5IEVhc3kgRGlnaXRhbCBEb3dubG9hZHNcbiAqL1xuXG4vKipcbiAqIFN0eWxlcyBmb3Igc2luZ2xlLWRvd25sb2FkLnBocCBhbmQgcGFydGlhbHMvY29udGVudC1kb3dubG9hZC5waHBcbiAqL1xuLnR5cGUtZG93bmxvYWQge1xuICBoMS5lbnRyeS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG5cbiAgLmRvd25sb2FkLWNvbnRlbnRzLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gIC5kb3dubG9hZC1jb250ZW50cyB7XG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cbiAgICAuc2l6ZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogQHNhbnM7XG4gICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBvdXRsaW5lOiAxcHggc29saWQgQHJlZDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgQHRhYmxldFVwICB7XG4gICAgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMCAxNy4wMjEyNzY1OTQlO1xuICAgIH1cblxuICAgID4gaGVhZGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgbWFyZ2luOiAyNHB4IDE3LjAyMTMlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4uZWRkLWFkZC10by1jYXJ0LmJ1dHRvbi5ibHVlIHtcbiAgLmN0YS1idXR0b247XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIGJhc2ljcywgaW1wb3J0ZWQgZnJvbSBMYXJnb1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgXCJ2YXJpYWJsZXMubGVzc1wiO1xuQGltcG9ydCBcIm1peGlucy5sZXNzXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSTlMgY3VzdG9tIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBuYXZiYXIgYW5kIGZvb3RlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgXCJ2YXJzLmxlc3NcIjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExheW91dCBhbmQgcGFnZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0IFwibmF2YmFyLWNvbW1vbi5sZXNzXCI7XG5AaW1wb3J0IFwibmF2YmFyLXN0aWNreS5sZXNzXCI7XG5AaW1wb3J0IFwiZm9vdGVyLmxlc3NcIjtcbkBpbXBvcnQgXCJzaW5nbGUubGVzc1wiO1xuXG5AaW1wb3J0IFwiX3R5cG9ncmFwaHkubGVzc1wiO1xuQGltcG9ydCBcIl93aWRnZXRzLmxlc3NcIjtcbkBpbXBvcnQgXCJfaGVhZGVyLmxlc3NcIjtcbkBpbXBvcnQgXCJfbWl4aW5zLmxlc3NcIjtcblxuQGltcG9ydCBcInNwb25zb3JlZC5sZXNzXCI7XG5AaW1wb3J0IFwic2xpbmdzaG90cy5sZXNzXCI7XG5AaW1wb3J0IFwiY29sdW1ucy5sZXNzXCI7XG5AaW1wb3J0IFwidGF4Lmxlc3NcIjtcbkBpbXBvcnQgXCJmb3Jtcy5sZXNzXCI7XG5AaW1wb3J0IFwic2VhcmNoLmxlc3NcIjtcbkBpbXBvcnQgXCJkb3dubG9hZHMubGVzc1wiO1xuXG5cbi8qIEdlbmVyYWwgU3R5bGVzICovXG5ib2R5IHtcbiAgcCB7XG4gICAgY29sb3I6ICMxNTE3MTk7XG4gIH1cbn1cblxuLnRleHR3aWRnZXQge1xuICBmb250LWZhbWlseTogQGJvZHk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmJ0biB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICYuYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBibHVlO1xuICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBibHVlLCA1JSk7XG4gICAgfVxuICB9XG59XG5cbiNtYWluIGltZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG59XG5cbiNuYXYtYmVsb3csXG4ubW9yZWxpbmssXG4jbmF2LWJlbG93LnBhZ2VyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMjRweCAwO1xuICBmb250LWZhbWlseTogQHNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGEge1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJsdWU7XG4gICAgLmJvcmRlci1yYWRpdXMoNHB4KTtcbiAgICAmOmhvdmVyIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuXHQgIGNvbG9yOiAjZmZmO1xuXHQgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiNuYXYtYmVsb3cucGFnZXIgYSxcbiNuYXYtYmVsb3cgLm1vcmVsaW5rIGEge1xuICBwYWRkaW5nOiAyNHB4IDQ4cHg7XG59XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2xlYW4gaGVhZGVyLnRleHQtYWxpZ24tY2VudGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbmJvZHkubm9ybWFsLnBhZ2UtdGVtcGxhdGUtcGFnZS1jbGVhbiBhcnRpY2xlLnBhZ2UgPiBoZWFkZXIuZW50cnktaGVhZGVyIHtcbiAgbWFyZ2luOiAyNHB4IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09IE5hdCdzIEVkaXRzID09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogZml4ZXMgZmlndXJlIHRhZyB0byBub3QgbWVzcyB3aXRoIGJsb2cgaGVhZGluZ3MgKi9cblxuLmhlcm8gZmlndXJlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDAgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LW1hcmdpbi1hZnRlcjogMCAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiAwICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1tYXJnaW4tZW5kOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIGZpeGVzIHNtYWxsIGdhbGxlcnkgcHJldmlvdXMgLyBuZXh0IGFycm93cyAqL1xuXG4ubmF2aXMtc2xpZGVzaG93IGEuc2xpY2stcHJldmlvdXM6YmVmb3JlIHtcbiAgICBsZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiA1MHB4IDMwcHggNTBweCAwICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZpcy1zbGlkZXNob3cgYS5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogNTBweCAwIDUwcHggMzBweCAhaW1wb3J0YW50O1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09IEVuZCBOYXQncyBFZGl0cyA9PT09PT09PT09PT09PT09PT09ICovXG4iXX0= */
