/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

#social {
  width: 960px;
  margin: auto;
  margin-top: 16px;
}

@media screen and (max-width: 59.99em) {
  #social {
    display: none;
  }
}

#social .addthis_toolbox {
  margin-left: 300px;
}

#social .addthis_button_twitter_follow_native,
#social .addthis_button_google_plusone {
  margin-left: 8px !important;
}

#social .atc_s {
  margin-left: 12px !important;
}

/********************************************************
* Header
********************************************************/
#header {
  padding-top: 16px;
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #header {
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (min-width: 60em) {
  #header {
    background-image: none;
    background-size: 0;
    background-image: none !important;
  }
}

#banner {
  height: 86px;
}

@media screen and (max-width: 440px) {
  #banner {
    height: 67px;
  }
}

@media screen and (max-width: 320px) {
  #banner {
    height: 38px;
  }
}

#banner h1 {
  padding: 0;
  margin: 0;
  position: relative;
  top: -8px;
}

@media screen and (min-width: 60em) {
  #banner h1 {
    z-index: -1;
  }
}

#banner picture {
  display: block;
  height: 96px;
}

@media screen and (max-width: 440px) {
  #banner picture {
    height: 77px;
  }
}

@media screen and (max-width: 320px) {
  #banner picture {
    height: 48px;
  }
}

#banner img.logo {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  position: absolute;
  height: auto;
  cursor: pointer;
  width: calc(100% - 110px);
  max-width: 414px;
}

@media screen and (max-width: 440px) {
  #banner img.logo {
    max-width: 331px;
  }
}

@media screen and (max-width: 320px) {
  #banner img.logo {
    max-width: 207px;
  }
}

#banner .appstore-logo, #banner .awards {
  position: absolute;
  top: 2px;
}

@media screen and (max-width: 59.99em) {
  #banner .appstore-logo, #banner .awards {
    display: none;
  }
}

#banner .appstore-logo {
  width: 150px;
  right: 0;
}

#banner .awards {
  width: 67px;
  right: 153px;
}

@keyframes slideRight {
  0% {
    transform: translateX(-100%);
    display: block;
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes slideLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.slicknav_menu {
  display: none;
  position: relative;
  background: transparent !important;
  padding: 0 !important;
}

@media (pointer: coarse) and (hover: none) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

@media screen and (max-width: 48.615em) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

.slicknav_menu .slicknav_btn {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  padding: 0.5em;
  margin: 0 0 0 10px;
  font-size: 1rem !important;
}

.slicknav_menu .slicknav_btn .slicknav_menutxt {
  display: none;
}

.slicknav_menu .slicknav_btn .slicknav_icon {
  margin: 0;
}

.slicknav_menu .slicknav_nav {
  display: none;
  font-size: 1em !important;
  width: auto;
  float: left;
  position: absolute;
  z-index: 999999;
  animation-timing-function: ease-in-out;
  animation-duration: 300ms;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}

.slicknav_menu .slicknav_nav.slicknav_initialising {
  display: none !important;
}

.slicknav_menu .slicknav_nav.slicknav_hiding {
  display: block;
  animation-name: slideLeft;
}

.slicknav_menu .slicknav_nav.slicknav_showing {
  animation-name: slideRight;
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_shown {
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_hidden {
  display: none !important;
}

.slicknav_menu .slicknav_nav ul {
  overflow: hidden;
}

.slicknav_menu .slicknav_nav ul.slicknav_hiding, .slicknav_menu .slicknav_nav ul.slicknav_hidden {
  max-height: 0;
  transition: max-height 300ms cubic-bezier(0, 1, 0, 1);
}

.slicknav_menu .slicknav_nav ul.slicknav_showing, .slicknav_menu .slicknav_nav ul.slicknav_shown {
  max-height: 9999px;
  transition: max-height 300ms cubic-bezier(1, 0, 1, 0);
}

.slicknav_menu .slicknav_nav li a {
  position: relative;
  z-index: 1;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li a:hover {
  border-radius: inherit;
  background: inherit;
  color: inherit;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li > a {
  padding-top: 10px;
  padding-bottom: 10px;
}

.slicknav_menu .slicknav_nav > ul {
  z-index: 1;
}

.slicknav_menu .slicknav_nav > li > a {
  padding-right: 40px;
}

.slicknav_menu .slicknav_nav:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  background-color: #222;
  opacity: 0.95;
  border-radius: 0 10px 0 0;
}

.slicknav_menu .slicknav_nav a.basket-cta span {
  display: block;
}

.slicknav_menu .slicknav_nav a.basket-cta:after {
  display: none;
}

.nav {
  margin-right: 2px;
  /* fix for megamenu overspilling 2px */
}

body.fullscreen .nav {
  display: none !important;
}

@media (pointer: coarse) and (hover: none) {
  .nav {
    margin-right: 0;
  }
}

@media screen and (max-width: 48.615em) {
  .nav {
    margin-right: 0;
  }
}

.nav li .icon {
  position: absolute;
  right: 0;
  z-index: 2;
}

.nav li.android,
.nav li.apple {
  position: relative;
}

.nav li.android .icon {
  background: url("/images/graphics/android_logo_icon.png") top right no-repeat !important;
  width: 34px;
  height: 30px;
}

.nav li.apple .icon {
  background: url("/images/graphics/apple_logo_icon.png") top right no-repeat !important;
  width: 25px;
  height: 30px;
  margin-right: 3px;
}

.nav > .login-cta-container {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > .login-cta-container {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > .login-cta-container {
    display: block;
  }
}

body.accounts-disabled .nav > .login-cta-container {
  display: none !important;
}

.nav > .login-cta-container a {
  position: relative;
  display: block;
}

.nav > .login-cta-container a span {
  display: none;
}

.nav > .login-cta-container a:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  content: '';
  position: absolute;
  right: 10px;
  background-image: url("/images/graphics/user.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

@media screen and (min-width: 60em) {
  .nav > .login-cta-container a:after {
    right: auto;
    left: 54px;
  }
}

.nav .basket-cta-container, .nav .basket-cta {
  display: none;
}

body.signed-in .nav .basket-cta-container, .nav .basket-cta {
  display: block;
}

body.accounts-disabled .nav .basket-cta-container, .nav .basket-cta {
  display: none !important;
}

.nav a.basket-cta {
  position: relative;
  display: block;
}

.nav a.basket-cta span {
  display: none;
}

.nav a.basket-cta:after {
  content: '';
  position: absolute;
  width: 26px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: 26px 20px;
  background-position: center center;
  background-image: url("/images/graphics/shopping_cart.png");
}

.nav #menu a.basket-cta {
  padding: 20px 29px 20px 29px !important;
}

.nav #menu a.basket-cta:after {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.nav #menu a.basket-cta:hover:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav #menu li.mega-hover a.basket-cta:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav > a.basket-cta {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 23.125em) {
  .nav > a.basket-cta {
    display: none !important;
  }
}

.nav > a.basket-cta:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  right: 54px;
}

@media screen and (min-width: 60em) {
  .nav > a.basket-cta:after {
    right: auto;
    left: 108px;
  }
}

@media (pointer: coarse) and (hover: none) {
  #menu {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #menu {
    display: none;
  }
}

#menu .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #menu .menubar-icon.social {
    display: none;
  }
}

/********************************************************
* Sub Header
********************************************************/
#sub-header {
  padding: 12px;
  background-color: #660000;
  color: white;
}

/********************************************************
* Footer
********************************************************/
#footer {
  background: #2f2f2f;
  padding-top: 8px;
  padding-bottom: 8px;
  font-size: 10pt;
}

@media screen and (max-width: 59.99em) {
  #footer {
    display: none;
  }
}

#footer a {
  color: white;
  text-decoration: none;
}

#footer .links ul {
  text-align: center;
  padding-left: 0;
  margin: 4px 0;
}

#footer .links li {
  display: inline;
  padding-left: 8px;
  padding-right: 8px;
}

#footer .links li a:hover {
  text-decoration: underline;
}

#footer ul#social-footer {
  display: inline-block;
  padding: 0;
  margin-left: 50%;
  transform: translateX(-50%);
}

@media (pointer: coarse) and (hover: none) {
  #footer ul#social-footer {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #footer ul#social-footer {
    display: none;
  }
}

#footer ul#social-footer li {
  float: left;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: bold;
  border: none;
  list-style: none;
}

#footer ul#social-footer li a {
  float: left;
  display: block;
  color: #fff;
  text-shadow: 1px 1px 1px #000;
  text-decoration: none;
}

#footer ul#social-footer .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #footer ul#social-footer .menubar-icon.social {
    display: none;
  }
}

#footer ul#social-footer .facebook {
  background: url("/images/graphics/facebook-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .pinterest {
  background: url("/images/graphics/pinterest-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .threads {
  background: url("/images/graphics/threads-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .bluesky {
  background: url("/images/graphics/bluesky-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .twitter {
  background: url("/images/graphics/twitter-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .instagram {
  background: url("/images/graphics/instagram-icon.png") top right no-repeat !important;
}

#like_on_facebook {
  margin: 0;
  padding-bottom: 16px;
}

#like_on_facebook div.text {
  display: inline;
}

/********************************************************
* Footer section highlighting
********************************************************/
html.section-terms #footer li.terms a,
html.section-linking #footer li.linking a,
html.section-apps-menu #footer li.apps-menu a,
html.section-links #footer li.links a,
html.section-footpath-issues #footer li.footpath-issues a,
html.section-direction-correction #footer li.direction-correction a,
html.section-cookie-policy #footer li.cookie-policy a,
html.section-contact-us #footer li.contact-us a,
html.section-mobile-redirect #footer li.mobile-redirect a {
  color: #00d4ff;
  font-style: italic;
}

/********************************************************
* Nav section highlighting
********************************************************/
html.section-home ul.mega-menu li.nav-sec-home a,
html.section-all-walks ul.mega-menu li.nav-sec-all-walks a,
html.section-locations ul.mega-menu li.nav-sec-locations a,
html.section-walk-types ul.mega-menu li.nav-sec-walk-types a,
html.section-apps ul.mega-menu li.nav-sec-apps a,
html.section-buy ul.mega-menu li.nav-sec- a,
html.section-faq ul.mega-menu li.nav-sec-faq a,
html.section-blog ul.mega-menu li.nav-sec-blog a,
html.section-mysteries ul.mega-menu li.nav-sec-mysteries a {
  background-position: 100% -40px;
  color: #000;
  text-shadow: none;
}

/********************************************************
* Print mods
********************************************************/
@media print {
  body, #content {
    background: #fff !important;
  }
  #footer, .no-print, .nav, #social, #cookieTerms, #header, #sub-header {
    display: none !important;
  }
  a {
    text-decoration: none;
    color: black;
  }
  .print-only {
    display: block !important;
  }
  .print-only-inline {
    display: inline !important;
  }
  #banner {
    height: inherit;
    float: right;
    position: relative;
    top: -6px;
  }
  #banner img.logo {
    margin-left: 0;
    height: 50px;
  }
  #wrapper, #content {
    padding: 0;
  }
}

#login-popup {
  display: none;
}

body.js-loaded #login-popup {
  display: block;
}

#login-popup #firebaseui-auth-container.loading {
  padding: 5rem 10rem;
}

body:not(.fullscreen) #login-popup #firebaseui-auth-container.loading {
  position: relative;
}

#login-popup #firebaseui-auth-container.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/********************************************************
* Overall page
********************************************************/
body {
  margin: 0;
  padding: 0;
  font-family: Arial, Helvetica, Helv, sans-serif;
  background-attachment: fixed;
  background-color: #ccc;
}

@media screen and (min-width: 60em) {
  body {
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (max-width: 59.99em) {
  body {
    background-image: none;
    background-size: 0;
  }
}

body.fullscreen {
  max-height: 100vh;
  overflow-y: hidden;
}

#wrapper {
  margin: 0;
}

body:not(.fullscreen) #wrapper {
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #wrapper {
    padding-left: 0;
    padding-right: 0;
  }
}

#page {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page {
    margin: 0;
  }
}

#page-inner {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page, #page-inner {
    width: 100%;
  }
}

#content {
  padding: 16px;
  background: honeydew;
}

@media screen and (max-width: 59.99em) {
  #content {
    padding: 8px;
    min-height: 100vh;
  }
}

@media screen and (min-width: 60em) {
  #content {
    background: rgba(240, 255, 240, 0.8);
  }
}

a {
  color: #2f2f2f;
}

h1, h2, h3, h4, h5 {
  font-family: Georgia;
  font-weight: normal;
}

h1 {
  font-variant: small-caps;
  margin-top: 8px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h1:not(.non-responsive) {
    font-size: 1.5em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h1:not(.non-responsive) {
    font-size: 1.3em !important;
  }
}

h2 {
  font-variant: small-caps;
  border-bottom: 1px solid #aaa;
  margin-top: 24px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h2:not(.non-responsive) {
    font-size: 1.2em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h2:not(.non-responsive) {
    font-size: 1em !important;
  }
}

h3 {
  margin-top: 16px;
}

@media screen and (max-width: 46.24em) {
  h3:not(.non-responsive) {
    font-size: 1em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h3:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  p:not(.non-responsive), a:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  :not(li) > ul:not(.non-responsive), ol > li:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

h3, h4, h5 {
  text-decoration: underline;
  /* for when supported... */
  -webkit-text-decoration-color: #aaa;
  -webkit-text-decoration-skip: true;
  margin-bottom: 4px;
}

h1 + p, h2 + p, h3 + p, h4 + p, h5 + p {
  margin-top: 0;
}

@media (pointer: coarse) and (hover: none) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

@media screen and (max-width: 48.615em) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

#content ul, #content ol {
  margin-top: 8px;
  margin-bottom: 8px;
}

#content ul, #content ol {
  padding-left: 8px;
  margin-left: 8px;
}

.clear-right {
  clear: right;
}

.clear-left {
  clear: left;
}

.clear {
  clear: both;
}

.hidden {
  display: none !important;
}

/* Attach to any "slow loading" items */
body:not(.fullscreen) .loader {
  position: relative;
}

.loader::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-inverted {
  position: relative;
}

.loader-inverted::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-small {
  position: relative;
}

.loader-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

body:not(.fullscreen) .loader-inverted-small {
  position: relative;
}

.loader-inverted-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@media screen {
  .print-only {
    display: none !important;
  }
  .print-only-inline {
    display: none !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="button"]:not(.non-responsive).blue {
    background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
    border-color: #126167;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
  [data-role="button"]:not(.non-responsive).blue:hover, [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="button"]:not(.non-responsive).blue {
    background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
    border-color: #126167;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
  [data-role="button"]:not(.non-responsive).blue:hover, [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

/********************************************************
* Device-specific mods
********************************************************/
body.os-android .ios:not(.os-always),
body.os-ios .android:not(.os-always),
body.os-android .not-android:not(.os-always),
body.os-ios .not-ios:not(.os-always),
body.os-ios .not-ios-or-android:not(.os-always),
body.os-android .not-ios-or-android:not(.os-always) {
  display: none !important;
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy9tYWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3MvbWFpbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fc29jaWFsLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fY29tbW9uLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9faGVhZGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fZm9vdGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AbWFpbi9fc2VjdGlvbl9oaWdobGlnaHRpbmcuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BtYWluL19wcmludC5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQG1haW4vX2xvZ2luX3BvcHVwLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX2xvYWRlci5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0IFwiQGluY2x1ZGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQG1haW4vc29jaWFsXCI7XG5AaW1wb3J0IFwiQG1haW4vaGVhZGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vZm9vdGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vc2VjdGlvbl9oaWdobGlnaHRpbmdcIjtcbkBpbXBvcnQgXCJAbWFpbi9wcmludFwiO1xuQGltcG9ydCBcIkBtYWluL2xvZ2luX3BvcHVwXCI7XG5AaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogT3ZlcmFsbCBwYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmJvZHkge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgSGVsdiwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuICAvLyBGb3Igc2NyZWVucyB3aWRlciB0aGFuIHBhZ2UgY29sdW1uLCBkaXNwbGF5IGZ1bGwgcGFnZSBCRyBpbWFnZVxuICAvLyBJbml0aWFsbHkgZGlzcGxheSBsb3cgcmVzIGltYWdlIHdoaWNoIGlzIHJlcGxhY2VkIGJ5IGhpZ2gtcmVzIGltYWdlIGluIG1haW4uanMgb25jZSBjb250ZW50IGhhcyBsb2FkZWRcbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMDtcbiAgfVxuXG4gICYuZnVsbHNjcmVlbiB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB9XG59XG5cblxuI3dyYXBwZXIge1xuICBtYXJnaW46MDtcblxuICBAYXQtcm9vdCB7XG4gICAgYm9keTpub3QoLmZ1bGxzY3JlZW4pICN7Jn17XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbiNwYWdlIHtcbiAgd2lkdGg6ICRwYWdlLXdpZHRoO1xuICBtYXJnaW46IGF1dG87XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4jcGFnZS1pbm5lcntcbiAgd2lkdGg6ICRwYWdlLXdpZHRoO1xuICBtYXJnaW46IGF1dG87XG59XG5cbkBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgI3BhZ2UsICNwYWdlLWlubmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5cbiNjb250ZW50IHtcbiAgcGFkZGluZzogMTZweDtcbiAgYmFja2dyb3VuZDogcmdiKDI0MCwyNTUsMjQwKTtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB9XG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQwLDI1NSwyNDAsMC44KTtcbiAgfVxufVxuXG5hIHtcbiAgY29sb3I6ICMyZjJmMmY7XG59XG5cbmgxLGgyLGgzLGg0LGg1IHtcbiAgZm9udC1mYW1pbHk6IEdlb3JnaWE7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmgxIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBmb250LXNpemU6IDEuM2VtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbmgyIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5oMyB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSl7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxucCxhe1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG46bm90KGxpKSA+IHVsLG9sID4gbGl7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSkge1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICBmb250LXNpemU6IDAuOWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbmgzLCBoNCwgaDUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogZm9yIHdoZW4gc3VwcG9ydGVkLi4uICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjYWFhO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiB0cnVlO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbmgxK3AsaDIrcCxoMytwLGg0K3AsaDUrcCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8vIE1vcmUgcGFkZGluZyBmb3IgdG91Y2ggaW5wdXRcbnNlbGVjdHtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKSB7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbiNjb250ZW50IHVsLCNjb250ZW50IG9sIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbiNjb250ZW50IHVsLCNjb250ZW50IG9sIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jbGVhci1yaWdodCB7XG4gIGNsZWFyOiByaWdodDtcbn1cblxuLmNsZWFyLWxlZnQge1xuICBjbGVhcjogbGVmdDtcbn1cblxuLmNsZWFyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5oaWRkZW57XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogQXR0YWNoIHRvIGFueSBcInNsb3cgbG9hZGluZ1wiIGl0ZW1zICovXG4ubG9hZGVyIHtcbiAgQGluY2x1ZGUgbG9hZGVyO1xufVxuXG4ubG9hZGVyLWludmVydGVkIHtcbiAgQGluY2x1ZGUgbG9hZGVyLWludmVydGVkO1xufVxuXG4kbG9hZGVyLXNtYWxsLXNpemU6IDI0cHg7XG4kbG9hZGVyLXNtYWxsLXRoaWNrbmVzczogMnB4O1xuXG4ubG9hZGVyLXNtYWxsIHtcbiAgQGluY2x1ZGUgbG9hZGVyKCRsb2FkZXItc21hbGwtc2l6ZSwgJGxvYWRlci1zbWFsbC10aGlja25lc3MpO1xufVxuXG4ubG9hZGVyLWludmVydGVkLXNtYWxsIHtcbiAgQGluY2x1ZGUgbG9hZGVyLWludmVydGVkKCRsb2FkZXItc21hbGwtc2l6ZSwgJGxvYWRlci1zbWFsbC10aGlja25lc3MpO1xufVxuXG5cbkBtZWRpYSBzY3JlZW4ge1xuICAucHJpbnQtb25seSB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVxuICAucHJpbnQtb25seS1pbmxpbmUge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O31cbn1cblxuLy8gVG91Y2ggZGV2aWNlc1xuQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tc3R5bGVzO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogRGV2aWNlLXNwZWNpZmljIG1vZHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuYm9keS5vcy1hbmRyb2lkIC5pb3M6bm90KC5vcy1hbHdheXMpLFxuYm9keS5vcy1pb3MgLmFuZHJvaWQ6bm90KC5vcy1hbHdheXMpLFxuYm9keS5vcy1hbmRyb2lkIC5ub3QtYW5kcm9pZDpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWlvcyAubm90LWlvczpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWlvcyAubm90LWlvcy1vci1hbmRyb2lkOm5vdCgub3MtYWx3YXlzKSxcbmJvZHkub3MtYW5kcm9pZCAubm90LWlvcy1vci1hbmRyb2lkOm5vdCgub3MtYWx3YXlzKXtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbiIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8vIFZhcmlhYmxlc1xuXG4kcGFnZS13aWR0aDogOTYwcHg7XG4kcmVzcG9uc2l2ZS1tZW51OiA3NzhweDtcblxuJGdyZXk6ICMyZjJmMmY7XG4kZGFyay1ncmVlbjogIzEzMTtcbiRncmVlbjogIzI4NWQxZTtcbiRibHVlOiAjMTk0MjRhO1xuJGxpZ2h0LWdyZWVuOiByZ2JhKDEyNCwgMTk3LCAxNDksIDAuNjUpO1xuJHJlZDogIzVjMWUxZTtcbiRkYXJrLXJlZDogIzY2MDAwMDtcblxuLy8gQm94IGdyYWRpZW50c1xuJGJveC1HcmFkLUhlaWdodDogMThweDtcblxuJGJveC1CRy1HcmV5OiAkZ3JleTtcbiRib3gtR3JhZC1VcHBlci1Ub3AtR3JleTogIzcxNzE3MTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleTogIzQyNDE0MTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JleTogIzQwNDA0MDtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleTogIzJmMmYyZjtcblxuJGJveC1CRy1HcmVlbjogJGdyZWVuO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbjogIzQ2OTkzNjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW46ICMzMDcwMjU7XG4kYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuOiAjMzA3MjI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbjogIzI4NWQxZTtcblxuJGJveC1CRy1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlOiAjMTI2MTY3O1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLVRvcC1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuXG5cbiRib3gtQkctRGFyay1HcmVlbjogJGRhcmstZ3JlZW47XG4kYm94LUdyYWQtVXBwZXItVG9wLURhcmstR3JlZW46ICMyZTgwMmU7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLURhcmstR3JlZW46ICMxNzQ1MTc7XG4kYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW46ICMxODQ3MTk7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLURhcmstR3JlZW46ICMxMTMzMTE7XG5cbiRib3gtQkctUmVkOiAkcmVkO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1SZWQ6ICNhODNiM2I7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZDogIzZlMjUyNTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtUmVkOiAjNzAyNTI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1SZWQ6ICM1YzFlMWU7XG5cbiRtcS1icmVha3BvaW50LW1vYmlsZTogMzIwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaDogNjAwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ6IDc0MHB4O1xuJG1xLWJyZWFrcG9pbnQtZGVza3RvcDogOTgwcHg7XG4kbXEtYnJlYWtwb2ludC13aWRlOiAxMzAwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wQWQ6IDgxMHB4O1xuJG1xLWJyZWFrcG9pbnQtbW9iaWxlTGFuZHNjYXBlOiA0ODBweDtcbiRtcS1icmVha3BvaW50LW1lZGl1bUxvZ286IDQ0MHB4O1xuJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvOiAzMjBweDtcbiRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zOiA5NTRweDtcbiRtcS1icmVha3BvaW50LXBhZ2U6ICRwYWdlLXdpZHRoO1xuJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnU6ICRyZXNwb25zaXZlLW1lbnU7XG5cblxuLy8gQnJlYWtwb2ludHNcbiRtcS1icmVha3BvaW50czogKFxuICAgICAgICBtb2JpbGU6ICAkbXEtYnJlYWtwb2ludC1tb2JpbGUsXG4gICAgICAgIHRhYmxldDdpbmNoOiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0N2luY2gsXG4gICAgICAgIHRhYmxldDogICRtcS1icmVha3BvaW50LXRhYmxldCxcbiAgICAgICAgZGVza3RvcDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcCxcbiAgICAgICAgd2lkZTogJG1xLWJyZWFrcG9pbnQtd2lkZSxcblxuICAvLyBUd2Vha3BvaW50c1xuICAgICAgICBkZXNrdG9wQWQ6ICRtcS1icmVha3BvaW50LWRlc2t0b3BBZCxcbiAgICAgICAgbW9iaWxlTGFuZHNjYXBlOiAkbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGUsXG4gICAgICAgIHNtYWxsTG9nbzogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvLFxuICAgICAgICBwYWdlOiAkbXEtYnJlYWtwb2ludC1wYWdlLFxuICAgICAgICByZXNwb25zaXZlTWVudTogJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnUsXG4gICAgICAgIGhlYWRlclNvY2lhbEljb25zOiAkbXEtYnJlYWtwb2ludC1oZWFkZXJTb2NpYWxJY29uc1xuKTtcblxuXG4vLyBUbyBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpIHNldCAkbXEtcmVzcG9uc2l2ZSB0byBmYWxzZVxuLy8gQ3JlYXRlIGEgc2VwYXJhdGUgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gdGhlc2UgYnJvd3NlcnMsXG4vLyBtZWFuaW5nIEBtZWRpYSBxdWVyaWVzIHdpbGwgYmUgcmFzdGVyaXplZCwgcmVseWluZyBvbiB0aGUgY2FzY2FkZSBpdHNlbGZcbiRtcS1yZXNwb25zaXZlOiB0cnVlO1xuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8kbXEtc2hvdy1icmVha3BvaW50czogKG1vYmlsZSwgbW9iaWxlTGFuZHNjYXBlLCB0YWJsZXQsIGRlc2t0b3AsIHdpZGUpO1xuIiwKCQkiQG1peGluIGlXYWxrTW9iaWxlR3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNjOWRjZjQgMCUsIzgyYjVlYyAyMiUsIzI5OGFlMyA0NiUsIzNlYzFmNyA3MCUsIzNlYzFmNyAxMDAlKTtcbn1cblxuQG1peGluIGNlbnRyZVl7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBjZW50cmVYe1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuQG1peGluIGNlbnRyZVhZe1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBncmV5X2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDE4MSwgMTg5LCAyMDAsIDEpIDAlLCByZ2JhKDEzMCwgMTQwLCAxNDksIDEpIDM2JSwgcmdiYSg0MCwgNTIsIDU5LCAxKSAxMDAlKTtcbn1cblxuQG1peGluIGdyZWVuX2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNGViOTRlIDAlLCAjMTA5MDEwIDM2JSwgIzA5M2UwOSAxMDAlKTtcbn1cblxuQG1peGluIGJveCgkYmcpe1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1yYWRpdXM6NHB4O1xuICAmLCBhe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5AbWl4aW4gYm94R3JhZGllbnQoJGJnLCAkdXBwZXItdG9wLCAkdXBwZXItYm90dG9tLCAkbG93ZXItdG9wLCAkbG93ZXItYm90dG9tLCAkaGVpZ2h0OiAkYm94LUdyYWQtSGVpZ2h0KXtcbiAgQGluY2x1ZGUgYm94KCRiZyk7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZXtcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCR1cHBlci10b3AsICR1cHBlci1ib3R0b20pO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJjphZnRlcntcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICRoZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRsb3dlci10b3AsICRsb3dlci1ib3R0b20pO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgPiAqe1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJveEdyYWRpZW50R3JleXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmV5LCAkYm94LUdyYWQtVXBwZXItVG9wLUdyZXksICRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleSwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmV5LCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZXkpO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnRHcmVlbntcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEJsdWV7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctQmx1ZSwgJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUJsdWUsICRib3gtR3JhZC1Mb3dlci1Ub3AtQmx1ZSwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50RGFya0dyZWVue1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLURhcmstR3JlZW4sICRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1EYXJrLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudFJlZHtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1SZWQsICRib3gtR3JhZC1VcHBlci1Ub3AtUmVkLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZCwgJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQsICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tUmVkKTtcbn1cblxuQG1peGluIGJveFNoYWRvd3tcbiAgYm94LXNoYWRvdzogNHB4IDRweCA0cHggI2JiYjtcbn1cblxuQG1peGluIGJveHl7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50R3JleTtcbiAgQGluY2x1ZGUgYm94U2hhZG93O1xuICBjb2xvcjogI2VlZTtcblxuICBhLCBzdHJvbmcge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtaXhpbiBsaWdodEdyZWVuQm94e1xuICBAaW5jbHVkZSBib3goJGxpZ2h0LWdyZWVuKTtcbiAgJixhe1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuXG4iLAoJCSJcbi8qKlxuICogQnJlYWtwb2ludHNcbiAqL1xuXG5AaW1wb3J0IFwibXFcIjtcblxuXG5AbWl4aW4gbXFzKCRmcm9tOiBmYWxzZSwgJHVudGlsOiBmYWxzZSl7XG4gIEBpbmNsdWRlIG1xKCRmcm9tLCAkdW50aWwsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vKipcbiAqIElucHV0IGNhcGFiaWxpdGllc1xuICovXG5cbi8vIHNtYXJ0cGhvbmVzIGFuZCB0YWJsZXRzXG5AbWl4aW4gdG91Y2gtc2NyZWVuLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpXG4gIGFuZCAoaG92ZXI6IG5vbmUpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1vdXNlIG9yIHRvdWNoIHBhZFxuQG1peGluIG1vdXNlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU2hvdyBmb3IgdG91Y2ggc2NyZWVuc1xuLy8gYW5kIHVwIHVudGlsIHRhYmxldCBkZXZpY2Ugd2lkdGggZm9yIHRhYmxldHMgbm90IHN1cHBvcnRpbmcgaW5wdXQgbWVkaWEgcXVlcmllcyBpZS4gb2xkIEFuZHJvaWQgNC54XG5AbWl4aW4gdG91Y2gtc2NyZWVuLWRldmljZXN7XG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1pbnB1dCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcmVzcG9uc2l2ZU1lbnUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBOaW50ZW5kbyBXaWkgY29udHJvbGxlciwgS2luZWN0LCBldGMuXG5AbWl4aW4gY29uc29sZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gc3R5bHVzLWJhc2VkIHNjcmVlbnMgKENpbnRpcSwgV2Fjb20sIGV0YylcbkBtaXhpbiBjb25zb2xlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBub25lKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBSZXRpbmEgZGlzcGxheXMgKDJ4KVxuQG1peGluIHJldGluYSB7XG4gIEBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzLzIpLFxuICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcblxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxuJG1xLWJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXG4vLy9cbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxuLy8vXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIG9sZC1pZS5zY3NzXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxuJG1xLXJlc3BvbnNpdmU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGxpc3Rcbi8vL1xuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgbW9iaWxlOiAgMzIwcHgsXG4gICAgdGFibGV0OiAgNzQwcHgsXG4gICAgZGVza3RvcDogOTgwcHgsXG4gICAgd2lkZTogICAgMTMwMHB4XG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxuLy8vXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XG4vLy8gKGkuZS4gd2hlbiAkbXEtcmVzcG9uc2l2ZSBpcyBzZXQgdG8gJ2ZhbHNlJykgaW4gYSBvbGQtaWUuc2Nzc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyB0YWJsZXQtb25seS5zY3NzXG4vLy8gIC8vXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxuLy8vICAvLyBhbmQgZml4IHRoZSBzdHlsZXMgKGUuZy4gbGF5b3V0KSBhdCB0YWJsZXQgd2lkdGhcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcblxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vL1xuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cbi8vL1xuLy8vIEB0eXBlIG1hcFxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XG4vLy9cbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXG4vLy8gQHJldHVybnMge051bWJlcn1cbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XG4gICAgfSBAZWxzZSBpZiB1bml0KCRweCkgPT0gZW0ge1xuICAgICAgICBAcmV0dXJuICRweDtcbiAgICB9XG4gICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcbn1cblxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFZhbHVlIGluIHBpeGVsc1xuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XG4gICAgfVxufVxuXG4vLy8gTWVkaWEgUXVlcnkgbWl4aW5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICR1bnRpbCAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXG4vLy9cbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcbi8vLyBAaWdub3JlIEBwYXJhbSB7U3RyaW5nfSAkc3RhdGljLWJyZWFrcG9pbnQgKCRtcS1zdGF0aWMtYnJlYWtwb2ludClcbi8vL1xuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4vLy8gICAgICBjb2xvcjogcmVkO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogZ3JlZW47XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XG4vLy8gICAgICBjb2xvcjogdGVhbDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XG4vLy8gICAgJG15LWJyZWFrcG9pbnRzOiAoTDogOTAwcHgsIFhMOiAxMjAwcHgpO1xuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgfVxuQG1peGluIG1xKFxuICAgICRmcm9tOiBmYWxzZSxcbiAgICAkdW50aWw6IGZhbHNlLFxuICAgICRhbmQ6IGZhbHNlLFxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcbiAgICAkcmVzcG9uc2l2ZTogJG1xLXJlc3BvbnNpdmUsXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbikge1xuICAgICRtaW4td2lkdGg6IDA7XG4gICAgJG1heC13aWR0aDogMDtcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xuXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXG4gICAgQGlmICRmcm9tIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJGZyb20pID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxuICAgIEBpZiAkdW50aWwge1xuICAgICAgICBAaWYgdHlwZS1vZigkdW50aWwpID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcblxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxuICAgICAgICAgICAgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgYW5kIChcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHsgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYSBicmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIFRvdWNoIGRldmljZXNcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xyXG5cclxuQG1peGluIGJveC1zaGFkb3d7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtcclxufVxyXG5cclxuQG1peGluIHRvdWNoLXNjcmVlbi1zdHlsZXMge1xyXG5cclxuICAvLyBCdXR0b25zXHJcbiAgW2RhdGEtcm9sZT1cImJ1dHRvblwiXTpub3QoLm5vbi1yZXNwb25zaXZlKXtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3c7XHJcblxyXG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQ6ICNlZWU7XHJcblxyXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG5cclxuXHJcbiAgICBtYXJnaW46IC41ZW0gMDtcclxuICAgIHBhZGRpbmc6IC43ZW0gMWVtO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG5cclxuICAgICY6aG92ZXIsICY6YWN0aXZle1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZThmMGZmO1xyXG4gICAgfVxyXG5cclxuICAgICZbZGF0YS1pY29uXXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbiAgICAgIGl7XHJcbiAgICAgICAgQGluY2x1ZGUgY2VudHJlWTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5ncmVlbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGRkYTAgMCUsICMzZGRiOGMgNTAlLCAjOGRkZGEwIDEwMCUpO1xyXG4gICAgICBib3JkZXItY29sb3I6ICMyYjZiMzc7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNSk7IC8vaGVhdmllciBzaGFkb3cgb24gZGFyayBncmVlbiBiZ1xyXG4gICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZjRlMSAwJSwgIzNkZGI4YyA1MCUsICNkY2Y0ZTEgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYuYmx1ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOGRjMGRkIDAlLCMzZGFjZGIgNTAlLCM4ZGMwZGQgMTAwJSk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTI2MTY3O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgJjpob3ZlciwgJjphY3RpdmV7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNlMWY0IDAlLCM2ZWFjZWIgNTAlLCNkY2UxZjQgMTAwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGlzdHZpZXdzXHJcbiAgW2RhdGEtcm9sZT1cImxpc3R2aWV3XCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xyXG4gICAgQGluY2x1ZGUgYm94eTtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG5cclxuICAgID5saXtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDhweCAhaW1wb3J0YW50O1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhe1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgY29udGVudDogJz4nO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgcmlnaHQ6IDRweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMaW5rIGxpc3RzXHJcbiAgOm5vdCgubm9uLXJlc3BvbnNpdmUpOm5vdChbZGF0YS1yb2xlXSk6bm90KFtyb2xlXSkgPiBsaSA+IGE6b25seS1jaGlsZHtcclxuICAgIHBhZGRpbmc6IDhweCAwO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsCgkJIkBpbXBvcnQgXCJAaW5jbHVkZS9jb21tb25cIjtcclxuXHJcbiNzb2NpYWwge1xyXG4gIHdpZHRoOiAkcGFnZS13aWR0aDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgbWFyZ2luLXRvcDogMTZweDtcclxuXHJcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5hZGR0aGlzX3Rvb2xib3gge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDMwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmFkZHRoaXNfYnV0dG9uX3R3aXR0ZXJfZm9sbG93X25hdGl2ZSxcclxuICAuYWRkdGhpc19idXR0b25fZ29vZ2xlX3BsdXNvbmUge1xyXG4gICAgbWFyZ2luLWxlZnQ6OHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYXRjX3Mge1xyXG4gICAgbWFyZ2luLWxlZnQ6MTJweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufSIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4kbG9nby1sYXJnZS1pbWctd2lkdGg6IDQxNHB4O1xuJGxvZ28tbGFyZ2UtaW1nLWhlaWdodDogOTZweDtcblxuJGxvZ28tbWVkaXVtLWltZy13aWR0aDogMzMxcHg7XG4kbG9nby1tZWRpdW0taW1nLWhlaWdodDogNzdweDtcblxuJGxvZ28tc21hbGwtaW1nLXdpZHRoOiAyMDdweDtcbiRsb2dvLXNtYWxsLWltZy1oZWlnaHQ6IDQ4cHg7XG5cbiRsb2dvLWhlaWdodC1hZGp1c3RtZW50OiAxMHB4O1xuJGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQ6IDU1cHg7XG5cbiNoZWFkZXJ7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gRm9yIHNjcmVlbnMgc21hbGxlciB0aGFuIHBhZ2UgY29sdW1uLCBkaXNwbGF5IGhlYWRlciBCRyBpbWFnZVxuICAvLyBJbml0aWFsbHkgZGlzcGxheSBsb3cgcmVzIGltYWdlIHdoaWNoIGlzIHJlcGxhY2VkIGJ5IGhpZ2gtcmVzIGltYWdlIGluIG1haW4uanMgb25jZSBjb250ZW50IGhhcyBsb2FkZWRcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBjZW50ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuI2Jhbm5lciB7XG5cbiAgLy8gY3JvcCAxMHB4IG9mIGFudGktYWxpYXNpbmcgb2ZmIHRoZSBib3R0b20gb2YgbG9nbyBpbWFnZVxuICBoZWlnaHQ6ICRsb2dvLWxhcmdlLWltZy1oZWlnaHQgLSAkbG9nby1oZWlnaHQtYWRqdXN0bWVudDtcblxuICBAYXQtcm9vdCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgI3smfXtcbiAgICAgICAgaGVpZ2h0OiAkbG9nby1tZWRpdW0taW1nLWhlaWdodCAtICRsb2dvLWhlaWdodC1hZGp1c3RtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28pIHtcbiAgICAgICN7Jn17XG4gICAgICAgIGhlaWdodDogJGxvZ28tc21hbGwtaW1nLWhlaWdodCAtICRsb2dvLWhlaWdodC1hZGp1c3RtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgXG4gIGgxIHtcbiAgICBwYWRkaW5nOjA7XG4gICAgbWFyZ2luOjA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLThweDtcbiAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbiAgfVxuXG4gIHBpY3R1cmV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAkbG9nby1sYXJnZS1pbWctaGVpZ2h0O1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtcS1icmVha3BvaW50LW1lZGl1bUxvZ28pIHtcbiAgICAgICAgI3smfXtcbiAgICAgICAgICBoZWlnaHQ6ICRsb2dvLW1lZGl1bS1pbWctaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBhdC1yb290IHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtcS1icmVha3BvaW50LXNtYWxsTG9nbykge1xuICAgICAgICAjeyZ9e1xuICAgICAgICAgIGhlaWdodDogJGxvZ28tc21hbGwtaW1nLWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgaW1nLmxvZ297XG4gICAgQGluY2x1ZGUgY2VudHJlWFk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQgKiAyfSk7XG4gICAgbWF4LXdpZHRoOiAkbG9nby1sYXJnZS1pbWctd2lkdGg7Ly8gYmFubmVyX2xhcmdlLnBuZ1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgICAjeyZ9e1xuICAgICAgICAgIG1heC13aWR0aDogJGxvZ28tbWVkaXVtLWltZy13aWR0aDsgLy9iYW5uZXJfbWVkaXVtLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbG9nby1zbWFsbC1pbWctd2lkdGg7IC8vYmFubmVyX3NtYWxsLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFwcHN0b3JlLWxvZ28sIC5hd2FyZHN7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnB4O1xuXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5hcHBzdG9yZS1sb2dvIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuYXdhcmRzIHtcbiAgICB3aWR0aDogNjdweDtcbiAgICByaWdodDogMTUzcHg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZVJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG5cblxuJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoOiAzNHB4O1xuJG1vYmlsZUhlYWRlckJ1dHRvbkhlaWdodDogMzBweDtcbiRtb2JpbGVIZWFkZXJCdXR0b25TcGFjaW5nOiAxMHB4O1xuXG5AbWl4aW4gbW9iaWxlSGVhZGVyQnV0dG9ue1xuICBAaW5jbHVkZSBjZW50cmVZO1xuICB3aWR0aDogJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoO1xuICBoZWlnaHQ6ICRtb2JpbGVIZWFkZXJCdXR0b25IZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLy8gcmVzcG9uc2l2ZSB0b3VjaCBtZW51IChoaWRkZW4gYnkgZGVmYXVsdClcbiRzbGlja25hdl9hbmltYXRpb25fZHVyYXRpb246IDMwMG1zO1xuXG4uc2xpY2tuYXZfbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgfVxuICAuc2xpY2tuYXZfYnRue1xuICAgIEBpbmNsdWRlIGNlbnRyZVk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAuc2xpY2tuYXZfbWVudXR4dHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrbmF2X2ljb257XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrbmF2X25hdntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDk5OTk5OTtcblxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbjtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG4gICAgJi5zbGlja25hdl9pbml0aWFsaXNpbmd7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRpbmd7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUxlZnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9zaG93aW5ne1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlUmlnaHQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X3Nob3due1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdWx7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmLnNsaWNrbmF2X2hpZGluZywgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMCwxLDAsMSk7XG4gICAgICB9XG5cbiAgICAgICYuc2xpY2tuYXZfc2hvd2luZywgJi5zbGlja25hdl9zaG93bntcbiAgICAgICAgbWF4LWhlaWdodDogOTk5OXB4OyAvLyB2ZXJ5IGxhcmdlXG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMSwwLDEsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGl7XG4gICAgICBhe1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICA+IGF7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IHVse1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICA+IGxpID4gYXtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgICAgb3BhY2l0eTogMC45NTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAwIDA7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBiYXNrZXQgQ1RBIGFzIHRleHRcbiAgICBhLmJhc2tldC1jdGF7XG4gICAgICBzcGFue1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjphZnRlcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm5hdiB7XG4gIG1hcmdpbi1yaWdodDogMnB4OyAvKiBmaXggZm9yIG1lZ2FtZW51IG92ZXJzcGlsbGluZyAycHggKi9cblxuICBAYXQtcm9vdCB7XG4gICAgYm9keS5mdWxsc2NyZWVuICN7Jn17XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gIGxpIC5pY29ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgbGkuYW5kcm9pZCxcbiAgbGkuYXBwbGV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgbGkuYW5kcm9pZCAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYW5kcm9pZF9sb2dvX2ljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuICBsaS5hcHBsZSAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYXBwbGVfbG9nb19pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cblxuICAvLyBNb2JpbGUgdmlld1xuICA+IC5sb2dpbi1jdGEtY29udGFpbmVye1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgYm9keS5hY2NvdW50cy1kaXNhYmxlZCAjeyZ9e1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHNwYW57XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmFmdGVye1xuICAgICAgICBAaW5jbHVkZSBtb2JpbGVIZWFkZXJCdXR0b247XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3VzZXIucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAoMiAqICRtb2JpbGVIZWFkZXJCdXR0b25TcGFjaW5nKSArICRtb2JpbGVIZWFkZXJCdXR0b25XaWR0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2tldCBDVEE6IG1vYmlsZSAmIGRlc2t0b3BcbiAgLmJhc2tldC1jdGEtY29udGFpbmVyLCAuYmFza2V0LWN0YXtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgYm9keS5zaWduZWQtaW4gI3smfXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIGJvZHkuYWNjb3VudHMtZGlzYWJsZWQgI3smfXtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRiYXNrZXRJY29uSGVpZ2h0OiAyNnB4O1xuICAkYmFza2V0SWNvbldpZHRoOiAyMHB4O1xuXG4gIEBtaXhpbiBiYXNrZXRJY29uSG92ZXJ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3Nob3BwaW5nX2NhcnRfaW52ZXJ0ZWQucG5nJyk7XG4gIH1cblxuICBhLmJhc2tldC1jdGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBcbiAgICBzcGFue1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6ICRiYXNrZXRJY29uSGVpZ2h0O1xuICAgICAgaGVpZ2h0OiAkYmFza2V0SWNvbldpZHRoO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJGJhc2tldEljb25IZWlnaHQgJGJhc2tldEljb25XaWR0aDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3Mvc2hvcHBpbmdfY2FydC5wbmcnKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNrZXQgQ1RBOiBkZXNrdG9wXG4gICNtZW51IGEuYmFza2V0LWN0YXtcbiAgICAkdmVydDogMjBweDtcbiAgICAkaG9yaXo6IDE5cHg7XG4gICAgJHRvcDogJHZlcnQ7XG4gICAgJGJvdHRvbTogJHZlcnQ7XG4gICAgJGxlZnQ6ICgoJGJhc2tldEljb25XaWR0aCAvIDIpICsgJGhvcml6KTtcbiAgICAkcmlnaHQ6ICgoJGJhc2tldEljb25XaWR0aCAvIDIpICsgJGhvcml6KTtcbiAgICBwYWRkaW5nOiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0ICFpbXBvcnRhbnQ7XG5cbiAgICAmOmFmdGVye1xuICAgICAgQGluY2x1ZGUgY2VudHJlWFk7XG4gICAgfVxuICAgICY6aG92ZXI6YWZ0ZXJ7XG4gICAgICBAaW5jbHVkZSBiYXNrZXRJY29uSG92ZXI7XG4gICAgfVxuICB9XG5cbiAgI21lbnUgbGkubWVnYS1ob3ZlciBhLmJhc2tldC1jdGE6YWZ0ZXJ7XG4gICAgQGluY2x1ZGUgYmFza2V0SWNvbkhvdmVyO1xuICB9XG5cbiAgLy8gQmFza2V0IENUQTogbW9iaWxlXG4gID4gYS5iYXNrZXQtY3Rhe1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBvbiB0aW55IHNjcmVlbnMgYmVjYXVzZSBpdCBvdmVybGFwcyBsb2dvXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogMzcwcHgpe1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YWZ0ZXJ7XG4gICAgICBAaW5jbHVkZSBtb2JpbGVIZWFkZXJCdXR0b247XG4gICAgICByaWdodDogKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogKDQgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAoMiAqICRtb2JpbGVIZWFkZXJCdXR0b25XaWR0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdXNlL3BvaW50ZXIgbWVudVxuI21lbnV7XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWVudWJhci1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDo4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjAgIWltcG9ydGFudDtcbiAgICB3aWR0aDozMnB4O1xuICAgIGhlaWdodDozMnB4O1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHRvcDo0cHg7XG5cbiAgICAmLnNvY2lhbHtcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IGhlYWRlclNvY2lhbEljb25zKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFN1YiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI3N1Yi1oZWFkZXJ7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXJlZDtcbiAgY29sb3I6IHdoaXRlXG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogRm9vdGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI2Zvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMyZjJmMmY7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTBwdDtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAubGlua3N7XG4gICAgdWwge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgIHBhZGRpbmctbGVmdDo4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OjhweDtcblxuICAgICAgYTpob3ZlcntcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwjc29jaWFsLWZvb3RlcntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICBhIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4ICMwMDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudWJhci1pY29uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OjhweCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDozMnB4O1xuICAgICAgaGVpZ2h0OjMycHg7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgIHRvcDo0cHg7XG5cbiAgICAgICYuc29jaWFse1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBoZWFkZXJTb2NpYWxJY29ucykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmFjZWJvb2sge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvZmFjZWJvb2staWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnBpbnRlcmVzdCB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9waW50ZXJlc3QtaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRocmVhZHMge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvdGhyZWFkcy1pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYmx1ZXNreSB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9ibHVlc2t5LWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50d2l0dGVyIHtcbiAgICAgIGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3R3aXR0ZXItaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmluc3RhZ3JhbSB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9pbnN0YWdyYW0taWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbn1cblxuI2xpa2Vfb25fZmFjZWJvb2sge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZy1ib3R0b206MTZweDtcblxuICBkaXYudGV4dHtcbiAgICBkaXNwbGF5OmlubGluZTtcbiAgfVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEZvb3RlciBzZWN0aW9uIGhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5odG1sLnNlY3Rpb24tdGVybXMgI2Zvb3RlciBsaS50ZXJtcyBhLFxuaHRtbC5zZWN0aW9uLWxpbmtpbmcgI2Zvb3RlciBsaS5saW5raW5nIGEsXG5odG1sLnNlY3Rpb24tYXBwcy1tZW51ICNmb290ZXIgbGkuYXBwcy1tZW51IGEsXG5odG1sLnNlY3Rpb24tbGlua3MgI2Zvb3RlciBsaS5saW5rcyBhLFxuaHRtbC5zZWN0aW9uLWZvb3RwYXRoLWlzc3VlcyAjZm9vdGVyIGxpLmZvb3RwYXRoLWlzc3VlcyBhLFxuaHRtbC5zZWN0aW9uLWRpcmVjdGlvbi1jb3JyZWN0aW9uICNmb290ZXIgbGkuZGlyZWN0aW9uLWNvcnJlY3Rpb24gYSxcbmh0bWwuc2VjdGlvbi1jb29raWUtcG9saWN5ICNmb290ZXIgbGkuY29va2llLXBvbGljeSBhLFxuaHRtbC5zZWN0aW9uLWNvbnRhY3QtdXMgI2Zvb3RlciBsaS5jb250YWN0LXVzIGEsXG5odG1sLnNlY3Rpb24tbW9iaWxlLXJlZGlyZWN0ICNmb290ZXIgbGkubW9iaWxlLXJlZGlyZWN0IGF7XG4gIGNvbG9yOiAjMDBkNGZmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIE5hdiBzZWN0aW9uIGhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmh0bWwuc2VjdGlvbi1ob21lIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWhvbWUgYSxcbmh0bWwuc2VjdGlvbi1hbGwtd2Fsa3MgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYWxsLXdhbGtzIGEsXG5odG1sLnNlY3Rpb24tbG9jYXRpb25zIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWxvY2F0aW9ucyBhLFxuaHRtbC5zZWN0aW9uLXdhbGstdHlwZXMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtd2Fsay10eXBlcyBhLFxuaHRtbC5zZWN0aW9uLWFwcHMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYXBwcyBhLFxuaHRtbC5zZWN0aW9uLWJ1eSB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy0gYSxcbmh0bWwuc2VjdGlvbi1mYXEgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtZmFxIGEsXG5odG1sLnNlY3Rpb24tYmxvZyB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1ibG9nIGEsXG5odG1sLnNlY3Rpb24tbXlzdGVyaWVzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLW15c3RlcmllcyBhe1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC00MHB4O1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBQcmludCBtb2RzXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuQG1lZGlhIHByaW50IHtcclxuXHJcbiAgYm9keSwgI2NvbnRlbnQge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2Zvb3RlciwgLm5vLXByaW50LCAubmF2LCAjc29jaWFsLCAjY29va2llVGVybXMsICNoZWFkZXIsICNzdWItaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbiAgYSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogYmxhY2tcclxuICB9XHJcbiAgLnByaW50LW9ubHkge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLnByaW50LW9ubHktaW5saW5lIHtcclxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgI2Jhbm5lciB7XHJcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IC02cHg7XHJcblxyXG4gICAgaW1nLmxvZ28ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI3dyYXBwZXIsICNjb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDBcclxuICB9XHJcbiAgXHJcbiAgXHJcbn0iLAoJCSJAaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4jbG9naW4tcG9wdXB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBhdC1yb290IHtcbiAgICBib2R5LmpzLWxvYWRlZCAjeyZ9e1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgI2ZpcmViYXNldWktYXV0aC1jb250YWluZXJ7XG4gICAgJi5sb2FkaW5ne1xuICAgICAgQGluY2x1ZGUgbG9hZGVyO1xuICAgICAgcGFkZGluZzogNXJlbSAxMHJlbTtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLy8gTG9hZGluZyBhbmltYXRpb25cblxuJGxvYWRlci1kZWZhdWx0LXNpemU6IDUwcHg7XG4kbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzOiA1cHg7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZDogd2hpdGU7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkOiBibGFjaztcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkOiByZ2JhKDAsMCwwLDAuMjUpO1xuXG5AbWl4aW4gbG9hZGVyKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kXG4pe1xuXG4gIEBhdC1yb290e1xuICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzaXplO1xuICAgIGJvcmRlcjogJHRoaWNrbmVzcyBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBhbmltYXRpb246IGxvYWRpbmcgMXMgZWFzZSBpbmZpbml0ZTtcbiAgfVxuICBAa2V5ZnJhbWVzIGxvYWRpbmcge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsb2FkZXItaW52ZXJ0ZWQoXG4gICRzaXplOiAkbG9hZGVyLWRlZmF1bHQtc2l6ZSxcbiAgJHRoaWNrbmVzczogJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzcyxcbiAgJGZvcmVncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkLFxuICAkYmFja2dyb3VuZDogJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQtaW52ZXJ0ZWRcbil7XG4gIEBpbmNsdWRlIGxvYWRlcihcbiAgICAkc2l6ZTogJHNpemUsXG4gICAgJHRoaWNrbmVzczogJHRoaWNrbmVzcyxcbiAgICAkZm9yZWdyb3VuZDogJGZvcmVncm91bmQsXG4gICAgJGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kXG4gICk7XG59XG4iCgldLAoJIm5hbWVzIjogW10sCgkibWFwcGluZ3MiOiAiQUlDQTs7R0FFRztBQVdIOztHQUVHO0FFaEJIOzt5REFFeUQ7QUxJekQsQUFBQSxJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QUdQRDs7R0FFRztBQVdIOztHQUVHO0FFaEJIOzt5REFFeUQ7QUVJekQsQUFBQSxJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QURORCxBQUFBLE9BQU8sQ0FBQztFQUNOLEtBQUssRUxETSxLQUFLO0VLRWhCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7Q0FrQmpCOztBRnNNTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VFM043QyxBQUFBLE9BQU8sQ0FBQztJQU1KLE9BQU8sRUFBRSxJQUFJO0dBZWhCOzs7QUFyQkQsQUFTRSxPQVRLLENBU0wsZ0JBQWdCLENBQUM7RUFDZixXQUFXLEVBQUUsS0FBSztDQUNuQjs7QUFYSCxBQWFFLE9BYkssQ0FhTCxxQ0FBcUM7QUFidkMsT0FBTyxDQWNMLDhCQUE4QixDQUFDO0VBQzdCLFdBQVcsRUFBQyxjQUFjO0NBQzNCOztBQWhCSCxBQWtCRSxPQWxCSyxDQWtCTCxNQUFNLENBQUM7RUFDTCxXQUFXLEVBQUMsZUFBZTtDQUM1Qjs7QUV0Qkg7O3lEQUV5RDtBQWN6RCxBQUFBLE9BQU8s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 */