/**
 * 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 {
    padding-top: 8px;
    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: 59px;
  }
}

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

#banner h1 {
  padding: 0;
  margin: 0;
  position: relative;
}

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

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

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

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

#banner img.logo {
  left: 50%;
  transform: translateX(-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;
}

@media (max-width: 57.5625em) {
  .nav .black ul.mega-menu li.submenu a {
    padding-left: 8px;
    padding-right: 26px;
  }
  .nav .black ul.mega-menu li.submenu a .dc-mega-icon {
    right: 10px;
  }
}

.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;
  }
}

/********************************************************
* 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+PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHsgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYSBicmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBUb3VjaCBkZXZpY2VzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuXG5AbWl4aW4gYm94LXNoYWRvd3tcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtcbn1cblxuQG1peGluIHRvdWNoLXNjcmVlbi1zdHlsZXMge1xuXG4gIC8vIEJ1dHRvbnNcbiAgW2RhdGEtcm9sZT1cImJ1dHRvblwiXTpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93O1xuXG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG5cbiAgICBtYXJnaW46IC41ZW0gMDtcbiAgICBwYWRkaW5nOiAuN2VtIDFlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICY6aG92ZXIsICY6YWN0aXZle1xuICAgICAgYmFja2dyb3VuZDogI2U4ZjBmZjtcbiAgICB9XG5cbiAgICAmW2RhdGEtaWNvbl17XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICBpe1xuICAgICAgICBAaW5jbHVkZSBjZW50cmVZO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyZWVuIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGRkYTAgMCUsICMzZGRiOGMgNTAlLCAjOGRkZGEwIDEwMCUpO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMmI2YjM3O1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC41KTsgLy9oZWF2aWVyIHNoYWRvdyBvbiBkYXJrIGdyZWVuIGJnXG4gICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkY2Y0ZTEgMCUsICMzZGRiOGMgNTAlLCAjZGNmNGUxIDEwMCUpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmJsdWV7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGMwZGQgMCUsIzNkYWNkYiA1MCUsIzhkYzBkZCAxMDAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTI2MTY3O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNlMWY0IDAlLCM2ZWFjZWIgNTAlLCNkY2UxZjQgMTAwJSk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaXN0dmlld3NcbiAgW2RhdGEtcm9sZT1cImxpc3R2aWV3XCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xuICAgIEBpbmNsdWRlIGJveHk7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cblxuICAgID5saXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGNvbnRlbnQ6ICc+JztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGluayBsaXN0c1xuICA6bm90KC5ub24tcmVzcG9uc2l2ZSk6bm90KFtkYXRhLXJvbGVdKTpub3QoW3JvbGVdKSA+IGxpID4gYTpvbmx5LWNoaWxke1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5cbiIsCgkJIkBpbXBvcnQgXCJAaW5jbHVkZS9jb21tb25cIjtcclxuXHJcbiNzb2NpYWwge1xyXG4gIHdpZHRoOiAkcGFnZS13aWR0aDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgbWFyZ2luLXRvcDogMTZweDtcclxuXHJcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5hZGR0aGlzX3Rvb2xib3gge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDMwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmFkZHRoaXNfYnV0dG9uX3R3aXR0ZXJfZm9sbG93X25hdGl2ZSxcclxuICAuYWRkdGhpc19idXR0b25fZ29vZ2xlX3BsdXNvbmUge1xyXG4gICAgbWFyZ2luLWxlZnQ6OHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYXRjX3Mge1xyXG4gICAgbWFyZ2luLWxlZnQ6MTJweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufSIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4kbG9nby1sYXJnZS1pbWctd2lkdGg6IDQxNHB4O1xuJGxvZ28tbGFyZ2UtaW1nLWhlaWdodDogNzRweDtcblxuJGxvZ28tbWVkaXVtLWltZy13aWR0aDogMzMxcHg7XG4kbG9nby1tZWRpdW0taW1nLWhlaWdodDogNTlweDtcblxuJGxvZ28tc21hbGwtaW1nLXdpZHRoOiAyMDdweDtcbiRsb2dvLXNtYWxsLWltZy1oZWlnaHQ6IDM3cHg7XG5cbiRsb2dvLWhlaWdodC1hZGp1c3RtZW50OiAxMnB4O1xuJGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQ6IDU1cHg7XG5cbiNoZWFkZXJ7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gRm9yIHNjcmVlbnMgc21hbGxlciB0aGFuIHBhZ2UgY29sdW1uLCBkaXNwbGF5IGhlYWRlciBCRyBpbWFnZVxuICAvLyBJbml0aWFsbHkgZGlzcGxheSBsb3cgcmVzIGltYWdlIHdoaWNoIGlzIHJlcGxhY2VkIGJ5IGhpZ2gtcmVzIGltYWdlIGluIG1haW4uanMgb25jZSBjb250ZW50IGhhcyBsb2FkZWRcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4jYmFubmVyIHtcblxuICAvLyBhZGQgc3BhY2UgZm9yIGFwcCBzdG9yZSBsb2dvc1xuICBoZWlnaHQ6ICRsb2dvLWxhcmdlLWltZy1oZWlnaHQgKyAkbG9nby1oZWlnaHQtYWRqdXN0bWVudDtcblxuICBAYXQtcm9vdCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgI3smfXtcbiAgICAgICAgaGVpZ2h0OiAkbG9nby1tZWRpdW0taW1nLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAjeyZ9e1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLXNtYWxsLWltZy1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBcbiAgaDEge1xuICAgIHBhZGRpbmc6MDtcbiAgICBtYXJnaW46MDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG4gIH1cblxuICBwaWN0dXJle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGxvZ28tbGFyZ2UtaW1nLWhlaWdodDtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1tZWRpdW1Mb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgaGVpZ2h0OiAkbG9nby1tZWRpdW0taW1nLWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28pIHtcbiAgICAgICAgI3smfXtcbiAgICAgICAgICBoZWlnaHQ6ICRsb2dvLXNtYWxsLWltZy1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIGltZy5sb2dve1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGxvZ28taW1nLXdpZHRoLWFkanVzdG1lbnQgKiAyfSk7XG4gICAgbWF4LXdpZHRoOiAkbG9nby1sYXJnZS1pbWctd2lkdGg7Ly8gYmFubmVyX2xhcmdlLnBuZ1xuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgICAjeyZ9e1xuICAgICAgICAgIG1heC13aWR0aDogJGxvZ28tbWVkaXVtLWltZy13aWR0aDsgLy9iYW5uZXJfbWVkaXVtLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbG9nby1zbWFsbC1pbWctd2lkdGg7IC8vYmFubmVyX3NtYWxsLnBuZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFwcHN0b3JlLWxvZ28sIC5hd2FyZHN7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnB4O1xuXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5hcHBzdG9yZS1sb2dvIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuYXdhcmRzIHtcbiAgICB3aWR0aDogNjdweDtcbiAgICByaWdodDogMTUzcHg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZVJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG5cblxuJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoOiAzNHB4O1xuJG1vYmlsZUhlYWRlckJ1dHRvbkhlaWdodDogMzBweDtcbiRtb2JpbGVIZWFkZXJCdXR0b25TcGFjaW5nOiAxMHB4O1xuXG5AbWl4aW4gbW9iaWxlSGVhZGVyQnV0dG9ue1xuICBAaW5jbHVkZSBjZW50cmVZO1xuICB3aWR0aDogJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoO1xuICBoZWlnaHQ6ICRtb2JpbGVIZWFkZXJCdXR0b25IZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLy8gcmVzcG9uc2l2ZSB0b3VjaCBtZW51IChoaWRkZW4gYnkgZGVmYXVsdClcbiRzbGlja25hdl9hbmltYXRpb25fZHVyYXRpb246IDMwMG1zO1xuXG4uc2xpY2tuYXZfbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgfVxuICAuc2xpY2tuYXZfYnRue1xuICAgIEBpbmNsdWRlIGNlbnRyZVk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAuc2xpY2tuYXZfbWVudXR4dHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrbmF2X2ljb257XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrbmF2X25hdntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDk5OTk5OTtcblxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbjtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG4gICAgJi5zbGlja25hdl9pbml0aWFsaXNpbmd7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRpbmd7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUxlZnQ7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9zaG93aW5ne1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlUmlnaHQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X3Nob3due1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdWx7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmLnNsaWNrbmF2X2hpZGluZywgJi5zbGlja25hdl9oaWRkZW57XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMCwxLDAsMSk7XG4gICAgICB9XG5cbiAgICAgICYuc2xpY2tuYXZfc2hvd2luZywgJi5zbGlja25hdl9zaG93bntcbiAgICAgICAgbWF4LWhlaWdodDogOTk5OXB4OyAvLyB2ZXJ5IGxhcmdlXG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbiBjdWJpYy1iZXppZXIoMSwwLDEsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGl7XG4gICAgICBhe1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICA+IGF7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IHVse1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICA+IGxpID4gYXtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgICAgb3BhY2l0eTogMC45NTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAwIDA7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBiYXNrZXQgQ1RBIGFzIHRleHRcbiAgICBhLmJhc2tldC1jdGF7XG4gICAgICBzcGFue1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjphZnRlcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm5hdiB7XG4gIG1hcmdpbi1yaWdodDogMnB4OyAvKiBmaXggZm9yIG1lZ2FtZW51IG92ZXJzcGlsbGluZyAycHggKi9cblxuICBAYXQtcm9vdCB7XG4gICAgYm9keS5mdWxsc2NyZWVuICN7Jn17XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gIGxpIC5pY29ue1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgbGkuYW5kcm9pZCxcbiAgbGkuYXBwbGV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgbGkuYW5kcm9pZCAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYW5kcm9pZF9sb2dvX2ljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuICBsaS5hcHBsZSAuaWNvbntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYXBwbGVfbG9nb19pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cblxuICAvL1N0b3AgbXlzdGVyeSB3YWxrcyB3cmFwcGluZyBvbnRvIGxpbmUgYmVsb3dcbiAgLmJsYWNrIHVsLm1lZ2EtbWVudSBsaS5zdWJtZW51IGEge1xuICAgICAgQGluY2x1ZGUgbXEoJHVudGlsOiA5MjFweCkge1xuICAgICAgICAvLyBEcm9wIHBhZGRpbmcgKmJlbG93KiA5MjFweFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjZweDtcblxuICAgICAgICAuZGMtbWVnYS1pY29uIHtcbiAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG5cbiAgLy8gTW9iaWxlIHZpZXdcbiAgPiAubG9naW4tY3RhLWNvbnRhaW5lcntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHkuYWNjb3VudHMtZGlzYWJsZWQgI3smfXtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBzcGFue1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlSGVhZGVyQnV0dG9uO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9ncmFwaGljcy91c2VyLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCYXNrZXQgQ1RBOiBtb2JpbGUgJiBkZXNrdG9wXG4gIC5iYXNrZXQtY3RhLWNvbnRhaW5lciwgLmJhc2tldC1jdGF7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHkuc2lnbmVkLWluICN7Jn17XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICBib2R5LmFjY291bnRzLWRpc2FibGVkICN7Jn17XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkYmFza2V0SWNvbkhlaWdodDogMjZweDtcbiAgJGJhc2tldEljb25XaWR0aDogMjBweDtcblxuICBAbWl4aW4gYmFza2V0SWNvbkhvdmVye1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9ncmFwaGljcy9zaG9wcGluZ19jYXJ0X2ludmVydGVkLnBuZycpO1xuICB9XG5cbiAgYS5iYXNrZXQtY3RhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgXG4gICAgc3BhbntcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAkYmFza2V0SWNvbkhlaWdodDtcbiAgICAgIGhlaWdodDogJGJhc2tldEljb25XaWR0aDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYXNrZXRJY29uSGVpZ2h0ICRiYXNrZXRJY29uV2lkdGg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3Nob3BwaW5nX2NhcnQucG5nJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFza2V0IENUQTogZGVza3RvcFxuICAjbWVudSBhLmJhc2tldC1jdGF7XG4gICAgJHZlcnQ6IDIwcHg7XG4gICAgJGhvcml6OiAxOXB4O1xuICAgICR0b3A6ICR2ZXJ0O1xuICAgICRib3R0b206ICR2ZXJ0O1xuICAgICRsZWZ0OiAoKCRiYXNrZXRJY29uV2lkdGggLyAyKSArICRob3Jpeik7XG4gICAgJHJpZ2h0OiAoKCRiYXNrZXRJY29uV2lkdGggLyAyKSArICRob3Jpeik7XG4gICAgcGFkZGluZzogJHRvcCAkcmlnaHQgJGJvdHRvbSAkbGVmdCAhaW1wb3J0YW50O1xuXG4gICAgJjphZnRlcntcbiAgICAgIEBpbmNsdWRlIGNlbnRyZVhZO1xuICAgIH1cbiAgICAmOmhvdmVyOmFmdGVye1xuICAgICAgQGluY2x1ZGUgYmFza2V0SWNvbkhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICNtZW51IGxpLm1lZ2EtaG92ZXIgYS5iYXNrZXQtY3RhOmFmdGVye1xuICAgIEBpbmNsdWRlIGJhc2tldEljb25Ib3ZlcjtcbiAgfVxuXG4gIC8vIEJhc2tldCBDVEE6IG1vYmlsZVxuICA+IGEuYmFza2V0LWN0YXtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIEhpZGUgb24gdGlueSBzY3JlZW5zIGJlY2F1c2UgaXQgb3ZlcmxhcHMgbG9nb1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IDM3MHB4KXtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmFmdGVye1xuICAgICAgQGluY2x1ZGUgbW9iaWxlSGVhZGVyQnV0dG9uO1xuICAgICAgcmlnaHQ6ICgyICogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmcpICsgJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoO1xuXG4gICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6ICg0ICogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmcpICsgKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNb3VzZS9wb2ludGVyIG1lbnVcbiNtZW51e1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1lbnViYXItaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MzJweDtcbiAgICBoZWlnaHQ6MzJweDtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB0b3A6NHB4O1xuXG4gICAgJi5zb2NpYWx7XG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBoZWFkZXJTb2NpYWxJY29ucykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cblxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEZvb3RlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNmb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjMmYyZjJmO1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBmb250LXNpemU6IDEwcHQ7XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmxpbmtze1xuICAgIHVsIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6OHB4O1xuICAgICAgcGFkZGluZy1yaWdodDo4cHg7XG5cbiAgICAgIGE6aG92ZXJ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVsI3NvY2lhbC1mb290ZXJ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlcyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgYSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCAjMDAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnViYXItaWNvbiB7XG4gICAgICBtYXJnaW4tbGVmdDo4cHggIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6MCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6MzJweDtcbiAgICAgIGhlaWdodDozMnB4O1xuICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICB0b3A6NHB4O1xuXG4gICAgICAmLnNvY2lhbHtcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogaGVhZGVyU29jaWFsSWNvbnMpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZhY2Vib29rIHtcbiAgICAgIGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL2ZhY2Vib29rLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5waW50ZXJlc3Qge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvcGludGVyZXN0LWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50aHJlYWRzIHtcbiAgICAgIGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3RocmVhZHMtaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJsdWVza3kge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYmx1ZXNreS1pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudHdpdHRlciB7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy90d2l0dGVyLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pbnN0YWdyYW0ge1xuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvaW5zdGFncmFtLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG59XG5cbiNsaWtlX29uX2ZhY2Vib29rIHtcbiAgbWFyZ2luOjA7XG4gIHBhZGRpbmctYm90dG9tOjE2cHg7XG5cbiAgZGl2LnRleHR7XG4gICAgZGlzcGxheTppbmxpbmU7XG4gIH1cbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBGb290ZXIgc2VjdGlvbiBoaWdobGlnaHRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaHRtbC5zZWN0aW9uLXRlcm1zICNmb290ZXIgbGkudGVybXMgYSxcbmh0bWwuc2VjdGlvbi1saW5raW5nICNmb290ZXIgbGkubGlua2luZyBhLFxuaHRtbC5zZWN0aW9uLWFwcHMtbWVudSAjZm9vdGVyIGxpLmFwcHMtbWVudSBhLFxuaHRtbC5zZWN0aW9uLWxpbmtzICNmb290ZXIgbGkubGlua3MgYSxcbmh0bWwuc2VjdGlvbi1mb290cGF0aC1pc3N1ZXMgI2Zvb3RlciBsaS5mb290cGF0aC1pc3N1ZXMgYSxcbmh0bWwuc2VjdGlvbi1kaXJlY3Rpb24tY29ycmVjdGlvbiAjZm9vdGVyIGxpLmRpcmVjdGlvbi1jb3JyZWN0aW9uIGEsXG5odG1sLnNlY3Rpb24tY29va2llLXBvbGljeSAjZm9vdGVyIGxpLmNvb2tpZS1wb2xpY3kgYSxcbmh0bWwuc2VjdGlvbi1jb250YWN0LXVzICNmb290ZXIgbGkuY29udGFjdC11cyBhLFxuaHRtbC5zZWN0aW9uLW1vYmlsZS1yZWRpcmVjdCAjZm9vdGVyIGxpLm1vYmlsZS1yZWRpcmVjdCBhe1xuICBjb2xvcjogIzAwZDRmZjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBOYXYgc2VjdGlvbiBoaWdobGlnaHRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5odG1sLnNlY3Rpb24taG9tZSB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1ob21lIGEsXG5odG1sLnNlY3Rpb24tYWxsLXdhbGtzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWFsbC13YWxrcyBhLFxuaHRtbC5zZWN0aW9uLWxvY2F0aW9ucyB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1sb2NhdGlvbnMgYSxcbmh0bWwuc2VjdGlvbi13YWxrLXR5cGVzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLXdhbGstdHlwZXMgYSxcbmh0bWwuc2VjdGlvbi1hcHBzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWFwcHMgYSxcbmh0bWwuc2VjdGlvbi1idXkgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtIGEsXG5odG1sLnNlY3Rpb24tZmFxIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWZhcSBhLFxuaHRtbC5zZWN0aW9uLWJsb2cgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYmxvZyBhLFxuaHRtbC5zZWN0aW9uLW15c3RlcmllcyB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1teXN0ZXJpZXMgYXtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtNDBweDtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFByaW50IG1vZHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWVkaWEgcHJpbnQge1xuXG4gIGJvZHksICNjb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZm9vdGVyLCAubm8tcHJpbnQsIC5uYXYsICNzb2NpYWwsICNjb29raWVUZXJtcywgI2hlYWRlciwgI3N1Yi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGJsYWNrXG4gIH1cbiAgLnByaW50LW9ubHkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByaW50LW9ubHktaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNiYW5uZXIge1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTZweDtcblxuICAgIGltZy5sb2dvIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgIH1cbiAgfVxuXG4gICN3cmFwcGVyLCAjY29udGVudCB7XG4gICAgcGFkZGluZzogMFxuICB9XG4gIFxuICBcbn0iLAoJCSJAaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4jbG9naW4tcG9wdXB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBhdC1yb290IHtcbiAgICBib2R5LmpzLWxvYWRlZCAjeyZ9e1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgI2ZpcmViYXNldWktYXV0aC1jb250YWluZXJ7XG4gICAgJi5sb2FkaW5ne1xuICAgICAgQGluY2x1ZGUgbG9hZGVyO1xuICAgICAgcGFkZGluZzogNXJlbSAxMHJlbTtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLy8gTG9hZGluZyBhbmltYXRpb25cblxuJGxvYWRlci1kZWZhdWx0LXNpemU6IDUwcHg7XG4kbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzOiA1cHg7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZDogd2hpdGU7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkOiBibGFjaztcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkOiByZ2JhKDAsMCwwLDAuMjUpO1xuXG5AbWl4aW4gbG9hZGVyKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kXG4pe1xuXG4gIEBhdC1yb290e1xuICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRzaXplIC8gMiArICR0aGlja25lc3MpO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzaXplO1xuICAgIGJvcmRlcjogJHRoaWNrbmVzcyBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBhbmltYXRpb246IGxvYWRpbmcgMXMgZWFzZSBpbmZpbml0ZTtcbiAgfVxuICBAa2V5ZnJhbWVzIGxvYWRpbmcge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsb2FkZXItaW52ZXJ0ZWQoXG4gICRzaXplOiAkbG9hZGVyLWRlZmF1bHQtc2l6ZSxcbiAgJHRoaWNrbmVzczogJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzcyxcbiAgJGZvcmVncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkLFxuICAkYmFja2dyb3VuZDogJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQtaW52ZXJ0ZWRcbil7XG4gIEBpbmNsdWRlIGxvYWRlcihcbiAgICAkc2l6ZTogJHNpemUsXG4gICAgJHRoaWNrbmVzczogJHRoaWNrbmVzcyxcbiAgICAkZm9yZWdyb3VuZDogJGZvcmVncm91bmQsXG4gICAgJGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kXG4gICk7XG59XG4iCgldLAoJIm5hbWVzIjogW10sCgkibWFwcGluZ3MiOiAiQUlDQTs7R0FFRztBQVdIOztHQUVHO0FFaEJIOzt5REFFeUQ7QUxJekQsQUFBQSxJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QUdQRDs7R0FFRztBQVdIOztHQUVHO0FFaEJIOzt5REFFeUQ7QUVJekQsQUFBQSxJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QURORCxBQUFBLE9BQU8sQ0FBQztFQUNOLEtBQUssRUxETSxLQUFLO0VLRWhCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7Q0FrQmpCOztBRnNNTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VFM043QyxBQUFBLE9BQU8sQ0FBQztJQU1KLE9BQU8sRUFBRSxJQUFJO0dBZWhCOzs7QUFyQkQsQUFTRSxPQVRLLENBU0wsZ0JBQWdCLENBQUM7RUFDZixXQUFXLEVBQUUsS0FBSztDQUNuQjs7QUFYSCxBQWFFLE9BYkssQ0FhTCxxQ0FBcUM7QUFidkMsT0FBTyxDQWNMLDhCQUE4QixDQUFDO0VBQzdCLFdBQVcsRUFBQyxjQUFjO0NBQzNCOztBQWhCSCxBQWtCRSxPQWxCSyxDQWtCTCxNQUFNLENBQUM7RUFDTCxXQUFXLEVBQUMsZUFBZTtDQUM1Qjs7QUV0Qkg7O3lEQUV5RDtBQWN6RCxBQUFBLE9BQU8sQ0FBQTtFQUNMLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFFBQVEsRUFBRSxRQUFRO0NBZW5COztBSjRMTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VJN003QyxBQUFBLE9BQU8sQ0FBQTtJQU9ILFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLHFCQUFxQixFQUFFLE1BQU07R0FRaEM7OztBSjRMTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VJN00xQyxBQUFBLE9BQU8sQ0FBQTtJQWFILGdCQUFnQixFQUFFLElBQUk7SUFDdEIsZUFBZSxFQUFFLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsZUFBZTtHQUVwQzs7O0FBRUQsQUFBQSxPQUFPLENBQUM7RUFHTixNQUFNLEVBQUUsSUFBZ0Q7Q0E0RnpEOztBQXpGRyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBQ2pDLEFBQUEsT0FBTyxDQUFIO0lBQ0YsTUFBTSxFQW5DVyxJQUFJO0dBb0N0Qjs7O0FBS0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNqQyxBQUFBLE9BQU8sQ0FBSDtJQUNGLE1BQU0sRUF4Q1UsSUFBSTtHQXlDckI7OztBQWpCUCxBQXVCRSxPQXZCSyxDQXVCTCxFQUFFLENBQUM7RUFDRCxPQUFPLEVBQUMsQ0FBQztFQUNULE1BQU0sRUFBQyxDQUFDO0VBQ1IsUUFBUSxFQUFFLFFBQVE7Q0FJbkI7O0FKNEpLLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RUkxTDFDLEFBdUJFLE9BdkJLLENBdUJMLEVBQUUsQ0FBQztJQUtDLE9BQU8sRUFBRSxFQUFFO0dBRWQ7OztBQTlCSCxBQWdDRSxPQWhDSyxDQWdDTCxPQUFPLENBQUE7RUFDTCxPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFoRWMsSUFBSTtDQStFekI7O0FBYkcsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNqQyxBQUFBLE9BQU8sQ0FBQyxPQUFPLENBQVg7SUFDRixNQUFNLEVBakVTLElBQUk7R0FrRXBCOzs7QUFJSCxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBQ2pDLEFBQUEsT0FBTyxDQUFDLE9BQU8sQ0FBWDtJQUNGLE1BQU0sRUFyRVEsSUFBSTtHQXNFbkI7OztBQTlDVCxBQW1ERSxPQW5ESyxDQW1ETCxHQUFHLEFBQUEsS0FBSyxDQUFBO0VBQ04sSUFBSSxFQUFFLEdBQUc7RUFDVCxTQUFTLEVBQUUsZ0JBQWdCO0VBQzNCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxJQUFJO0VBQ1osTUFBTSxFQUFFLE9BQU87RUFDZixLQUFLLEVBQUUsa0JBQThDO0VBQ3JELFNBQVMsRUF6RlUsS0FBSztDQTBHekI7O0FBZEcsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNqQyxBQUFBLE9BQU8sQ0FBQyxHQUFHLEFBQUEsS0FBSyxDQUFaO0lBQ0YsU0FBUyxFQTNGSyxLQUFLO0dBNEZwQjs7O0FBS0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNqQyxBQUFBLE9BQU8sQ0FBQyxHQUFHLEFBQUEsS0FBSyxDQUFaO0lBQ0YsU0FBUyxFQWhHSSxLQUFLO0dBaUduQjs7O0FBeEVULEFBNkVFLE9BN0VLLENBNkVMLGNBQWMsRUE3RWhCLE9BQU8sQ0E2RVcsT0FBTyxDQUFBO0VBQ3JCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0NBS1Q7O0FKc0dLLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE9BQU87RUkxTDdDLEFBNkVFLE9BN0VLLENBNkVMLGNBQWMsRUE3RWhCLE9BQU8sQ0E2RVcsT0FBTyxDQUFBO0lBS2pCLE9BQU8sRUFBRSxJQUFJO0dBRWxCOzs7QUFwRkgsQUFzRkUsT0F0RkssQ0FzRkwsY0FBYyxDQUFDO0VBQ2IsS0FBSyxFQUFFLEtBQUs7RUFDWixLQUFLLEVBQUUsQ0FBQztDQUNUOztBQXpGSCxBQTJGRSxPQTNGSyxDQTJGTCxPQUFPLENBQUM7RUFDTixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxLQUFLO0NBQ2I7O0FBR0gsVUFBVSxDQUFWLFVBQVU7RUFDUixFQUFFO0lBQ0EsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixPQUFPLEVBQUUsS0FBSzs7RUFFaEIsSUFBSTtJQUNGLFNBQVMsRUFBRSxhQUFhOzs7O0FBSTVCLFVBQVUsQ0FBVixTQUFVO0VBQ1IsRUFBRTtJQUNBLFNBQVMsRUFBRSxhQUFhOztFQUUxQixJQUFJO0lBQ0YsU0FBUyxFQUFFLGlCQUFpQjs7OztBQW9CaEMsQUFBQSxjQUFjLENBQUM7RUFDYixPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRUFBRSxzQkFBc0I7RUFDbEMsT0FBTyxFQUFFLFlBQVk7Q0EwSHRCOztBTGpSQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxLQUFLLEVBQUUsSUFBSTtFS21KM0MsQUFBQSxjQUFjLENBQUM7SUFPWCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxPQUFPO0dBc0hwQjs7O0FKeEVPLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLFFBQVE7RUl0RDlDLEFBQUEsY0FBYyxDQUFDO0lBT1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsT0FBTztHQXNIcEI7OztBQTlIRCxBQVVFLGNBVlksQ0FVWixhQUFhLENBQUE7RU41S2IsR0FBRyxFQUFFLEdBQUc7RUFDUixTQUFTLEVBQUUsZ0JBQWdCO0VNOEt6QixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsQ0FBQztFQUNQLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLFVBQVU7RUFDbEIsU0FBUyxFQUFFLGVBQWU7Q0FTM0I7O0FBMUJILEFBbUJJLGNBbkJVLENBVVosYUFBYSxDQVNYLGlCQUFpQixDQUFBO0VBQ2YsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFyQkwsQUF1QkksY0F2QlUsQ0FVWixhQUFhLENBYVgsY0FBYyxDQUFBO0VBQ1osTUFBTSxFQUFFLENBQUM7Q0FDVjs7QUF6QkwsQUE0QkUsY0E1QlksQ0E0QlosYUFBYSxDQUFBO0VBQ1gsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsY0FBYztFQUN6QixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLE1BQU07RUFFZix5QkFBeUIsRUFBRSxXQUFXO0VBQ3RDLGtCQUFrQixFQXZDUSxLQUFLO0VBd0MvQix5QkFBeUIsRUFBRSxDQUFDO0VBQzVCLG1CQUFtQixFQUFFLFFBQVE7Q0FzRjlCOztBQTdISCxBQXlDSSxjQXpDVSxDQTRCWixhQUFhLEFBYVYsc0JBQXNCLENBQUE7RUFDckIsT0FBTyxFQUFFLGVBQWU7Q0FDekI7O0FBM0NMLEFBNkNJLGNBN0NVLENBNEJaLGFBQWEsQUFpQlYsZ0JBQWdCLENBQUE7RUFDZixPQUFPLEVBQUUsS0FBSztFQUNkLGNBQWMsRUFBRSxTQUFTO0NBQzFCOztBQWhETCxBQWtESSxjQWxEVSxDQTRCWixhQUFhLEFBc0JWLGlCQUFpQixDQUFBO0VBQ2hCLGNBQWMsRUFBRSxVQUFVO0VBQzFCLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBckRMLEFBdURJLGNBdkRVLENBNEJaLGFBQWEsQUEyQlYsZUFBZSxDQUFBO0VBQ2QsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUF6REwsQUEyREksY0EzRFUsQ0E0QlosYUFBYSxBQStCVixnQkFBZ0IsQ0FBQTtFQUNmLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBQTdETCxBQStESSxjQS9EVSxDQTRCWixhQUFhLENBbUNYLEVBQUUsQ0FBQTtFQUNBLFFBQVEsRUFBRSxNQUFNO0NBV2pCOztBQTNFTCxBQWtFTSxjQWxFUSxDQTRCWixhQUFhLENBbUNYLEVBQUUsQUFHQyxnQkFBZ0IsRUFsRXZCLGNBQWMsQ0E0QlosYUFBYSxDQW1DWCxFQUFFLEFBR29CLGdCQUFnQixDQUFBO0VBQ2xDLFVBQVUsRUFBRSxDQUFDO0VBQ2IsVUFBVSxFQUFFLFVBQVUsQ0F0RUEsS0FBSyxDQXNFeUIsd0JBQXFCO0NBQzFFOztBQXJFUCxBQXVFTSxjQXZFUSxDQTRCWixhQUFhLENBbUNYLEVBQUUsQUFRQyxpQkFBaUIsRUF2RXhCLGNBQWMsQ0E0QlosYUFBYSxDQW1DWCxFQUFFLEFBUXFCLGVBQWUsQ0FBQTtFQUNsQyxVQUFVLEVBQUUsTUFBTTtFQUNsQixVQUFVLEVBQUUsVUFBVSxDQTNFQSxLQUFLLENBMkV5Qix3QkFBcUI7Q0FDMUU7O0FBMUVQLEFBOEVNLGNBOUVRLENBNEJaLGFBQWEsQ0FpRFgsRUFBRSxDQUNBLENBQUMsQ0FBQTtFQUNDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsT0FBTyxFQUFFLGVBQWU7Q0FRekI7O0FBekZQLEFBbUZRLGNBbkZNLENBNEJaLGFBQWEsQ0FpRFgsRUFBRSxDQUNBLENBQUMsQUFLRSxNQUFNLENBQUM7RUFDTCxhQUFhLEVBQUUsT0FBTztFQUN0QixVQUFVLEVBQUUsT0FBTztFQUNuQixLQUFLLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBQXhGVCxBQTBGTSxjQTFGUSxDQTRCWixhQUFhLENBaURYLEVBQUUsR0FhRSxDQUFDLENBQUE7RUFDRCxXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsSUFBSTtDQUNyQjs7QUE3RlAsQUFnR0ksY0FoR1UsQ0E0QlosYUFBYSxHQW9FVCxFQUFFLENBQUE7RUFDRixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQWxHTCxBQW9HSSxjQXBHVSxDQTRCWixhQUFhLEdBd0VULEVBQUUsR0FBRyxDQUFDLENBQUE7RUFDTixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUF0R0wsQUF3R0ksY0F4R1UsQ0E0QlosYUFBYSxBQTRFVixNQUFNLENBQUE7RUFDTCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixHQUFHLEVBQUUsQ0FBQztFQUNOLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsT0FBTyxFQUFFLElBQUk7RUFDYixhQUFhLEVBQUUsVUFBVTtDQUMxQjs7QUFqSEwsQUFxSE0sY0FySFEsQ0E0QlosYUFBYSxDQXdGWCxDQUFDLEFBQUEsV0FBVyxDQUNWLElBQUksQ0FBQTtFQUNGLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBdkhQLEFBeUhNLGNBekhRLENBNEJaLGFBQWEsQ0F3RlgsQ0FBQyxBQUFBLFdBQVcsQUFLVCxNQUFNLENBQUE7RUFDTCxPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUtQLEFBQUEsSUFBSSxDQUFDO0VBQ0gsWUFBWSxFQUFFLEdBQUc7RUFBRSx1Q0FBdUM7Q0EwSzNEOztBQXZLRyxBQUFBLElBQUksQUFBQSxXQUFXLENBQUMsSUFBSSxDQUFBO0VBQ2xCLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBTHpSSCxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxLQUFLLEVBQUUsSUFBSTtFS21SM0MsQUFBQSxJQUFJLENBQUM7SUFVRCxZQUFZLEVBQUUsQ0FBQztHQWlLbEI7OztBSnJQTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0VJMEU5QyxBQUFBLElBQUksQ0FBQztJQVVELFlBQVksRUFBRSxDQUFDO0dBaUtsQjs7O0FBM0tELEFBYUUsSUFiRSxDQWFGLEVBQUUsQ0FBQyxLQUFLLENBQUE7RUFDTixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsQ0FBQztFQUNSLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBakJILEFBbUJFLElBbkJFLENBbUJGLEVBQUUsQUFBQSxRQUFRO0FBbkJaLElBQUksQ0FvQkYsRUFBRSxBQUFBLE1BQU0sQ0FBQTtFQUNOLFFBQVEsRUFBRSxRQUFRO0NBQ25COztBQXRCSCxBQXdCRSxJQXhCRSxDQXdCRixFQUFFLEFBQUEsUUFBUSxDQUFDLEtBQUssQ0FBQTtFQUNkLFVBQVUsRUFBRSw2Q0FBNkMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVO0VBQ3hGLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUE1QkgsQUE2QkUsSUE3QkUsQ0E2QkYsRUFBRSxBQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUE7RUFDWixVQUFVLEVBQUUsMkNBQTJDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVTtFQUN0RixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osWUFBWSxFQUFFLEdBQUc7Q0FDbEI7O0FKNUdLLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUztFSTBFcEMsQUFxQ0UsSUFyQ0UsQ0FxQ0YsTUFBTSxDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFHM0IsWUFBWSxFQUFFLEdBQUc7SUFDakIsYUFBYSxFQUFFLElBQUk7R0FNeEI7RUEvQ0gsQUEyQ1EsSUEzQ0osQ0FxQ0YsTUFBTSxDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLFFBQVEsQ0FBQyxDQUFDLENBTTFCLGFBQWEsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0dBQ1o7OztBQTdDVCxBQWtERSxJQWxERSxHQWtEQSxvQkFBb0IsQ0FBQTtFQUNwQixPQUFPLEVBQUUsSUFBSTtDQWlDZDs7QUx2V0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUk7RUttUjNDLEFBa0RFLElBbERFLEdBa0RBLG9CQUFvQixDQUFBO0lBR2xCLE9BQU8sRUFBRSxLQUFLO0dBK0JqQjs7O0FKOUpLLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLFFBQVE7RUkwRTlDLEFBa0RFLElBbERFLEdBa0RBLG9CQUFvQixDQUFBO0lBR2xCLE9BQU8sRUFBRSxLQUFLO0dBK0JqQjs7O0FBM0JHLEFBQUEsSUFBSSxBQUFBLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBdkI7RUFDekIsT0FBTyxFQUFFLGVBQWU7Q0FDekI7O0FBM0RQLEFBOERJLElBOURBLEdBa0RBLG9CQUFvQixDQVlwQixDQUFDLENBQUM7RUFDQSxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsS0FBSztDQW1CZjs7QUFuRkwsQUFpRU0sSUFqRUYsR0FrREEsb0JBQW9CLENBWXBCLENBQUMsQ0FHQyxJQUFJLENBQUE7RUFDRixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQW5FUCxBQW9FTSxJQXBFRixHQWtEQSxvQkFBb0IsQ0FZcEIsQ0FBQyxBQU1FLE1BQU0sQ0FBQTtFTnRXWCxHQUFHLEVBQUUsR0FBRztFQUNSLFNBQVMsRUFBRSxnQkFBZ0I7RU13SjNCLEtBQUssRUFObUIsSUFBSTtFQU81QixNQUFNLEVBTm1CLElBQUk7RUFPN0IsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixhQUFhLEVBQUUsR0FBRztFQTRNWixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFyTmUsSUFBSTtFQXNOeEIsZ0JBQWdCLEVBQUUsZ0NBQWdDO0VBQ2xELGlCQUFpQixFQUFFLFNBQVM7RUFDNUIsZUFBZSxFQUFFLE9BQU87RUFDeEIsbUJBQW1CLEVBQUUsYUFBYTtDQU1uQzs7QUo1SkMsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFSTBFMUMsQUFvRU0sSUFwRUYsR0FrREEsb0JBQW9CLENBWXBCLENBQUMsQUFNRSxNQUFNLENBQUE7SUFXSCxLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxJQUEyRDtHQUVwRTs7O0FBbEZQLEFBdUZFLElBdkZFLENBdUZGLHFCQUFxQixFQXZGdkIsSUFBSSxDQXVGcUIsV0FBVyxDQUFBO0VBQ2hDLE9BQU8sRUFBRSxJQUFJO0NBV2Q7O0FBUkcsQUFBQSxJQUFJLEFBQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUF4QztFQUNqQixPQUFPLEVBQUUsS0FBSztDQUNmOztBQUVELEFBQUEsSUFBSSxBQUFBLGtCQUFrQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUF4QztFQUN6QixPQUFPLEVBQUUsZUFBZTtDQUN6Qjs7QUFqR1AsQUE0R0UsSUE1R0UsQ0E0R0YsQ0FBQyxBQUFBLFdBQVcsQ0FBQztFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxLQUFLO0NBZWY7O0FBN0hILEFBZ0hJLElBaEhBLENBNEdGLENBQUMsQUFBQSxXQUFXLENBSVYsSUFBSSxDQUFBO0VBQ0YsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFsSEwsQUFtSEksSUFuSEEsQ0E0R0YsQ0FBQyxBQUFBLFdBQVcsQUFPVCxNQUFNLENBQUE7RUFDTCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFqQlUsSUFBSTtFQWtCbkIsTUFBTSxFQWpCUSxJQUFJO0VBa0JsQixpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLGVBQWUsRUFwQkEsSUFBSSxDQUNMLElBQUk7RUFvQmxCLG1CQUFtQixFQUFFLGFBQWE7RUFDbEMsZ0JBQWdCLEVBQUUseUNBQXlDO0NBQzVEOztBQTVITCxBQWdJRSxJQWhJRSxDQWdJRixLQUFLLENBQUMsQ0FBQyxBQUFBLFdBQVcsQ0FBQTtFQU9oQixPQUFPLEVBTkEsSUFBSSxDQUtILElBQWlDLENBTGxDLElBQUksQ0FJSixJQUFpQyxDQUVMLFVBQVU7Q0FROUM7O0FBL0lILEFBeUlJLElBeklBLENBZ0lGLEtBQUssQ0FBQyxDQUFDLEFBQUEsV0FBVyxBQVNmLE1BQU0sQ0FBQTtFTmphVCxHQUFHLEVBQUUsR0FBRztFQUNSLElBQUksRUFBRSxHQUFHO0VBQ1QsU0FBUyxFQUFFLGdCQUFnQixDQUFFLGdCQUFnQjtDTWlhMUM7O0FBM0lMLEFBNElJLElBNUlBLENBZ0lGLEtBQUssQ0FBQyxDQUFDLEFBQUEsV0FBVyxBQVlmLE1BQU0sQUFBQSxNQUFNLENBQUE7RUFuQ2IsZ0JBQWdCLEVBQUUsa0RBQWtEO0NBcUNuRTs7QUE5SUwsQUFpSkUsSUFqSkUsQ0FpSkYsS0FBSyxDQUFDLEVBQUUsQUFBQSxXQUFXLENBQUMsQ0FBQyxBQUFBLFdBQVcsQUFBQSxNQUFNLENBQUE7RUF4Q3BDLGdCQUFnQixFQUFFLGtEQUFrRDtDQTBDckU7O0FBbkpILEFBc0pFLElBdEpFLEdBc0pBLENBQUMsQUFBQSxXQUFXLENBQUE7RUFDWixPQUFPLEVBQUUsSUFBSTtDQW1CZDs7QUw3YkQsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUk7RUttUjNDLEFBc0pFLElBdEpFLEdBc0pBLENBQUMsQUFBQSxXQUFXLENBQUE7SUFHVixPQUFPLEVBQUUsS0FBSztHQWlCakI7OztBSnBQSyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0VJMEU5QyxBQXNKRSxJQXRKRSxHQXNKQSxDQUFDLEFBQUEsV0FBVyxDQUFBO0lBR1YsT0FBTyxFQUFFLEtBQUs7R0FpQmpCOzs7QUpwUEssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFSTBFOUMsQUFzSkUsSUF0SkUsR0FzSkEsQ0FBQyxBQUFBLFdBQVcsQ0FBQTtJQVFWLE9BQU8sRUFBRSxlQUFlO0dBWTNCOzs7QUExS0gsQUFpS0ksSUFqS0EsR0FzSkEsQ0FBQyxBQUFBLFdBQVcsQUFXWCxNQUFNLENBQUE7RU5uY1QsR0FBRyxFQUFFLEdBQUc7RUFDUixTQUFTLEVBQUUsZ0JBQWdCO0VNd0ozQixLQUFLLEVBTm1CLElBQUk7RUFPNUIsTUFBTSxFQU5tQixJQUFJO0VBTzdCLGdCQUFnQixFQUFFLE9BQU87RUFDekIsYUFBYSxFQUFFLEdBQUc7RUF5U2QsS0FBSyxFQUFFLElBQTJEO0NBTW5FOztBSm5QRyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VJMEUxQyxBQWlLSSxJQWpLQSxHQXNKQSxDQUFDLEFBQUEsV0FBVyxBQVdYLE1BQU0sQ0FBQTtJQUtILEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLEtBQWlFO0dBRTFFOzs7QUw1YkgsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUk7RUtpYzNDLEFBQUEsS0FBSyxDQUFBO0lBR0QsT0FBTyxFQUFFLElBQUk7R0FtQmhCOzs7QUo5UU8sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFSXdQOUMsQUFBQSxLQUFLLENBQUE7SUFHRCxPQUFPLEVBQUUsSUFBSTtHQW1CaEI7OztBQXRCRCxBQU1FLEtBTkcsQ0FNSCxhQUFhLENBQUM7RUFDWixXQUFXLEVBQUMsY0FBYztFQUMxQixPQUFPLEVBQUMsWUFBWTtFQUNwQixLQUFLLEVBQUMsSUFBSTtFQUNWLE1BQU0sRUFBQyxJQUFJO0VBQ1gsUUFBUSxFQUFDLFFBQVE7RUFDakIsR0FBRyxFQUFDLEdBQUc7Q0FRUjs7QUo1UUssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFSXdQOUMsQUFjSSxLQWRDLENBTUgsYUFBYSxBQVFWLE9BQU8sQ0FBQTtJQUVKLE9BQU8sRUFBRSxJQUFJO0dBRWhCOzs7QUN2ZUw7O3lEQUV5RDtBQUV6RCxBQUFBLE9BQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxHQUFHO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0NBaUdoQjs7QUxvSE8sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFS3pON0MsQUFBQSxPQUFPLENBQUM7SUFPSixPQUFPLEVBQUUsSUFBSTtHQThGaEI7OztBQXJHRCxBQVVFLE9BVkssQ0FVTCxDQUFDLENBQUM7RUFDQSxLQUFLLEVBQUUsS0FBSztFQUNaLGVBQWUsRUFBRSxJQUFJO0NBQ3RCOztBQWJILEFBZ0JJLE9BaEJHLENBZUwsTUFBTSxDQUNKLEVBQUUsQ0FBQztFQUNELFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFlBQVksRUFBRSxDQUFDO0VBQ2YsTUFBTSxFQUFFLEtBQUs7Q0FDZDs7QUFwQkwsQUFzQkksT0F0QkcsQ0FlTCxNQUFNLENBT0osRUFBRSxDQUFDO0VBQ0QsT0FBTyxFQUFDLE1BQU07RUFDZCxZQUFZLEVBQUMsR0FBRztFQUNoQixhQUFhLEVBQUMsR0FBRztDQUtsQjs7QUE5QkwsQUEyQk0sT0EzQkMsQ0FlTCxNQUFNLENBT0osRUFBRSxDQUtBLENBQUMsQUFBQSxNQUFNLENBQUE7RUFDTCxlQUFlLEVBQUUsU0FBUztDQUMzQjs7QUE3QlAsQUFpQ0UsT0FqQ0ssQ0FpQ0wsRUFBRSxBQUFBLGNBQWMsQ0FBQTtFQUNkLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsU0FBUyxFQUFFLGdCQUFnQjtDQThENUI7O0FObkZELE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLEtBQUssRUFBRSxJQUFJO0VNaEIzQyxBQWlDRSxPQWpDSyxDQWlDTCxFQUFFLEFBQUEsY0FBYyxDQUFBO0lBT1osT0FBTyxFQUFFLElBQUk7R0EyRGhCOzs7QUxzSEssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFS3pOOUMsQUFpQ0UsT0FqQ0ssQ0FpQ0wsRUFBRSxBQUFBLGNBQWMsQ0FBQTtJQU9aLE9BQU8sRUFBRSxJQUFJO0dBMkRoQjs7O0FBbkdILEFBMkNJLE9BM0NHLENBaUNMLEVBQUUsQUFBQSxjQUFjLENBVWQsRUFBRSxDQUFDO0VBQ0QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0VBQ1YsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRUFBRSxJQUFJO0NBU2pCOztBQTNETCxBQW9ETSxPQXBEQyxDQWlDTCxFQUFFLEFBQUEsY0FBYyxDQVVkLEVBQUUsQ0FTQSxDQUFDLENBQUM7RUFDQSxLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsZ0JBQWdCO0VBQzdCLGVBQWUsRUFBRSxJQUFJO0NBQ3RCOztBQTFEUCxBQTZESSxPQTdERyxDQWlDTCxFQUFFLEFBQUEsY0FBYyxDQTRCZCxhQUFhLENBQUM7RUFDWixXQUFXLEVBQUMsY0FBYztFQUMxQixPQUFPLEVBQUMsWUFBWTtFQUNwQixLQUFLLEVBQUMsSUFBSTtFQUNWLE1BQU0sRUFBQyxJQUFJO0VBQ1gsUUFBUSxFQUFDLFFBQVE7RUFDakIsR0FBRyxFQUFDLEdBQUc7Q0FPUjs7QUwrSUcsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFS3pOOUMsQUFxRU0sT0FyRUMsQ0FpQ0wsRUFBRSxBQUFBLGNBQWMsQ0E0QmQsYUFBYSxBQVFWLE9BQU8sQ0FBQTtJQUVKLE9BQU8sRUFBRSxJQUFJO0dBRWhCOzs7QUF6RVAsQUE0RUksT0E1RUcsQ0FpQ0wsRUFBRSxBQUFBLGNBQWMsQ0EyQ2QsU0FBUyxDQUFDO0VBQ1IsVUFBVSxFQUFDLHlDQUF5QyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVU7Q0FDcEY7O0FBOUVMLEFBZ0ZJLE9BaEZHLENBaUNMLEVBQUUsQUFBQSxjQUFjLENBK0NkLFVBQVUsQ0FBQztFQUNULFVBQVUsRUFBQywwQ0FBMEMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVO0NBQ3JGOztBQWxGTCxBQW9GSSxPQXBGRyxDQWlDTCxFQUFFLEFBQUEsY0FBYyxDQW1EZCxRQUFRLENBQUM7RUFDUCxVQUFVLEVBQUMsd0NBQXdDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVTtDQUNuRjs7QUF0RkwsQUF3RkksT0F4RkcsQ0FpQ0wsRUFBRSxBQUFBLGNBQWMsQ0F1RGQsUUFBUSxDQUFDO0VBQ1AsVUFBVSxFQUFDLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVU7Q0FDbkY7O0FBMUZMLEFBNEZJLE9BNUZHLENBaUNMLEVBQUUsQUFBQSxjQUFjLENBMkRkLFFBQVEsQ0FBQztFQUNQLFVBQVUsRUFBQyx3Q0FBd0MsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVO0NBQ25GOztBQTlGTCxBQWdHSSxPQWhHRyxDQWlDTCxFQUFFLEFBQUEsY0FBYyxDQStEZCxVQUFVLENBQUM7RUFDVCxVQUFVLEVBQUMsMENBQTBDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVTtDQUNyRjs7QUFLTCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLE1BQU0sRUFBQyxDQUFDO0VBQ1IsY0FBYyxFQUFDLElBQUk7Q0FLcEI7O0FBUEQsQUFJRSxpQkFKZSxDQUlmLEdBQUcsQUFBQSxLQUFLLENBQUE7RUFDTixPQUFPLEVBQUMsTUFBTTtDQUNmOztBQ2pISDs7eURBRXlEO0FBQ3pELEFBQUEsSUFBSSxBQUFBLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxBQUFBLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLElBQUksQUFBQSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxBQUFBLFFBQVEsQ0FBQyxDQUFDO0FBQ3pDLElBQUksQUFBQSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxBQUFBLFVBQVUsQ0FBQyxDQUFDO0FBQzdDLElBQUksQUFBQSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQUFBQSxNQUFNLENBQUMsQ0FBQztBQUNyQyxJQUFJLEFBQUEsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQUFBQSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pELElBQUksQUFBQSw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsRUFBRSxBQUFBLHFCQUFxQixDQUFDLENBQUM7QUFDbkUsSUFBSSxBQUFBLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEFBQUEsY0FBYyxDQUFDLENBQUM7QUFDckQsSUFBSSxBQUFBLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEFBQUEsV0FBVyxDQUFDLENBQUM7QUFDL0MsSUFBSSxBQUFBLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLEFBQUEsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO0VBQ3ZELEtBQUssRUFBRSxPQUFPO0VBQ2QsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBR0Q7O3lEQUV5RDtBQUV6RCxBQUFBLElBQUksQUFBQSxhQUFhLENBQUMsRUFBRSxBQUFBLFVBQVUsQ0FBQyxFQUFFLEFBQUEsYUFBYSxDQUFDLENBQUM7QUFDaEQsSUFBSSxBQUFBLGtCQUFrQixDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLGtCQUFrQixDQUFDLENBQUM7QUFDMUQsSUFBSSxBQUFBLGtCQUFrQixDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLGtCQUFrQixDQUFDLENBQUM7QUFDMUQsSUFBSSxBQUFBLG1CQUFtQixDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLG1CQUFtQixDQUFDLENBQUM7QUFDNUQsSUFBSSxBQUFBLGFBQWEsQ0FBQyxFQUFFLEFBQUEsVUFBVSxDQUFDLEVBQUUsQUFBQSxhQUFhLENBQUMsQ0FBQztBQUNoRCxJQUFJLEFBQUEsWUFBWSxDQUFDLEVBQUUsQUFBQSxVQUFVLENBQUMsRUFBRSxBQUFBLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLElBQUksQUFBQSxZQUFZLENBQUMsRUFBRSxBQUFBLFVBQVUsQ0FBQyxFQUFFLEFBQUEsWUFBWSxDQUFDLENBQUM7QUFDOUMsSUFBSSxBQUFBLGFBQWEsQ0FBQyxFQUFFLEFBQUEsVUFBVSxDQUFDLEVBQUUsQUFBQSxhQUFhLENBQUMsQ0FBQztBQUNoRCxJQUFJLEFBQUEsa0JBQWtCLENBQUMsRUFBRSxBQUFBLFVBQVUsQ0FBQyxFQUFFLEFBQUEsa0JBQWtCLENBQUMsQ0FBQyxDQUFBO0VBQ3hELG1CQUFtQixFQUFFLFVBQVU7RUFDL0IsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUNqQ0Q7O3lEQUV5RDtBQUV6RCxNQUFNLENBQUMsS0FBSztFQUVWLEFBQUEsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUNiLFVBQVUsRUFBRSxlQUFlO0dBQzVCO0VBRUQsQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUM7SUFDcEUsT0FBTyxFQUFFLGVBQWU7R0FDekI7RUFDRCxBQUFBLENBQUMsQ0FBQztJQUNBLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLEtBQUssRUFBRSxLQUNUO0dBQUM7RUFDRCxBQUFBLFdBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxnQkFBZ0I7R0FDMUI7RUFDRCxBQUFBLGtCQUFrQixDQUFDO0lBQ2pCLE9BQU8sRUFBRSxpQkFBaUI7R0FDM0I7RUFFRCxBQUFBLE9BQU8sQ0FBQztJQUNOLE1BQU0sRUFBRSxPQUFPO0lBQ2YsS0FBSyxFQUFFLEtBQUs7SUFDWixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtHQU1WO0VBVkQsQUFNRSxPQU5LLENBTUwsR0FBRyxBQUFBLEtBQUssQ0FBQztJQUNQLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLElBQUk7R0FDYjtFQUdILEFBQUEsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FDWDtHQUFDOzs7QUNwQ0gsQUFBQSxZQUFZLENBQUE7RUFDVixPQUFPLEVBQUUsSUFBSTtDQWFkOztBQVhHLEFBQUEsSUFBSSxBQUFBLFVBQVUsQ0FBQyxZQUFZLENBQVI7RUFDakIsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUFMTCxBQVNJLFlBVFEsQ0FRViwwQkFBMEIsQUFDdkIsUUFBUSxDQUFBO0VBRVAsT0FBTyxFQUFFLFVBQVU7Q0FDcEI7O0FDR0QsQUFBQSxJQUFJLEFBQUEsSUFBSyxDQUFBLFdBQVcsRUFBRSxZQUFZLENBQUMsMEJBQTBCLEFBQUEsUUFBUSxDQUExQztFQUN6QixRQUFRLEVBQUUsUUFBUTtDQUNuQjs7QURqQkwsQUNvQkUsWURwQlUsQ0FRViwwQkFBMEIsQUFDdkIsUUFBUSxBQ1dWLE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEdBQUc7RUFDUixJQUFJLEVBQUUsR0FBRztFQUNULFVBQVUsRUFBSSxLQUFzQjtFQUNwQyxXQUFXLEVBQUksS0FBc0I7RUFDckMsS0FBSyxFQTNCYSxJQUFJO0VBNEJ0QixNQUFNLEVBNUJZLElBQUk7RUE2QnRCLGFBQWEsRUE3QkssSUFBSTtFQThCdEIsTUFBTSxFQTdCaUIsR0FBRyxDQTZCUCxLQUFLLENBM0JBLHlCQUFzQjtFQTRCOUMsZ0JBQWdCLEVBN0JRLEtBQUs7RUE4QjdCLFNBQVMsRUFBRSx3QkFBd0I7Q0FDcEM7O0FBQ0QsVUFBVSxDQUFWLE9BQVU7RUFDUixFQUFFO0lBQ0EsU0FBUyxFQUFFLFlBQVk7O0VBRXpCLElBQUk7SUFDRixTQUFTLEVBQUUsY0FBYzs7OztBZC9CL0I7O3lEQUV5RDtBQUN6RCxBQUFBLElBQUksQ0FBQztFQUNILE1BQU0sRUFBQyxDQUFDO0VBQ1IsT0FBTyxFQUFDLENBQUM7RUFDVCxXQUFXLEVBQUUsa0NBQWtDO0VBQy9DLHFCQUFxQixFQUFFLEtBQUs7RUFDNUIsZ0JBQWdCLEVBQUUsSUFBSTtDQWtCdkI7O0FLeUxPLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RUxoTjFDLEFBQUEsSUFBSSxDQUFDO0lBVUQsZUFBZSxFQUFFLEtBQUs7SUFDdEIscUJBQXFCLEVBQUUsTUFBTTtHQVloQzs7O0FLeUxPLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE9BQU87RUxoTjdDLEFBQUEsSUFBSSxDQUFDO0lBZUQsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixlQUFlLEVBQUUsQ0FBQztHQU9yQjs7O0FBdkJELEFBbUJFLElBbkJFLEFBbUJELFdBQVcsQ0FBQztFQUNYLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQUlILEFBQUEsUUFBUSxDQUFDO0VBQ1AsTUFBTSxFQUFDLENBQUM7Q0FZVDs7QUFURyxBQUFBLElBQUksQUFBQSxJQUFLLENBQUEsV0FBVyxFQUFFLFFBQVEsQ0FBSjtFQUN4QixRQUFRLEVBQUUsUUFBUTtDQUNuQjs7QUtnTEcsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTHRMN0MsQUFBQSxRQUFRLENBQUM7SUFVTCxZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDO0dBRW5COzs7QUFFRCxBQUFBLEtBQUssQ0FBQztFQUNKLEtBQUssRUVyRE0sS0FBSztFRnNEaEIsTUFBTSxFQUFFLElBQUk7Q0FLYjs7QUtnS08sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTHZLN0MsQUFBQSxLQUFLLENBQUM7SUFLRixNQUFNLEVBQUUsQ0FBQztHQUVaOzs7QUFFRCxBQUFBLFdBQVcsQ0FBQTtFQUNULEtBQUssRUU5RE0sS0FBSztFRitEaEIsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUsySk8sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTHhKM0MsQUFBQSxLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQ2pCLEtBQUssRUFBRSxJQUFJO0dBQ1o7OztBQUlILEFBQUEsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsUUFBZ0I7Q0FTN0I7O0FLdUlPLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE9BQU87RUxsSjdDLEFBQUEsUUFBUSxDQUFDO0lBS0wsT0FBTyxFQUFFLEdBQUc7SUFDWixVQUFVLEVBQUUsS0FBSztHQUtwQjs7O0FLdUlPLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RUxsSjFDLEFBQUEsUUFBUSxDQUFDO0lBU0wsVUFBVSxFQUFFLHdCQUFxQjtHQUVwQzs7O0FBRUQsQUFBQSxDQUFDLENBQUM7RUFDQSxLQUFLLEVBQUUsT0FBTztDQUNmOztBQUVELEFBQUEsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQztFQUNiLFdBQVcsRUFBRSxPQUFPO0VBQ3BCLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQUVELEFBQUEsRUFBRSxDQUFDO0VBQ0QsWUFBWSxFQUFFLFVBQVU7RUFDeEIsVUFBVSxFQUFFLEdBQUc7RUFDZixhQUFhLEVBQUUsR0FBRztDQVNuQjs7QUtnSE8sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTDVIN0MsQUFJRSxFQUpBLEFBSUMsSUFBSyxDQUFBLGVBQWUsRUFBQztJQUVsQixTQUFTLEVBQUUsZ0JBQWdCO0dBSzlCOzs7QUtpSEssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTDVIN0MsQUFJRSxFQUpBLEFBSUMsSUFBSyxDQUFBLGVBQWUsRUFBQztJQUtsQixTQUFTLEVBQUUsZ0JBQWdCO0dBRTlCOzs7QUFHSCxBQUFBLEVBQUUsQ0FBQztFQUNELFlBQVksRUFBRSxVQUFVO0VBQ3hCLGFBQWEsRUFBRSxjQUFjO0VBQzdCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGFBQWEsRUFBRSxHQUFHO0NBU25COztBS2lHTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VMOUc3QyxBQUtFLEVBTEEsQUFLQyxJQUFLLENBQUEsZUFBZSxFQUFFO0lBRW5CLFNBQVMsRUFBRSxnQkFBZ0I7R0FLOUI7OztBS2tHSyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VMOUc3QyxBQUtFLEVBTEEsQUFLQyxJQUFLLENBQUEsZUFBZSxFQUFFO0lBS25CLFNBQVMsRUFBRSxjQUFjO0dBRTVCOzs7QUFHSCxBQUFBLEVBQUUsQ0FBQztFQUNELFVBQVUsRUFBRSxJQUFJO0NBU2pCOztBS3FGTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VML0Y3QyxBQUVFLEVBRkEsQUFFQyxJQUFLLENBQUEsZUFBZSxFQUFDO0lBRWxCLFNBQVMsRUFBRSxjQUFjO0dBSzVCOzs7QUtzRkssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTC9GN0MsQUFFRSxFQUZBLEFBRUMsSUFBSyxDQUFBLGVBQWUsRUFBQztJQUtsQixTQUFTLEVBQUUsZ0JBQWdCO0dBRTlCOzs7QUtzRkssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsT0FBTztFTG5GN0MsQUFDRSxDQURELEFBQ0UsSUFBSyxDQUFBLGVBQWUsR0FEckIsQ0FBQyxBQUNBLElBQUssQ0FBQSxlQUFlLEVBQUU7SUFFbkIsU0FBUyxFQUFFLGdCQUFnQjtHQUU5Qjs7O0FLOEVLLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE9BQU87RUwzRTdDLEFBQ0UsSUFERyxDQUFBLEVBQUUsSUFBSSxFQUFFLEFBQ1YsSUFBSyxDQUFBLGVBQWUsR0FEVCxFQUFFLEdBQUcsRUFBRSxBQUNsQixJQUFLLENBQUEsZUFBZSxFQUFFO0lBRW5CLFNBQVMsRUFBRSxnQkFBZ0I7R0FFOUI7OztBQUdILEFBQUEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDVCxlQUFlLEVBQUUsU0FBUztFQUMxQiwyQkFBMkI7RUFDM0IsNkJBQTZCLEVBQUUsSUFBSTtFQUNuQyw0QkFBNEIsRUFBRSxJQUFJO0VBQ2xDLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQUVELEFBQUEsRUFBRSxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDO0VBQ3ZCLFVBQVUsRUFBRSxDQUFDO0NBQ2Q7O0FJaEpDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLEtBQUssRUFBRSxJQUFJO0VKbUozQyxBQUNFLE1BREksQUFDSCxJQUFLLENBQUEsZUFBZSxFQUFFO0lBRW5CLE9BQU8sRUFBRSxHQUFHO0dBRWY7OztBS2lESyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0VMdEQ5QyxBQUNFLE1BREksQUFDSCxJQUFLLENBQUEsZUFBZSxFQUFFO0lBRW5CLE9BQU8sRUFBRSxHQUFHO0dBRWY7OztBQUlILEFBQUEsUUFBUSxDQUFDLEVBQUUsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0VBQ3RCLFVBQVUsRUFBRSxHQUFHO0VBQ2YsYUFBYSxFQUFFLEdBQUc7Q0FDbkI7O0FBRUQsQUFBQSxRQUFRLENBQUMsRUFBRSxFQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7RUFDdEIsWUFBWSxFQUFFLEdBQUc7RUFDakIsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBRUQsQUFBQSxZQUFZLENBQUM7RUFDWCxLQUFLLEVBQUUsS0FBSztDQUNiOztBQUVELEFBQUEsV0FBVyxDQUFDO0VBQ1YsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFFRCxBQUFBLE1BQU0sQ0FBQztFQUNMLEtBQUssRUFBRSxJQUFJO0NBQ1o7O0FBRUQsQUFBQSxPQUFPLENBQUE7RUFDTCxPQUFPLEVBQUUsZUFBZTtDQUN6Qjs7QUFFRCx3Q0FBd0M7QWV6THBDLEFBQUEsSUFBSSxBQUFBLElBQUssQ0FBQSxXQUFXLEVBQUUsT0FBTyxDQUFGO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0NBQ25COztBZndMTCxBZXJMRSxPZnFMSyxBZXJMSixPQUFPLENBQUM7RUFDUCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxVQUFVLEVBQUksS0FBc0I7RUFDcEMsV0FBVyxFQUFJLEtBQXNCO0VBQ3JDLEtBQUssRUEzQmEsSUFBSTtFQTRCdEIsTUFBTSxFQTVCWSxJQUFJO0VBNkJ0QixhQUFhLEVBN0JLLElBQUk7RUE4QnRCLE1BQU0sRUE3QmlCLEdBQUcsQ0E2QlAsS0FBSyxDQTNCQSx5QkFBc0I7RUE0QjlDLGdCQUFnQixFQTdCUSxLQUFLO0VBOEI3QixTQUFTLEVBQUUsd0JBQXdCO0NBQ3BDOztBQUNELFVBQVUsQ0FBVixPQUFVO0VBQ1IsRUFBRTtJQUNBLFNBQVMsRUFBRSxZQUFZOztFQUV6QixJQUFJO0lBQ0YsU0FBUyxFQUFFLGNBQWM7Ozs7QUF4QjNCLEFBQUEsSUFBSSxBQUFBLElBQUssQ0FBQSxXQUFXLEVBQUUsZ0JBQWdCLENBQVg7RUFDekIsUUFBUSxFQUFFLFFBQVE7Q0FDbkI7O0FmNExMLEFlekxFLGdCZnlMYyxBZXpMYixPQUFPLENBQUM7RUFDUCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxVQUFVLEVBQUksS0FBc0I7RUFDcEMsV0FBVyxFQUFJLEtBQXNCO0VBQ3JDLEtBQUssRUEzQmEsSUFBSTtFQTRCdEIsTUFBTSxFQTVCWSxJQUFJO0VBNkJ0QixhQUFhLEVBN0JLLElBQUk7RUE4QnRCLE1BQU0sRUE3QmlCLEdBQUcsQ0E2QlAsS0FBSyxDQXpCUyxtQkFBZ0I7RUEwQmpELGdCQUFnQixFQTNCaUIsS0FBSztFQTRCdEMsU0FBUyxFQUFFLHdCQUF3QjtDQUNwQzs7QUFDRCxVQUFVLENBQVYsT0FBVTtFQUNSLEVBQUU7SUFDQSxTQUFTLEVBQUUsWUFBWTs7RUFFekIsSUFBSTtJQUNGLFNBQVMsRUFBRSxjQUFjOzs7O0FBeEIzQixBQUFBLElBQUksQUFBQSxJQUFLLENBQUEsV0FBVyxFQUFFLGFBQWEsQ0FBUjtFQUN6QixRQUFRLEVBQUUsUUFBUTtDQUNuQjs7QWZtTUwsQWVoTUUsYWZnTVcsQWVoTVYsT0FBTyxDQUFDO0VBQ1AsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsR0FBRztFQUNSLElBQUksRUFBRSxHQUFHO0VBQ1QsVUFBVSxFQUFJLEtBQXNCO0VBQ3BDLFdBQVcsRUFBSSxLQUFzQjtFQUNyQyxLQUFLLEVmc0xXLElBQUk7RWVyTHBCLE1BQU0sRWZxTFUsSUFBSTtFZXBMcEIsYUFBYSxFZm9MRyxJQUFJO0VlbkxwQixNQUFNLEVmb0xlLEdBQUcsQ2VwTEwsS0FBSyxDQTNCQSx5QkFBc0I7RUE0QjlDLGdCQUFnQixFQTdCUSxLQUFLO0VBOEI3QixTQUFTLEVBQUUsd0JBQXdCO0NBQ3BDOztBQUNELFVBQVUsQ0FBVixPQUFVO0VBQ1IsRUFBRTtJQUNBLFNBQVMsRUFBRSxZQUFZOztFQUV6QixJQUFJO0lBQ0YsU0FBUyxFQUFFLGNBQWM7Ozs7QUF4QjNCLEFBQUEsSUFBSSxBQUFBLElBQUssQ0FBQSxXQUFXLEVBQUUsc0JBQXNCLENBQWpCO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0NBQ25COztBZnVNTCxBZXBNRSxzQmZvTW9CLEFlcE1uQixPQUFPLENBQUM7RUFDUCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxVQUFVLEVBQUksS0FBc0I7RUFDcEMsV0FBVyxFQUFJLEtBQXNCO0VBQ3JDLEtBQUssRWZzTFcsSUFBSTtFZXJMcEIsTUFBTSxFZnFMVSxJQUFJO0VlcExwQixhQUFhLEVmb0xHLElBQUk7RWVuTHBCLE1BQU0sRWZvTGUsR0FBRyxDZXBMTCxLQUFLLENBekJTLG1CQUFnQjtFQTBCakQsZ0JBQWdCLEVBM0JpQixLQUFLO0VBNEJ0QyxTQUFTLEVBQUUsd0JBQXdCO0NBQ3BDOztBQUNELFVBQVUsQ0FBVixPQUFVO0VBQ1IsRUFBRTtJQUNBLFNBQVMsRUFBRSxZQUFZOztFQUV6QixJQUFJO0lBQ0YsU0FBUyxFQUFFLGNBQWM7Ozs7QWZzTC9CLE1BQU0sQ0FBQyxNQUFNO0VBQ1gsQUFBQSxXQUFXLENBQUM7SUFBQyxPQUFPLEVBQUMsZUFBZTtHQUFHO0VBQ3ZDLEFBQUEsa0JBQWtCLENBQUM7SUFBQyxPQUFPLEVBQUMsZUFBZTtHQUFHOzs7QUk3TTlDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLEtBQUssRUFBRSxJQUFJO0dFUnpDLEFBQUEsQUFBQSxTQUFDLENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxFQUFDO0lBTnpDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxtQkFBZTtJQVNuQyxLQUFLLEVBQUUsZUFBZTtJQUN0QixVQUFVLEVBQUUsSUFBSTtJQUVoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsR0FBRztJQUNqQixZQUFZLEVBQUUsS0FBSztJQUNuQixhQUFhLEVBQUUsR0FBRztJQUdsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFFBQVEsRUFBRSxRQUFRO0lBRWxCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLE1BQU0sRUFBRSxPQUFPO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLE1BQU07SUFDbEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUk7R0FnQ2hCO0dBekRELEFBQUEsQUEyQkUsU0EzQkQsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBMkJyQyxNQUFNLEdBM0JULEFBQUEsU0FBQyxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsQ0EyQjVCLE9BQU8sQ0FBQTtJQUNmLFVBQVUsRUFBRSxPQUFPO0dBQ3BCO0dBN0JILEFBQUEsQUErQkUsU0EvQkQsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLEVBK0JyQyxBQUFBLFNBQUMsQUFBQSxFQUFVO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLEdBQUc7R0FNbkI7R0F2Q0gsQUFBQSxBQWtDSSxTQWxDSCxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsRUErQnJDLEFBQUEsU0FBQyxBQUFBLEVBR0EsQ0FBQyxDQUFBO0lIekNMLEdBQUcsRUFBRSxHQUFHO0lBQ1IsU0FBUyxFQUFFLGdCQUFnQjtJRzBDckIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFLEdBQUc7R0FDVjtHQXRDTCxBQUFBLEFBeUNFLFNBekNELENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxDQXlDckMsTUFBTSxDQUFDO0lBQ04sVUFBVSxFQUFFLGlFQUFpRTtJQUM3RSxZQUFZLEVBQUUsT0FBTztJQUNyQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0dBSXpDO0dBaERILEFBQUEsQUE2Q0ksU0E3Q0gsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBeUNyQyxNQUFNLEFBSUosTUFBTSxHQTdDWCxBQUFBLFNBQUMsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBeUNyQyxNQUFNLEFBSUssT0FBTyxDQUFDO0lBQ2hCLFVBQVUsRUFBRSxpRUFBaUU7R0FDOUU7R0EvQ0wsQUFBQSxBQWlERSxTQWpERCxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsQ0FpRHJDLEtBQUssQ0FBQTtJQUNGLFVBQVUsRUFBRSxpRUFBK0Q7SUFDM0UsWUFBWSxFQUFFLE9BQU87SUFDckIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtHQUkzQztHQXhESCxBQUFBLEFBcURNLFNBckRMLENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxDQWlEckMsS0FBSyxBQUlELE1BQU0sR0FyRGIsQUFBQSxTQUFDLENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxDQWlEckMsS0FBSyxBQUlRLE9BQU8sQ0FBQTtJQUNmLFVBQVUsRUFBRSxpRUFBK0Q7R0FDNUU7R0FLUCxBQUFBLEFBQUEsU0FBQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsRUFBQztJSDNDM0MsZ0JBQWdCLEVEeEJYLE9BQU87SUN5QlosYUFBYSxFQUFDLEdBQUc7SUFRakIsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsUUFBUTtJQXlEbEIsVUFBVSxFQUFFLGdCQUFnQjtJQU01QixLQUFLLEVBQUUsSUFBSTtJRzVCVCxPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUUsSUFBSTtHQXlDakI7R0E1Q0QsQUFBQSxBSHpDQSxTR3lDQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsSUFBMUMsQUFBQSxTQUFDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxFSHpDdkMsQ0FBQyxDQUFBO0lBQ0YsS0FBSyxFQUFFLEtBQUs7R0FDYjtHR3VDRCxBQUFBLEFIL0JBLFNHK0JDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxDSC9CekMsT0FBTyxDQUFBO0lBQ04sT0FBTyxFQUFDLEVBQUU7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUQvQlEsSUFBSTtJQ2dDbEIsSUFBSSxFQUFFLENBQUM7SUFDUCxHQUFHLEVBQUUsQ0FBQztJQUNOLFVBQVUsRUFBRSxpQ0FBMEM7SUFDdEQsYUFBYSxFQUFFLFdBQVc7SUFDMUIsT0FBTyxFQUFFLEVBQUU7R0FDWjtHR3FCRCxBQUFBLEFIbkJBLFNHbUJDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxDSG5CekMsTUFBTSxDQUFBO0lBQ0wsT0FBTyxFQUFDLEVBQUU7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUQzQ1EsSUFBSTtJQzRDbEIsSUFBSSxFQUFFLENBQUM7SUFDUCxHQUFHLEVEN0NXLElBQUk7SUM4Q2xCLFVBQVUsRUFBRSxpQ0FBMEM7SUFDdEQsT0FBTyxFQUFFLEVBQUU7R0FDWjtHR1VELEFBQUEsQUhSQSxTR1FDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJSFJ4QyxDQUFDLENBQUE7SUFDRCxPQUFPLEVBQUUsQ0FBQztHQU9YO0VBSkcsQUFBQSxJQUFJLEFBQUEsSUFBSyxDQUFBLFdBQVcsR0FBRSxBQUFBLFNBQUMsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBQUksQ0FBQyxDQUExQztJQUN6QixRQUFRLEVBQUUsUUFBUTtHQUNuQjtHR0VMLEFBQUEsQUhnQ0EsU0doQ0MsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLEVIZ0MxQyxDQUFDLEdHaENELEFBQUEsU0FBQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsRUhnQ3ZDLE1BQU0sQ0FBQztJQUNSLEtBQUssRUFBRSxLQUFLO0dBQ2I7R0dsQ0QsQUFBQSxBSG9DQSxTR3BDQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsRUhvQzFDLEVBQUUsQ0FBQztJQUNELE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLENBQUM7R0FDVjtHR3ZDRCxBQUFBLEFBTUUsU0FORCxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsSUFNdkMsRUFBRSxDQUFBO0lBQ0QsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsT0FBTztJQUNqQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSwyQkFBMkI7SUFDcEMsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsWUFBWSxFQUFFLElBQUk7SUFDbEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLGVBQWU7R0EwQjNCOzs7QUQwR0csTUFBTSxDQUFDLE1BQStCLE1Eek1wQyxPQUFPLEVBQUUsTUFBTSxPQUFPLEtBQUssRUFBRSxJQUFJLE9DeU1oQixTQUFTLEVBQUUsT0FBTztHQ3JKM0MsQUFBQSxBQU1FLFNBTkQsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBTXZDLEVBQUUsQ0FBQTtJQWFDLFNBQVMsRUFBRSxlQUFlO0dBd0I3Qjs7O0FGL0ZILE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLEtBQUssRUFBRSxJQUFJO0dFb0R6QyxBQUFBLEFBc0JJLFNBdEJILENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBZ0JELENBQUMsQ0FBQTtJQUNDLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLElBQUk7SUFDaEIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLE1BQU07SUFDaEIsU0FBUyxFQUFFLGVBQWU7R0FlM0I7OztBRDJHQyxNQUFNLENBQUMsTUFBK0IsTUR6TXBDLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUksT0N5TWhCLFNBQVMsRUFBRSxPQUFPO0dDckozQyxBQUFBLEFBc0JJLFNBdEJILENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBZ0JELENBQUMsQ0FBQTtJQU9HLFNBQVMsRUFBRSxlQUFlO0dBYTdCOzs7QUY5RkwsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUk7R0VvRHpDLEFBQUEsQUFpQ00sU0FqQ0wsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBTXZDLEVBQUUsQ0FnQkQsQ0FBQyxBQVdFLE1BQU0sQ0FBQTtJQUNMLE9BQU8sRUFBRSxHQUFHO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLEdBQUc7SUFDVixTQUFTLEVBQUUsZUFBZTtHQUkzQjs7O0FENEdELE1BQU0sQ0FBQyxNQUErQixNRHpNcEMsT0FBTyxFQUFFLE1BQU0sT0FBTyxLQUFLLEVBQUUsSUFBSSxPQ3lNaEIsU0FBUyxFQUFFLE9BQU87R0NySjNDLEFBQUEsQUFpQ00sU0FqQ0wsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBTXZDLEVBQUUsQ0FnQkQsQ0FBQyxBQVdFLE1BQU0sQ0FBQTtJQU1ILFNBQVMsRUFBRSxlQUFlO0dBRTdCOzs7QUY3RlAsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sS0FBSyxFQUFFLElBQUk7RUVtR3pDLEFBQUEsSUFBSyxDQUFBLGVBQWUsQ0FBQyxJQUFLLEVBQUEsQUFBQSxTQUFDLEFBQUEsRUFBVyxJQUFLLEVBQUEsQUFBQSxJQUFDLEFBQUEsS0FBUyxFQUFFLEdBQUcsQ0FBQyxBQUFBLFdBQVcsQ0FBQTtJQUNwRSxPQUFPLEVBQUUsS0FBSztJQUNkLE9BQU8sRUFBRSxZQUFZO0dBQ3RCOzs7QURtR0ssTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtHQ2pONUMsQUFBQSxBQUFBLFNBQUMsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLEVBQUM7SUFOekMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1CQUFlO0lBU25DLEtBQUssRUFBRSxlQUFlO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBRWhCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFlBQVksRUFBRSxHQUFHO0lBQ2pCLFlBQVksRUFBRSxLQUFLO0lBQ25CLGFBQWEsRUFBRSxHQUFHO0lBR2xCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFlBQVk7SUFDckIsUUFBUSxFQUFFLFFBQVE7SUFFbEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixhQUFhLEVBQUUsUUFBUTtJQUN2QixlQUFlLEVBQUUsSUFBSTtJQUNyQixXQUFXLEVBQUUsSUFBSTtJQUNqQixTQUFTLEVBQUUsSUFBSTtHQWdDaEI7R0F6REQsQUFBQSxBQTJCRSxTQTNCRCxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsQ0EyQnJDLE1BQU0sR0EzQlQsQUFBQSxTQUFDLENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxDQTJCNUIsT0FBTyxDQUFBO0lBQ2YsVUFBVSxFQUFFLE9BQU87R0FDcEI7R0E3QkgsQUFBQSxBQStCRSxTQS9CRCxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsRUErQnJDLEFBQUEsU0FBQyxBQUFBLEVBQVU7SUFDVixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsR0FBRztHQU1uQjtHQXZDSCxBQUFBLEFBa0NJLFNBbENILENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxFQStCckMsQUFBQSxTQUFDLEFBQUEsRUFHQSxDQUFDLENBQUE7SUh6Q0wsR0FBRyxFQUFFLEdBQUc7SUFDUixTQUFTLEVBQUUsZ0JBQWdCO0lHMENyQixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsR0FBRztHQUNWO0dBdENMLEFBQUEsQUF5Q0UsU0F6Q0QsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBeUNyQyxNQUFNLENBQUM7SUFDTixVQUFVLEVBQUUsaUVBQWlFO0lBQzdFLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7R0FJekM7R0FoREgsQUFBQSxBQTZDSSxTQTdDSCxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsQ0F5Q3JDLE1BQU0sQUFJSixNQUFNLEdBN0NYLEFBQUEsU0FBQyxDQUFVLFFBQVEsQUFBbEIsQ0FBbUIsSUFBSyxDQUFBLGVBQWUsQ0F5Q3JDLE1BQU0sQUFJSyxPQUFPLENBQUM7SUFDaEIsVUFBVSxFQUFFLGlFQUFpRTtHQUM5RTtHQS9DTCxBQUFBLEFBaURFLFNBakRELENBQVUsUUFBUSxBQUFsQixDQUFtQixJQUFLLENBQUEsZUFBZSxDQWlEckMsS0FBSyxDQUFBO0lBQ0YsVUFBVSxFQUFFLGlFQUErRDtJQUMzRSxZQUFZLEVBQUUsT0FBTztJQUNyQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0dBSTNDO0dBeERILEFBQUEsQUFxRE0sU0FyREwsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBaURyQyxLQUFLLEFBSUQsTUFBTSxHQXJEYixBQUFBLFNBQUMsQ0FBVSxRQUFRLEFBQWxCLENBQW1CLElBQUssQ0FBQSxlQUFlLENBaURyQyxLQUFLLEFBSVEsT0FBTyxDQUFBO0lBQ2YsVUFBVSxFQUFFLGlFQUErRDtHQUM1RTtHQUtQLEFBQUEsQUFBQSxTQUFDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxFQUFDO0lIM0MzQyxnQkFBZ0IsRUR4QlgsT0FBTztJQ3lCWixhQUFhLEVBQUMsR0FBRztJQVFqQixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxRQUFRO0lBeURsQixVQUFVLEVBQUUsZ0JBQWdCO0lBTTVCLEtBQUssRUFBRSxJQUFJO0lHNUJULE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRSxJQUFJO0dBeUNqQjtHQTVDRCxBQUFBLEFIekNBLFNHeUNDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQUExQyxBQUFBLFNBQUMsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLEVIekN2QyxDQUFDLENBQUE7SUFDRixLQUFLLEVBQUUsS0FBSztHQUNiO0dHdUNELEFBQUEsQUgvQkEsU0crQkMsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLENIL0J6QyxPQUFPLENBQUE7SUFDTixPQUFPLEVBQUMsRUFBRTtJQUNWLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFRC9CUSxJQUFJO0lDZ0NsQixJQUFJLEVBQUUsQ0FBQztJQUNQLEdBQUcsRUFBRSxDQUFDO0lBQ04sVUFBVSxFQUFFLGlDQUEwQztJQUN0RCxhQUFhLEVBQUUsV0FBVztJQUMxQixPQUFPLEVBQUUsRUFBRTtHQUNaO0dHcUJELEFBQUEsQUhuQkEsU0dtQkMsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLENIbkJ6QyxNQUFNLENBQUE7SUFDTCxPQUFPLEVBQUMsRUFBRTtJQUNWLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFRDNDUSxJQUFJO0lDNENsQixJQUFJLEVBQUUsQ0FBQztJQUNQLEdBQUcsRUQ3Q1csSUFBSTtJQzhDbEIsVUFBVSxFQUFFLGlDQUEwQztJQUN0RCxPQUFPLEVBQUUsRUFBRTtHQUNaO0dHVUQsQUFBQSxBSFJBLFNHUUMsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElIUnhDLENBQUMsQ0FBQTtJQUNELE9BQU8sRUFBRSxDQUFDO0dBT1g7RUFKRyxBQUFBLElBQUksQUFBQSxJQUFLLENBQUEsV0FBVyxHQUFFLEFBQUEsU0FBQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsSUFBSSxDQUFDLENBQTFDO0lBQ3pCLFFBQVEsRUFBRSxRQUFRO0dBQ25CO0dHRUwsQUFBQSxBSGdDQSxTR2hDQyxDQUFVLFVBQVUsQUFBcEIsQ0FBcUIsSUFBSyxDQUFBLGVBQWUsRUhnQzFDLENBQUMsR0doQ0QsQUFBQSxTQUFDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxFSGdDdkMsTUFBTSxDQUFDO0lBQ1IsS0FBSyxFQUFFLEtBQUs7R0FDYjtHR2xDRCxBQUFBLEFIb0NBLFNHcENDLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxFSG9DMUMsRUFBRSxDQUFDO0lBQ0QsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztHQUNWO0dHdkNELEFBQUEsQUFNRSxTQU5ELENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBQUE7SUFDRCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLDJCQUEyQjtJQUNwQyxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsS0FBSztJQUNuQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsZUFBZTtHQTBCM0I7OztBRDBHRyxNQUFNLENBQUMsTUFBK0IsTUFBbkIsU0FBUyxFQUFFLFFBQVEsT0FBbkIsU0FBUyxFQUFFLE9BQU87R0NySjNDLEFBQUEsQUFNRSxTQU5ELENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBQUE7SUFhQyxTQUFTLEVBQUUsZUFBZTtHQXdCN0I7OztBRDBHRyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0dDcko1QyxBQUFBLEFBc0JJLFNBdEJILENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBZ0JELENBQUMsQ0FBQTtJQUNDLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLElBQUk7SUFDaEIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLE1BQU07SUFDaEIsU0FBUyxFQUFFLGVBQWU7R0FlM0I7OztBRDJHQyxNQUFNLENBQUMsTUFBK0IsTUFBbkIsU0FBUyxFQUFFLFFBQVEsT0FBbkIsU0FBUyxFQUFFLE9BQU87R0NySjNDLEFBQUEsQUFzQkksU0F0QkgsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBTXZDLEVBQUUsQ0FnQkQsQ0FBQyxDQUFBO0lBT0csU0FBUyxFQUFFLGVBQWU7R0FhN0I7OztBRDJHQyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxRQUFRO0dDcko1QyxBQUFBLEFBaUNNLFNBakNMLENBQVUsVUFBVSxBQUFwQixDQUFxQixJQUFLLENBQUEsZUFBZSxJQU12QyxFQUFFLENBZ0JELENBQUMsQUFXRSxNQUFNLENBQUE7SUFDTCxPQUFPLEVBQUUsR0FBRztJQUNaLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLGVBQWU7R0FJM0I7OztBRDRHRCxNQUFNLENBQUMsTUFBK0IsTUFBbkIsU0FBUyxFQUFFLFFBQVEsT0FBbkIsU0FBUyxFQUFFLE9BQU87R0NySjNDLEFBQUEsQUFpQ00sU0FqQ0wsQ0FBVSxVQUFVLEFBQXBCLENBQXFCLElBQUssQ0FBQSxlQUFlLElBTXZDLEVBQUUsQ0FnQkQsQ0FBQyxBQVdFLE1BQU0sQ0FBQTtJQU1ILFNBQVMsRUFBRSxlQUFlO0dBRTdCOzs7QUQ0R0QsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsUUFBUTtFQ3RHNUMsQUFBQSxJQUFLLENBQUEsZUFBZSxDQUFDLElBQUssRUFBQSxBQUFBLFNBQUMsQUFBQSxFQUFXLElBQUssRUFBQSxBQUFBLElBQUMsQUFBQSxLQUFTLEVBQUUsR0FBRyxDQUFDLEFBQUEsV0FBVyxDQUFBO0lBQ3BFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLFlBQVk7R0FDdEI7OztBTitHSDs7eURBRXlEO0FBQ3pELEFBQUEsSUFBSSxBQUFBLFdBQVcsQ0FBQyxJQUFJLEFBQUEsSUFBSyxDQUFBLFVBQVU7QUFDbkMsSUFBSSxBQUFBLE9BQU8sQ0FBQyxRQUFRLEFBQUEsSUFBSyxDQUFBLFVBQVU7QUFDbkMsSUFBSSxBQUFBLFdBQVcsQ0FBQyxZQUFZLEFBQUEsSUFBSyxDQUFBLFVBQVU7QUFDM0MsSUFBSSxBQUFBLE9BQU8sQ0FBQyxRQUFRLEFBQUEsSUFBSyxDQUFBLFVBQVU7QUFDbkMsSUFBSSxBQUFBLE9BQU8sQ0FBQyxtQkFBbUIsQUFBQSxJQUFLLENBQUEsVUFBVTtBQUM5QyxJQUFJLEFBQUEsV0FBVyxDQUFDLG1CQUFtQixBQUFBLElBQUssQ0FBQSxVQUFVLEVBQUM7RUFDakQsT0FBTyxFQUFFLGVBQWU7Q0FDekIiCn0= */