@charset "UTF-8";
/* -------------------------------------------

Name: 		Ruizarch
Version:    1.0
Developer:	Nazar Miller (millerDigitalDesign)
Portfolio:  https://themeforest.net/user/millerdigitaldesign/portfolio?ref=MillerDigitalDesign

p.s. I am available for Freelance hire (UI design, web development). email: miller.themes@gmail.com

------------------------------------------- */
/*--------------------------------------------

1. common
    - main
    - typography
    - link
    - button
    - form
    - breadcrumbs
    - backgrounds
    - spaces
2. components
    - preloader
    - cursor
    - hidden elements
    - scrollbar
    - frame
    - menu button
    - menu 
    - banner
    - circle text
    - lines
    - dodecahedron
    - about
    - partners
    - services
    - team
    - social icons
    - revievs
    - blog
    - footer
    - portfolio
    - map
    - accordion
    - price
    - 404
    - images
    - page transitions


--------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@100;200;300;400;500;600;700;800;900&display=swap");
@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/all.min.css);
/* -------------------------------------------

main

------------------------------------------- */
*,
*:before,
*:after {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html,
body {
  padding: 0;
  margin: 0;
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: rgb(74, 74, 74);
  background-color: rgb(217, 217, 217);
  line-height: 150%;
  overscroll-behavior: none;
}
@media screen and (max-width: 768px) {
  html,
  body {
    font-size: 15px;
  }
}

*::-moz-selection {
  color: inherit;
  background-color: transparent;
}

*::selection {
  color: inherit;
  background-color: transparent;
}

.mil-wrapper {
  position: relative;
  overflow: hidden;
  max-width: 100%;
}

.container {
  pointer-events: all;
}

.mil-relative {
  position: relative;
}

.mil-o-hidden {
  overflow: hidden;
}

.mil-flex {
  display: flex;
}

.mil-vert-between {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

@media screen and (max-width: 992px) {
  .mil-mobile-hidden {
    display: none;
  }
}

section {
  position: relative;
  overflow: hidden;
}

/* -------------------------------------------

typography

------------------------------------------- */
h1,
.mil-h1,
h2,
.mil-h12,
h3,
.mil-h3,
h4,
.mil-h4,
h5,
.mil-h5,
h6,
.mil-h6 {
  font-family: "Outfit", sans-serif;
  color: rgb(26, 26, 26);
  font-weight: 500;
  line-height: 120%;
}
@media screen and (max-width: 768px) {
  h1 br,
  .mil-h1 br,
  h2 br,
  .mil-h12 br,
  h3 br,
  .mil-h3 br,
  h4 br,
  .mil-h4 br,
  h5 br,
  .mil-h5 br,
  h6 br,
  .mil-h6 br {
    display: none;
  }
  h1 br.mil-keep-break,
  .mil-h1 br.mil-keep-break,
  h2 br.mil-keep-break,
  .mil-h12 br.mil-keep-break,
  h3 br.mil-keep-break,
  .mil-h3 br.mil-keep-break,
  h4 br.mil-keep-break,
  .mil-h4 br.mil-keep-break,
  h5 br.mil-keep-break,
  .mil-h5 br.mil-keep-break,
  h6 br.mil-keep-break,
  .mil-h6 br.mil-keep-break {
    display: inline;
  }
}

h1,
.mil-h1 {
  font-size: 86px;
}
@media screen and (max-width: 1400px) {
  h1,
  .mil-h1 {
    font-size: 74px;
  }
}
@media screen and (max-width: 1200px) {
  h1,
  .mil-h1 {
    font-size: 72px;
  }
}
@media screen and (max-width: 992px) {
  h1,
  .mil-h1 {
    font-size: 58px;
  }
}
@media screen and (max-width: 768px) {
  h1,
  .mil-h1 {
    font-size: 34px;
  }
}

h2,
.mil-h2 {
  font-size: 68px;
  line-height: 120%;
}
@media screen and (max-width: 1200px) {
  h2,
  .mil-h2 {
    font-size: 56px;
  }
}
@media screen and (max-width: 992px) {
  h2,
  .mil-h2 {
    font-size: 44px;
  }
}
@media screen and (max-width: 768px) {
  h2,
  .mil-h2 {
    font-size: 36px;
  }
}

h3,
.mil-h3 {
  font-size: 42px;
}
@media screen and (max-width: 1200px) {
  h3,
  .mil-h3 {
    font-size: 39px;
  }
}
@media screen and (max-width: 992px) {
  h3,
  .mil-h3 {
    font-size: 36px;
  }
}
@media screen and (max-width: 768px) {
  h3,
  .mil-h3 {
    font-size: 30px;
  }
}

h4,
.mil-h4 {
  font-size: 28px;
}
@media screen and (max-width: 1200px) {
  h4,
  .mil-h4 {
    font-size: 26px;
  }
}
@media screen and (max-width: 992px) {
  h4,
  .mil-h4 {
    font-size: 24px;
  }
}
@media screen and (max-width: 768px) {
  h4,
  .mil-h4 {
    font-size: 22px;
  }
}

h5,
.mil-h5 {
  font-size: 20px;
  line-height: 150%;
}
@media screen and (max-width: 768px) {
  h5,
  .mil-h5 {
    font-size: 18px;
  }
}

h6,
.mil-h6 {
  font-size: 18px;
  line-height: 150%;
}
@media screen and (max-width: 1200px) {
  h6,
  .mil-h6 {
    font-size: 17px;
  }
}
@media screen and (max-width: 992px) {
  h6,
  .mil-h6 {
    font-size: 16px;
  }
}
@media screen and (max-width: 768px) {
  h6,
  .mil-h6 {
    font-size: 21px;
  }
}

.mil-no-wrap {
  white-space: nowrap;
}

blockquote {
  padding: 60px;
  background-color: rgba(0, 0, 0, 0.05);
  font-size: 18px;
  color: rgb(0, 0, 0);
  font-style: italic;
  border-left: solid 4px rgb(221, 2, 0);
}
@media screen and (max-width: 768px) {
  blockquote {
    padding: 30px;
    font-size: 16px;
  }
}

.mil-text-sm {
  font-size: 15px;
}

.mil-text-lg {
  font-size: 18px;
  line-height: 170%;
}

.mil-text-xl {
  font-size: 22px;
  line-height: 180%;
}
@media screen and (max-width: 768px) {
  .mil-text-xl {
    font-size: 20px;
  }
}

.mil-upper {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
}

.mil-bold {
  font-weight: 500;
}

.mil-thin {
  font-weight: 100;
}

a {
  color: inherit;
  text-decoration: none;
}

.mil-complex-title {
  line-height: normal;
}

.mil-accent {
  color: rgb(221, 2, 0);
}

.mil-label.mil-accent {
  color: rgb(26, 26, 26);
}

.mil-light {
  color: rgb(255, 255, 255) !important;
}
.mil-light a {
  color: rgb(255, 255, 255) !important;
}

.mil-muted {
  color: rgba(255, 255, 255, 0.9);
}

.mil-dark {
  color: rgb(26, 26, 26);
}

.mil-light-soft {
  color: rgba(255, 255, 255, 0.4);
}

.mil-dark-soft {
  color: rgb(74, 74, 74);
}

.mil-marker {
  background-color: rgb(221, 2, 0);
  padding: 0 5px;
}

.mil-center {
  text-align: center;
}

.mil-left {
  text-align: left;
}

.mil-right {
  text-align: right;
}

@media screen and (max-width: 576px) {
  .mil-sm-center {
    text-align: center;
  }
}

.mil-suptitle {
  position: relative;
  display: block;
  margin-bottom: 60px;
}
.mil-suptitle:before {
  content: "";
  position: absolute;
  right: calc(100% + 30px);
  top: 10px;
  width: 600px;
  height: 1px;
  background-color: rgb(255, 255, 255);
  opacity: 0.2;
}
.mil-suptitle.mil-suptitle-right {
  text-align: right;
}
.mil-suptitle.mil-suptitle-right:before {
  left: calc(100% + 30px);
}
@media screen and (max-width: 768px) {
  .mil-suptitle.mil-suptitle-right {
    text-align: center;
  }
  .mil-suptitle.mil-suptitle-right:before {
    display: none;
  }
}
.mil-suptitle.mil-suptitle-dark:before {
  background-color: rgb(0, 0, 0);
  opacity: 0.1;
}
@media screen and (max-width: 768px) {
  .mil-suptitle {
    margin-bottom: 60px;
  }
}

.mil-divider {
  width: 100%;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.1);
}

.mil-img-frame {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-bottom: 140%;
}
.mil-img-frame img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* -------------------------------------------

link

------------------------------------------- */
.mil-link {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
}
.mil-link svg {
  margin-left: 15px;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgba(255, 255, 255, 0.1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-link svg path {
  fill: rgb(255, 255, 255);
}
.mil-link.mil-accent svg {
  background-color: rgba(255, 255, 255, 0.1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-link.mil-accent svg path {
  fill: rgb(221, 2, 0);
}
.mil-link.mil-dark svg {
  background-color: rgba(0, 0, 0, 0.1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-link.mil-dark svg path {
  fill: rgb(0, 0, 0);
}
.mil-link:hover svg {
  transform: scale(1.15);
}
.mil-link.mil-down-arrow svg {
  transform: rotate(90deg);
}
.mil-link.mil-down-arrow:hover svg {
  transform: scale(1.15) rotate(90deg);
}
.mil-link.mil-icon-left {
  display: flex;
  flex-direction: row-reverse;
}
.mil-link.mil-icon-left svg {
  margin-left: 0;
  margin-right: 15px;
  transform: rotate(180deg);
}
.mil-link.mil-icon-left:hover svg {
  transform: scale(1.15) rotate(180deg);
}

/* -------------------------------------------

button

------------------------------------------- */
.mil-button {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  letter-spacing: 2px;
  font-size: 12px;
  background-color: rgb(221, 2, 0);
  color: rgb(0, 0, 0);
  border-radius: 70px;
  padding: 0 15px 0 50px;
  height: 70px;
  text-transform: uppercase;
  font-weight: 500;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-button span {
  white-space: nowrap;
}
.mil-button svg {
  margin-left: 30px;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgb(0, 0, 0);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-button svg path {
  fill: rgb(221, 2, 0);
}
.mil-button.mil-icon-button {
  padding: 15px;
}
.mil-button.mil-icon-button svg {
  margin-left: 0;
}
.mil-button.mil-icon-button-sm {
  padding: 0;
  height: 40px;
}
.mil-button.mil-icon-button-sm svg {
  margin-left: 0;
  background-color: rgb(221, 2, 0);
}
.mil-button.mil-icon-button-sm svg path {
  fill: rgb(0, 0, 0);
}
.mil-button:hover {
  transform: scale(1.015);
  filter: brightness(110%);
}
.mil-button:hover svg {
  transform: scale(1.15);
}
.mil-button.mil-arrow-down svg {
  transform: rotate(90deg);
}
.mil-button.mil-arrow-down:hover {
  transform: scale(1.015);
  filter: brightness(110%);
}
.mil-button.mil-arrow-down:hover svg {
  transform: scale(1.15) rotate(90deg);
}
@media screen and (max-width: 992px) {
  .mil-button {
    height: 60px;
    padding: 0 10px 0 40px;
  }
  .mil-button svg {
    margin-left: 25px;
  }
}

/* -------------------------------------------

form

------------------------------------------- */
input,
textarea {
  position: relative;
  height: 70px;
  padding: 0 30px;
  width: 100%;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-family: "Outfit", sans-serif;
  color: rgb(0, 0, 0);
  border: none;
  border-bottom: solid 1px rgba(0, 0, 0, 0.2);
  margin-bottom: 30px;
}
input:focus,
textarea:focus {
  outline: inherit;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}
input::placeholder,
textarea::placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}

textarea {
  padding: 15px 30px;
  height: 300px;
}

/* -------------------------------------------

breadcrumbs

------------------------------------------- */
.mil-breadcrumbs {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.mil-breadcrumbs:before {
  content: "";
  position: absolute;
  right: calc(100% + 30px);
  top: 10px;
  width: 100vw;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.1);
}
.mil-breadcrumbs li {
  list-style-type: none;
}
.mil-breadcrumbs li:after {
  content: "/";
  margin: 0 15px;
  color: rgb(0, 0, 0);
}
.mil-breadcrumbs li a {
  color: rgb(0, 0, 0);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-size: 12px;
  white-space: nowrap;
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-breadcrumbs li a:hover {
  color: rgb(26, 26, 26);
}
.mil-breadcrumbs li:last-child {
  margin-right: 0;
  cursor: not-allowed;
}
.mil-breadcrumbs li:last-child a {
  opacity: 0.4;
  pointer-events: none;
}
.mil-breadcrumbs li:last-child:after {
  display: none;
}
.mil-breadcrumbs.mil-light:before {
  background-color: rgba(255, 255, 255, 0.1);
}
.mil-breadcrumbs.mil-light li:after {
  color: rgba(255, 255, 255, 0.9);
}
.mil-breadcrumbs.mil-light li a:hover {
  color: rgb(221, 2, 0) !important;
}
.mil-breadcrumbs.mil-center {
  justify-content: center;
}

/* -------------------------------------------

backgrounds

------------------------------------------- */
.mil-dark-bg {
  position: relative;
  background-color: rgb(20, 16, 12);
}
.mil-dark-bg .mi-invert-fix {
  height: 100%;
  position: relative;
}
.mil-dark-bg .mi-invert-fix .container {
  pointer-events: all;
}

.mil-soft-bg {
  background-color: rgb(201, 201, 201);
}

/* -------------------------------------------

spaces

------------------------------------------- */
.mil-mr-30 {
  margin-right: 30px;
}

.mil-mb-5 {
  margin-bottom: 5px;
}

.mil-mb-10 {
  margin-bottom: 10px;
}

.mil-mb-15 {
  margin-bottom: 15px;
}

.mil-mb-20 {
  margin-bottom: 15px;
}

.mil-mb-30 {
  margin-bottom: 30px;
}

.mil-mb-60 {
  margin-bottom: 60px;
}

.mil-mb-90 {
  margin-bottom: 90px;
}

.mil-mb-120 {
  margin-bottom: 120px;
}
@media screen and (max-width: 992px) {
  .mil-mb-120 {
    margin-bottom: 90px;
  }
}

.mil-mt-suptitle-offset {
  margin-top: 70px;
}
@media screen and (max-width: 992px) {
  .mil-mt-suptitle-offset {
    margin-top: 30px;
  }
}

.mil-p-120-120 {
  padding-top: 120px;
  padding-bottom: 120px;
}
@media screen and (max-width: 992px) {
  .mil-p-120-120 {
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

.mil-p-120-90 {
  padding-top: 120px;
  padding-bottom: 90px;
}
@media screen and (max-width: 992px) {
  .mil-p-120-90 {
    padding-top: 90px;
    padding-bottom: 60px;
  }
}

.mil-p-0-120 {
  padding-bottom: 120px;
}
@media screen and (max-width: 992px) {
  .mil-p-0-120 {
    padding-bottom: 90px;
  }
}

.mil-p-120-0 {
  padding-top: 120px;
}
@media screen and (max-width: 992px) {
  .mil-p-120-0 {
    padding-top: 90px;
  }
}

.mil-p-120-60 {
  padding-top: 120px;
  padding-bottom: 60px;
}
@media screen and (max-width: 992px) {
  .mil-p-120-60 {
    padding-top: 90px;
    padding-bottom: 30px;
  }
}

.mil-p-90-90 {
  padding-top: 90px;
  padding-bottom: 90px;
}
@media screen and (max-width: 992px) {
  .mil-p-90-90 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.mil-p-90-120 {
  padding-top: 90px;
  padding-bottom: 120px;
}
@media screen and (max-width: 992px) {
  .mil-p-90-120 {
    padding-top: 60px;
    padding-bottom: 90px;
  }
}

.mil-p-0-90 {
  padding-bottom: 90px;
}
@media screen and (max-width: 992px) {
  .mil-p-0-90 {
    padding-bottom: 60px;
  }
}

.mil-p-0-30 {
  padding-bottom: 30px;
}
@media screen and (max-width: 992px) {
  .mil-p-0-30 {
    padding-bottom: 0;
  }
}

.mil-p-120-30 {
  padding-top: 120px;
  padding-bottom: 30px;
}
@media screen and (max-width: 992px) {
  .mil-p-120-30 {
    padding-top: 90px;
    padding-bottom: 0;
  }
}

.mil-adaptive-right {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}
@media screen and (max-width: 992px) {
  .mil-adaptive-right {
    justify-content: flex-start;
  }
}

.mil-btn-space {
  margin-right: 30px;
}
@media screen and (max-width: 500px) {
  .mil-btn-space {
    margin-right: 50px;
    margin-bottom: 30px;
  }
}

/* -------------------------------------------

preloader

------------------------------------------- */
.mil-preloader {
  position: fixed;
  z-index: 9;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgb(0, 0, 0);
}
.mil-preloader .mil-preloader-animation {
  opacity: 0;
  position: relative;
  height: 100vh;
  color: rgb(255, 255, 255);
}
.mil-preloader .mil-preloader-animation .mil-pos-abs {
  position: absolute;
  height: 100vh;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.mil-preloader .mil-preloader-animation .mil-pos-abs p {
  opacity: 0;
  margin-right: 15px;
}
@media screen and (max-width: 992px) {
  .mil-preloader .mil-preloader-animation .mil-pos-abs {
    flex-direction: column;
  }
  .mil-preloader .mil-preloader-animation .mil-pos-abs p {
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.mil-preloader .mil-preloader-animation .mil-pos-abs .mil-reveal-frame {
  position: relative;
  padding: 0 30px;
}
.mil-preloader .mil-preloader-animation .mil-pos-abs .mil-reveal-frame .mil-reveal-box {
  z-index: 4;
  position: absolute;
  opacity: 0;
  height: 100%;
  background-color: rgb(221, 2, 0);
}
.mil-preloader.mil-hidden {
  pointer-events: none;
}

/* -------------------------------------------

cursor

------------------------------------------- */
.mil-ball {
  width: 20px;
  height: 20px;
  position: fixed;
  z-index: 10;
  background-color: rgb(0, 0, 0);
  border-radius: 50%;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0.1;
}
.mil-ball .mil-icon-1 {
  position: absolute;
  width: 40px;
  height: 40px;
  transform: scale(0);
}
.mil-ball .mil-icon-1 svg {
  fill: rgba(255, 255, 255, 0.9);
}
.mil-ball .mil-more-text, .mil-ball .mil-choose-text {
  position: absolute;
  width: 100%;
  text-align: center;
  display: block;
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  transform: scale(0);
}
.mil-ball.mil-accent .mil-icon-1 svg {
  fill: rgb(0, 0, 0);
}
.mil-ball.mil-accent .mil-more-text, .mil-ball.mil-accent .mil-choose-text {
  color: rgb(0, 0, 0);
}
@media screen and (max-width: 1200px) {
  .mil-ball {
    display: none;
  }
}

/* -------------------------------------------

hidden elements

------------------------------------------- */
.mil-hidden-elements .mil-dodecahedron, .mil-hidden-elements .mil-lines, .mil-hidden-elements .mil-arrow {
  display: none;
}

/* -------------------------------------------

scrollbar

------------------------------------------- */
::-webkit-scrollbar {
  display: none;
}

.mil-progress-track {
  position: fixed;
  z-index: 10;
  top: 0;
  right: 0;
  width: 4px;
  height: 100%;
  background-color: rgb(0, 0, 0);
}
.mil-progress-track .mil-progress {
  width: 4px;
  height: 0;
  background-color: rgb(221, 2, 0);
}
@media screen and (max-width: 992px) {
  .mil-progress-track {
    display: none;
  }
}

/* -------------------------------------------

frame

------------------------------------------- */
.mil-logo {
  font-size: 42px;
  font-weight: 500;
  line-height: 100%;
}
@media screen and (max-width: 992px) {
  .mil-logo {
    font-size: 36px;
  }
}

.mil-frame {
  padding: 50px 60px 60px 60px;
  position: fixed;
  z-index: 2;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1200px) {
  .mil-frame {
    padding: 30px;
  }
}
@media screen and (max-width: 1200px) {
  .mil-frame {
    padding: 0;
    z-index: 999;
    height: 90px;
  }
}
@media screen and (max-width: 1200px) {
  .mil-frame .mil-frame-top {
    height: 90px;
    background-color: rgba(0, 0, 0, 0.95);
    border-bottom: solid 1px rgba(255, 255, 255, 0.1);
    padding: 0 30px;
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
  }
  .mil-frame .mil-frame-top .mil-logo {
    color: rgb(255, 255, 255);
  }
  .mil-frame .mil-frame-top .mil-menu-btn span, .mil-frame .mil-frame-top .mil-menu-btn span:after, .mil-frame .mil-frame-top .mil-menu-btn span:before {
    background: rgb(255, 255, 255);
  }
}
.mil-frame .mil-frame-bottom {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
@media screen and (max-width: 1200px) {
  .mil-frame .mil-frame-bottom {
    display: none;
  }
}
.mil-frame .mil-frame-bottom .mil-current-page {
  pointer-events: none;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
  width: 300px;
  color: rgb(0, 0, 0);
  transform: rotate(-90deg) translateX(138px) translateY(-138px);
}
.mil-frame .mil-frame-bottom .mil-back-to-top {
  width: 300px;
  transform: rotate(-90deg) translateX(130px) translateY(130px);
  pointer-events: all;
}

.mil-frame-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.mil-frame-top .mil-logo {
  pointer-events: all;
  color: rgb(0, 0, 0);
}

/* -------------------------------------------

menu button

------------------------------------------- */
.mil-menu-btn {
  pointer-events: all;
  height: 28px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 992px) {
  .mil-menu-btn {
    transform: scale(0.85);
  }
}
.mil-menu-btn span, .mil-menu-btn span:after, .mil-menu-btn span:before {
  content: "";
  display: block;
  width: 28px;
  height: 2.5px;
  background: rgb(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: inherit;
}
.mil-menu-btn span {
  position: relative;
}
.mil-menu-btn span:after, .mil-menu-btn span:before {
  position: absolute;
}
.mil-menu-btn span:before {
  top: -9px;
}
.mil-menu-btn span:after {
  width: 18px;
  top: 9px;
}
.mil-menu-btn.mil-active span {
  transform: rotate(45deg);
}
.mil-menu-btn.mil-active span:before {
  transform: translate(0px, 9px) rotate(-90deg);
}
.mil-menu-btn.mil-active span:after {
  opacity: 0;
  width: 24px;
  transform: translate(0px, -9px) rotate(-90deg);
}

/* -------------------------------------------

menu

------------------------------------------- */
.mil-menu-frame {
  position: fixed;
  z-index: 9;
  width: 100%;
  height: 100vh;
  background-color: rgb(0, 0, 0);
  opacity: 0;
  pointer-events: none;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-menu-frame .container {
  pointer-events: none;
}
.mil-menu-frame .mil-frame-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 50px 60px;
}
@media screen and (max-width: 1200px) {
  .mil-menu-frame .mil-frame-top {
    display: none;
  }
}
.mil-menu-frame .mil-frame-top .mil-logo {
  color: rgb(255, 255, 255);
}
.mil-menu-frame .mil-frame-top .mil-menu-btn span, .mil-menu-frame .mil-frame-top .mil-menu-btn span:after, .mil-menu-frame .mil-frame-top .mil-menu-btn span:before {
  background-color: rgb(255, 255, 255);
}
.mil-menu-frame .mil-main-menu {
  transform: translateX(-30px);
  opacity: 0;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 1200px) {
  .mil-menu-frame .mil-main-menu {
    transform: translateY(30px);
  }
}
.mil-menu-frame .mil-menu-right-frame {
  padding-left: 60px;
  position: relative;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  border-left: solid 1px rgba(255, 255, 255, 0.1);
  opacity: 0;
  transform: translateY(30px);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-menu-frame .mil-menu-right-frame .mil-menu-right {
  padding-bottom: 60px;
}
.mil-menu-frame .mil-menu-right-frame .mil-animation-in {
  position: absolute;
  top: -320px;
  right: 0;
  opacity: 0;
  transform: translateY(-60px);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 1200px) {
  .mil-menu-frame .mil-menu-right-frame {
    display: none;
  }
}
@media screen and (max-height: 800px) {
  .mil-menu-frame .mil-menu-right-frame {
    display: none;
  }
}
.mil-menu-frame.mil-active {
  opacity: 1;
  pointer-events: all;
}
.mil-menu-frame.mil-active .container {
  pointer-events: all;
}
.mil-menu-frame.mil-active .mil-main-menu {
  transform: translateX(0);
  transform: translateY(0);
  opacity: 1;
  transition-delay: 0.4s;
}
.mil-menu-frame.mil-active .mil-menu-right-frame {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.6s;
}
.mil-menu-frame.mil-active .mil-menu-right-frame .mil-animation-in {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.8s;
}

.mil-menu-list li {
  list-style-type: none;
  margin-bottom: 15px;
}
.mil-menu-list li:last-child {
  margin-bottom: 0;
}
.mil-menu-list li a {
  display: block;
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-menu-list li a:hover {
  transform: translateX(5px);
  color: rgb(255, 255, 255);
}
.mil-menu-list.mil-hori-list {
  display: flex;
}
.mil-menu-list.mil-hori-list li {
  margin-bottom: 0;
  margin-right: 30px;
}
.mil-menu-list.mil-dark li a {
  color: rgb(0, 0, 0);
}

.mil-main-menu {
  height: 100vh;
  display: flex;
  align-items: center;
}
.mil-main-menu ul {
  padding: 0;
  margin: 0;
}
.mil-main-menu ul li {
  margin-bottom: 40px;
}
.mil-main-menu ul li:last-child {
  margin-bottom: 0;
}
.mil-main-menu ul li a {
  position: relative;
  display: flex;
  align-items: center;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  font-size: 34px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 992px) {
  .mil-main-menu ul li a {
    font-size: 26px;
  }
}
.mil-main-menu ul li a:before {
  content: "";
  position: absolute;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.4);
  transform: scale(0);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-main-menu ul li a:hover {
  color: rgb(255, 255, 255);
}
.mil-main-menu ul li a.mil-active {
  padding-left: 25px;
}
.mil-main-menu ul li a.mil-active:before {
  transform: scale(1);
  background-color: rgb(221, 2, 0);
}
.mil-main-menu ul li.mil-active > a {
  color: rgb(221, 2, 0);
}
.mil-main-menu ul li.mil-active > a:hover {
  color: rgb(221, 2, 0) !important;
  filter: brightness(110%);
}
.mil-main-menu ul li.mil-has-children > a:hover {
  color: rgb(255, 255, 255);
  padding-left: 25px;
}
.mil-main-menu ul li.mil-has-children > a:hover:before {
  transform: scale(1);
}
.mil-main-menu ul li.mil-has-children ul {
  padding-left: 25px;
  overflow: hidden;
  max-height: 0;
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-main-menu ul li.mil-has-children ul li {
  margin-bottom: 5px;
}
.mil-main-menu ul li.mil-has-children ul li:first-child {
  margin-top: 40px;
}
.mil-main-menu ul li.mil-has-children ul li a {
  display: block;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 2px;
  font-weight: 500;
  text-transform: uppercase;
}
.mil-main-menu ul li.mil-has-children ul li a:before {
  display: none;
}
.mil-main-menu ul li.mil-has-children ul li a:hover {
  color: rgba(255, 255, 255, 0.8);
  transform: translateX(5px);
}
.mil-main-menu ul li.mil-has-children ul.mil-active {
  max-height: 200px;
}
@media screen and (max-width: 1200px) {
  .mil-main-menu {
    justify-content: center;
  }
  .mil-main-menu ul {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .mil-main-menu ul li {
    margin-bottom: 30px;
  }
  .mil-main-menu ul li a {
    justify-content: center;
  }
  .mil-main-menu ul li a:before {
    display: none;
  }
  .mil-main-menu ul li a.mil-active {
    padding-left: 0 !important;
  }
  .mil-main-menu ul li.mil-has-children ul {
    padding-left: 0;
  }
  .mil-main-menu ul li.mil-has-children ul li:first-child {
    margin-top: 30px;
  }
}

/* -------------------------------------------

banner

------------------------------------------- */
.mil-banner {
  height: 100vh;
}
.mil-banner .container {
  height: 100%;
  display: flex;
  align-items: flex-end;
}
.mil-banner .mil-banner-content {
  width: 100%;
  padding-bottom: 120px;
  position: relative;
}
@media screen and (max-width: 992px) {
  .mil-banner .mil-banner-content {
    padding-bottom: 90px;
  }
}
.mil-banner .mil-lines-place {
  position: absolute;
  left: 0;
  bottom: calc(100% + 120px);
}
@media screen and (min-width: 993px) {
  .mil-banner .mil-banner-content {
    padding-bottom: clamp(60px, 10vh, 120px);
  }
}
@media screen and (min-width: 993px) {
  .mil-banner h1 {
    font-size: clamp(46px, 2vw + 6.5vh, 86px);
  }
}
@media screen and (min-width: 993px) {
  .mil-banner h1 .mil-thin {
    display: inline-block;
    margin-top: 12px;
    font-size: clamp(18px, 0.6vw + 2.2vh, 30px);
    line-height: 135%;
  }
}

.mil-inner-banner .mil-banner-content {
  padding: 150px 0 0 0;
}
@media screen and (max-width: 1200px) {
  .mil-inner-banner .mil-banner-content {
    padding: 180px 0 0 0;
  }
}

.mil-banner-personal {
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.1);
}
.mil-banner-personal .mil-banner-content {
  position: relative;
  padding-top: 90px;
}
@media screen and (max-width: 992px) {
  .mil-banner-personal .mil-banner-content {
    padding-top: 180px;
  }
}
.mil-banner-personal .mil-banner-content .mil-personal-text {
  margin-bottom: 300px;
}
@media screen and (max-width: 992px) {
  .mil-banner-personal .mil-banner-content .mil-personal-text {
    margin-bottom: 80px;
    text-align: center;
  }
}
.mil-banner-personal .mil-banner-content .mil-banner-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 60px 0 90px;
  background-color: rgb(255, 255, 255);
  height: 180px;
  position: absolute;
  top: calc(100vh - 180px);
  left: 0;
  width: 100%;
}
@media screen and (max-width: 992px) {
  .mil-banner-personal .mil-banner-content .mil-banner-panel {
    flex-direction: column;
    height: auto;
    padding: 60px 30px;
  }
  .mil-banner-personal .mil-banner-content .mil-banner-panel h5 {
    margin-bottom: 60px;
    text-align: center;
    width: 80%;
  }
}
.mil-banner-personal .mil-banner-content .mil-banner-panel .mil-right {
  display: flex;
}
.mil-banner-personal .mil-banner-content .mil-banner-panel .mil-right .mil-social-frame {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 30px;
  padding: 0 50px;
  background-color: rgba(0, 0, 0, 0.1);
  height: 70px;
  border-radius: 70px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-banner-personal .mil-banner-content .mil-banner-panel .mil-right .mil-social-frame:hover {
  transform: scale(1.015);
}
@media screen and (max-width: 992px) {
  .mil-banner-personal .mil-banner-content .mil-banner-panel .mil-right {
    flex-direction: column;
  }
  .mil-banner-personal .mil-banner-content .mil-banner-panel .mil-right .mil-social-frame {
    margin-right: 0;
    margin-bottom: 30px;
    height: 60px;
  }
}
.mil-banner-personal .mil-banner-content .mil-banner-panel .mil-button {
  margin: 0 !important;
}
@media screen and (max-width: 992px) {
  .mil-banner-personal .mil-banner-content .mil-banner-panel {
    bottom: 0;
    top: auto;
  }
}
@media screen and (max-width: 768px) {
  .mil-banner-personal .mil-banner-content .mil-banner-panel {
    position: static;
    margin-bottom: 90px;
  }
}
@media screen and (max-width: 992px) {
  .mil-banner-personal {
    height: auto;
  }
}

.mil-portrait-frame {
  position: relative;
}
.mil-portrait-frame img {
  position: relative;
  bottom: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.mil-portrait-frame .mil-nimbus {
  background: radial-gradient(50% 50% at 50% 50%, rgb(221, 2, 0) 0%, rgba(250, 168, 69, 0) 100%);
  width: 100%;
  padding-bottom: 100%;
  position: absolute;
  opacity: 0.6;
}
@media screen and (max-width: 768px) {
  .mil-portrait-frame {
    height: 400px;
  }
  .mil-portrait-frame img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: top;
       object-position: top;
  }
}

/* -------------------------------------------

circle text

------------------------------------------- */
.mil-circle-text {
  position: absolute;
  right: 0;
  bottom: 90px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 140px;
  height: 140px;
}
.mil-circle-text .mil-ct-svg {
  transform: scale(2);
  width: 140px;
  height: 140px;
}
.mil-circle-text .mil-ct-svg text {
  fill: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-circle-text .mil-button {
  position: absolute;
}
.mil-circle-text:hover svg text {
  fill: rgb(255, 255, 255);
}
@media screen and (max-width: 992px) {
  .mil-circle-text {
    display: none;
  }
}

/* -------------------------------------------

lines

------------------------------------------- */
@keyframes move {
  from {
    transform: translateY(-75px);
  }
  50% {
    transform: translateY(75px);
  }
  to {
    transform: translateY(-75px);
  }
}
.mil-lines-place .mil-lines {
  opacity: 0.05;
  pointer-events: none;
}
@media screen and (max-width: 992px) {
  .mil-lines-place .mil-lines {
    display: none;
  }
}
.mil-lines-place .mil-lines path, .mil-lines-place .mil-lines rect, .mil-lines-place .mil-lines line {
  stroke: rgb(0, 0, 0);
}
.mil-lines-place .mil-lines .mil-move {
  animation: move 10s linear infinite;
}
.mil-lines-place.mil-light .mil-lines {
  opacity: 0.2;
}
.mil-lines-place.mil-light .mil-lines path, .mil-lines-place.mil-light .mil-lines rect, .mil-lines-place.mil-light .mil-lines line {
  stroke: rgb(255, 255, 255);
}

/* -------------------------------------------

dodecahedron

------------------------------------------- */
.mil-animation-frame {
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  animation: jump 10s linear infinite;
  pointer-events: none;
}

.mil-animation {
  position: absolute;
  display: inline-block;
  width: 300px;
  height: 300px;
  opacity: 0.2;
  pointer-events: none;
}

.mil-position-1 {
  top: 100px;
  right: 100px;
}
.mil-position-1 .mil-pentagon div {
  border-top: 0.1px solid rgb(255, 255, 255);
}

.mil-position-2 {
  top: -60px;
  left: 15%;
}
.mil-position-2 .mil-pentagon div {
  border-top: 1px solid rgb(255, 255, 255);
}
.mil-position-2 .mil-dodecahedron {
  animation-delay: 0.5s;
}
@media screen and (max-width: 1400px) {
  .mil-position-2 {
    display: none;
  }
}

.mil-position-3 {
  bottom: -100px;
  right: 35%;
}
.mil-position-3 .mil-pentagon div {
  border-top: 1px solid rgb(255, 255, 255);
}
.mil-position-3 .mil-dodecahedron {
  animation-delay: 1s;
}
@media screen and (max-width: 1400px) {
  .mil-position-3 {
    display: none;
  }
}

.mil-position-4 {
  top: -60px;
  right: 20%;
}
.mil-position-4 .mil-pentagon div {
  border-top: 0.1px solid rgb(255, 255, 255);
}
.mil-position-4 .mil-dodecahedron {
  animation-delay: 0.5s;
}
@media screen and (max-width: 1400px) {
  .mil-position-4 {
    display: none;
  }
}
.mil-position-4.mil-dark .mil-pentagon div {
  border-top: 0.1px solid rgb(0, 0, 0);
}

.mil-dodecahedron {
  position: relative;
  left: 100px;
  top: 40px;
  width: 100px;
  height: 223px;
  transform-style: preserve-3d;
  animation: rotate 100s infinite linear;
}
@keyframes rotate {
  from {
    transform: rotateX(0deg) rotateY(360deg) rotateZ(360deg);
  }
  to {
    transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg);
  }
}

.mil-pentagon {
  position: absolute;
  width: 100px;
}
.mil-pentagon:nth-child(1) {
  transform: rotateY(0.2turn) translateZ(69px) rotateX(26.5deg);
}
.mil-pentagon:nth-child(6) {
  bottom: 0;
  transform: rotateY(0.2turn) translateZ(-69px) rotateX(206.5deg);
}
.mil-pentagon:nth-child(2) {
  transform: rotateY(0.4turn) translateZ(69px) rotateX(26.5deg);
}
.mil-pentagon:nth-child(7) {
  bottom: 0;
  transform: rotateY(0.4turn) translateZ(-69px) rotateX(206.5deg);
}
.mil-pentagon:nth-child(3) {
  transform: rotateY(0.6turn) translateZ(69px) rotateX(26.5deg);
}
.mil-pentagon:nth-child(8) {
  bottom: 0;
  transform: rotateY(0.6turn) translateZ(-69px) rotateX(206.5deg);
}
.mil-pentagon:nth-child(4) {
  transform: rotateY(0.8turn) translateZ(69px) rotateX(26.5deg);
}
.mil-pentagon:nth-child(9) {
  bottom: 0;
  transform: rotateY(0.8turn) translateZ(-69px) rotateX(206.5deg);
}
.mil-pentagon:nth-child(5) {
  transform: rotateY(1turn) translateZ(69px) rotateX(26.5deg);
}
.mil-pentagon:nth-child(10) {
  bottom: 0;
  transform: rotateY(1turn) translateZ(-69px) rotateX(206.5deg);
}
.mil-pentagon:nth-child(11) {
  transform: translateZ(69px) rotateX(-90deg);
}
.mil-pentagon:nth-child(12) {
  bottom: 0;
  transform: translateZ(-69px) rotateX(90deg);
}
.mil-pentagon div {
  position: absolute;
  width: 100px;
  height: 69px;
  transform-origin: bottom;
}
.mil-pentagon div:nth-child(1) {
  transform: rotate(0.2turn);
}
.mil-pentagon div:nth-child(2) {
  transform: rotate(0.4turn);
}
.mil-pentagon div:nth-child(3) {
  transform: rotate(0.6turn);
}
.mil-pentagon div:nth-child(4) {
  transform: rotate(0.8turn);
}
.mil-pentagon div:nth-child(5) {
  transform: rotate(1turn);
}

@keyframes jump {
  0% {
    transform: translateY(-30px);
  }
  50% {
    transform: translateY(30px);
  }
  100% {
    transform: translateY(-30px);
  }
}
/* -------------------------------------------

about

------------------------------------------- */
.mil-about-quote {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.mil-about-quote .mil-avatar {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  position: relative;
}
.mil-about-quote .mil-avatar:after {
  content: ' " ';
  color: rgb(0, 0, 0);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: rgb(221, 2, 0);
  position: absolute;
  bottom: 0;
  right: 0;
  display: flex;
  padding-top: 12px;
  justify-content: center;
  font-size: 36px;
}
.mil-about-quote .mil-avatar img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}
.mil-about-quote .mil-quote {
  padding-left: 30px;
  width: calc(100% - 90px);
}
@media screen and (max-width: 992px) {
  .mil-about-quote .mil-avatar {
    width: 70px;
    height: 70px;
  }
  .mil-about-quote .mil-avatar:after {
    padding-top: 7px;
    width: 25px;
    height: 25px;
    font-size: 24px;
  }
  .mil-about-quote .mil-quote {
    font-size: 16px;
    padding-left: 30px;
    width: calc(100% - 70px);
  }
}

.mil-about-photo {
  position: relative;
}
.mil-about-photo .mil-lines-place {
  position: absolute;
  top: -120px;
  left: -27%;
}

/* -------------------------------------------

services

------------------------------------------- */
.mil-complex-text {
  display: flex;
  align-items: center;
}
.mil-complex-text .mil-button {
  margin-left: 30px;
}
@media screen and (max-width: 768px) {
  .mil-complex-text {
    flex-direction: column;
  }
  .mil-complex-text .mil-button {
    margin-left: 0;
    margin-top: 60px;
  }
}

.mil-text-image {
  height: 80px;
  width: 250px;
  display: inline-block;
  overflow: hidden;
  border-radius: 70px;
  margin-right: 30px;
}
.mil-text-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-text-image:hover img {
  transform: scale(1.05);
}
@media screen and (max-width: 768px) {
  .mil-text-image {
    display: none;
  }
}

.mil-service-card-sm {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 60px 30px;
}
.mil-service-card-sm p {
  opacity: 1;
  transform: translateY(0);
  line-height: 1.7;
}
.mil-service-card-sm .mil-button {
  align-self: center;
  margin-top: auto;
  transform: scale(0.3);
  filter: grayscale(100%);
  opacity: 0.4;
}
.mil-service-card-sm:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 4px;
  width: 0;
  background-color: rgb(221, 2, 0);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-service-card-sm:hover .mil-button {
  transform: scale(1);
  filter: grayscale(0);
  opacity: 1;
}
.mil-service-card-sm:hover:before {
  width: 100%;
}
@media screen and (max-width: 992px) {
  .mil-service-card-sm .mil-button {
    transform: scale(1);
    filter: grayscale(0);
    opacity: 1;
  }
}

.mil-services-grid {
  border-top: solid 1px rgba(255, 255, 255, 0.1);
}
.mil-services-grid .mil-services-grid-item {
  border-right: solid 1px rgba(255, 255, 255, 0.1);
}
.mil-services-grid .mil-services-grid-item:first-child {
  border-left: solid 1px rgba(255, 255, 255, 0.1);
}
@media screen and (max-width: 992px) {
  .mil-services-grid {
    padding-bottom: 90px;
  }
  .mil-services-grid .mil-services-grid-item {
    border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  }
  .mil-services-grid .mil-services-grid-item:nth-child(3) {
    border-left: solid 1px rgba(255, 255, 255, 0.1);
  }
}
@media screen and (max-width: 768px) {
  .mil-services-grid {
    padding-bottom: 90px;
  }
  .mil-services-grid .mil-services-grid-item {
    border-left: solid 1px rgba(255, 255, 255, 0.1);
    border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  }
}

.mil-service-card-lg {
  display: block;
}
.mil-service-card-lg .mil-descr {
  padding-right: 30px;
}
.mil-service-card-lg.mil-offset {
  margin-top: 60px;
  margin-bottom: 60px;
}
@media screen and (max-width: 992px) {
  .mil-service-card-lg.mil-offset {
    margin-top: 0;
  }
}
@media screen and (max-width: 992px) {
  .mil-service-card-lg {
    margin-bottom: 60px;
  }
}
.mil-service-card-lg.mil-other-card {
  overflow: hidden;
  position: relative;
  border: solid 1px rgb(229, 229, 229);
  padding: 60px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-service-card-lg.mil-other-card .mil-descr {
  padding-right: 0;
}
.mil-service-card-lg.mil-other-card:hover {
  background-color: rgb(221, 2, 0);
}
.mil-service-card-lg.mil-other-card:hover .mil-link svg {
  background-color: rgb(0, 0, 0);
}
.mil-service-card-lg.mil-other-card:hover .mil-link svg path {
  fill: rgb(221, 2, 0);
}
@media screen and (max-width: 1200px) {
  .mil-service-card-lg.mil-other-card {
    padding: 30px;
  }
}

.mil-service-list li {
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  list-style-type: none;
  padding: 15px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-size: 12px;
}
.mil-service-list li:first-child {
  border-top: solid 1px rgba(255, 255, 255, 0.1);
}
.mil-service-list.mil-light li {
  color: rgba(255, 255, 255, 0.6);
}
.mil-service-list.mil-dark li {
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
}
.mil-service-list.mil-dark li:first-child {
  border-top: solid 1px rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------

team

------------------------------------------- */
.mil-team-card {
  position: relative;
  overflow: hidden;
  padding-bottom: 130%;
}
.mil-team-card:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 0;
  background-color: rgb(221, 2, 0);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-team-card img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  transform: scale(1.05);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-team-card.mil-offset-card {
  transform: translateY(60px);
}
@media screen and (max-width: 992px) {
  .mil-team-card.mil-offset-card {
    transform: none;
  }
}
.mil-team-card .mil-description {
  opacity: 0;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 60px 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  pointer-events: none;
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-team-card .mil-description .mil-secrc-text {
  opacity: 0;
  transform: translateY(15px);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition-delay: 0s;
}
.mil-team-card .mil-description .mil-secrc-text a {
  color: rgb(255, 255, 255);
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-team-card .mil-description .mil-secrc-text a:hover {
  color: rgb(221, 2, 0);
}
.mil-team-card:hover img {
  transform: scale(1);
}
.mil-team-card:hover:after {
  width: 100%;
}
.mil-team-card:hover .mil-description {
  opacity: 1;
  pointer-events: all;
}
.mil-team-card:hover .mil-description .mil-secrc-text {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.mil-team-list {
  position: relative;
}
.mil-team-list .mil-lines-place {
  position: absolute;
  top: -120px;
  left: -22.5%;
}

/* -------------------------------------------

social icons

------------------------------------------- */
.mil-social-icons {
  padding: 0;
  margin: 0;
  display: flex;
}
.mil-social-icons.mil-center {
  justify-content: center;
}
.mil-social-icons li {
  list-style-type: none;
  margin-right: 15px;
}
.mil-social-icons li:last-child {
  margin-right: 0;
}
.mil-social-icons li a {
  color: rgb(255, 255, 255);
  font-size: 18px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-social-icons li a:hover {
  color: rgb(221, 2, 0);
}
.mil-social-icons.mil-dark li a {
  color: rgb(0, 0, 0);
}
.mil-social-icons.mil-dark li a:hover {
  color: rgb(221, 2, 0);
}

/* -------------------------------------------

revievs

------------------------------------------- */
.mil-revi-pagination {
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 992px) {
  .mil-revi-pagination {
    flex-wrap: wrap;
  }
}
.mil-revi-pagination .swiper-pagination-bullet {
  padding: 0;
  width: 110px;
  height: 110px;
  padding: 10px;
  opacity: 1;
  border: none;
  background-color: transparent;
  margin: 0 !important;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
}
@media screen and (max-width: 992px) {
  .mil-revi-pagination .swiper-pagination-bullet {
    width: 90px;
    height: 90px;
  }
}
.mil-revi-pagination .swiper-pagination-bullet:nth-child(2n) {
  margin-top: 30px !important;
}
@media screen and (max-width: 992px) {
  .mil-revi-pagination .swiper-pagination-bullet:nth-child(2n) {
    margin-top: 0 !important;
  }
}
.mil-revi-pagination .swiper-pagination-bullet:hover {
  box-shadow: inset 0 0 0 4px rgb(255, 255, 255);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot {
  background-color: red;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background-size: cover;
  background-position: top;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
}
@media screen and (max-width: 992px) {
  .mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot {
    width: 70px;
    height: 70px;
  }
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-1 {
  background-image: url(../img/faces/customers/1.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-2 {
  background-image: url(../img/faces/customers/2.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-3 {
  background-image: url(../img/faces/customers/3.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-4 {
  background-image: url(../img/faces/customers/4.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-5 {
  background-image: url(../img/faces/customers/5.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-6 {
  background-image: url(../img/faces/customers/6.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet .mil-custom-dot.mil-slide-7 {
  background-image: url(../img/faces/customers/7.jpg);
}
.mil-revi-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  box-shadow: inset 0 0 0 4px rgb(221, 2, 0);
}

.mil-quote-icon {
  display: block;
  margin: 0 auto;
  width: 40px;
  height: 40px;
  margin-bottom: 15px;
}
.mil-quote-icon path {
  fill: rgb(221, 2, 0);
}

.mil-slider-nav {
  display: flex;
}
.mil-slider-nav .mil-slider-arrow {
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgb(0, 0, 0);
  border-radius: 50%;
  cursor: pointer;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-slider-nav .mil-slider-arrow svg path {
  fill: rgb(221, 2, 0);
}
.mil-slider-nav .mil-slider-arrow.mil-prev {
  margin-right: 10px;
  transform: rotate(180deg);
}
.mil-slider-nav .mil-slider-arrow.swiper-button-disabled {
  opacity: 0.1;
  cursor: not-allowed;
}
.mil-slider-nav .mil-slider-arrow:hover {
  transform: scale(1.15);
}
.mil-slider-nav .mil-slider-arrow:hover.mil-prev {
  transform: rotate(180deg) scale(1.15);
}
.mil-slider-nav.mil-reviews-nav {
  position: absolute;
  top: 160px;
  left: 0;
  width: 100%;
  justify-content: space-between;
}
@media screen and (max-width: 992px) {
  .mil-slider-nav.mil-reviews-nav {
    top: 0;
  }
}
.mil-slider-nav.mil-soft .mil-slider-arrow {
  background-color: rgb(229, 229, 229);
}
.mil-slider-nav.mil-soft .mil-slider-arrow svg path {
  fill: rgb(0, 0, 0);
}

/* -------------------------------------------

blog

------------------------------------------- */
.mil-blog-card {
  display: block;
}
.mil-blog-card .mil-cover-frame {
  position: relative;
  overflow: hidden;
  padding-bottom: 65%;
  margin-bottom: 30px;
}
.mil-blog-card .mil-cover-frame img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-blog-card .mil-post-descr {
  padding: 30px 30px 0 0;
}
.mil-blog-card .mil-post-descr .mil-post-text {
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mil-blog-card:hover .mil-cover-frame img {
  transform: scale(1.05);
}
.mil-blog-card.mil-blog-card-hori {
  padding-top: 60px;
  border-top: solid 1px rgb(229, 229, 229);
  display: flex;
  align-items: center;
}
.mil-blog-card.mil-blog-card-hori .mil-cover-frame {
  margin-bottom: 0;
  width: 450px;
  padding-bottom: 27%;
}
.mil-blog-card.mil-blog-card-hori .mil-post-descr {
  width: calc(100% - 450px);
  padding: 0;
  padding-left: 60px;
}
@media screen and (max-width: 992px) {
  .mil-blog-card.mil-blog-card-hori {
    display: block;
    padding-top: 0;
    border: none;
  }
  .mil-blog-card.mil-blog-card-hori .mil-cover-frame {
    width: 100%;
    padding-bottom: 65%;
    margin-bottom: 30px;
  }
  .mil-blog-card.mil-blog-card-hori .mil-post-descr {
    width: 100%;
    padding: 30px 30px 0 0;
  }
}

.mil-labels {
  display: flex;
  align-items: center;
  padding: 0;
}
.mil-labels .mil-label {
  margin-right: 15px;
}
.mil-labels .mil-label:last-child {
  margin-right: 0;
}

.mil-pagination {
  padding-top: 60px;
  border-top: solid 1px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.mil-pagination-btn {
  display: inline-block;
  width: 40px;
  height: 40px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.1);
  color: rgb(0, 0, 0);
  text-align: center;
  line-height: 40px;
  text-decoration: none;
  margin-right: 10px;
}

.mil-pagination-btn.mil-active {
  background-color: rgb(221, 2, 0);
}

.mil-category-list {
  display: flex;
}
.mil-category-list li {
  list-style-type: none;
  margin-right: 10px;
}
.mil-category-list li:last-child {
  margin-right: 0;
}
.mil-category-list li a {
  height: 40px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
  padding: 0 20px;
  border-radius: 40px;
  color: rgb(0, 0, 0);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-category-list li a:hover {
  background-color: rgb(229, 229, 229);
}
.mil-category-list li a.mil-active {
  background-color: rgb(221, 2, 0);
}
@media screen and (max-width: 768px) {
  .mil-category-list {
    flex-direction: column;
  }
  .mil-category-list li {
    margin-right: 0;
    margin-bottom: 10px;
    align-items: flex-start;
  }
  .mil-category-list li:last-child {
    margin-bottom: 0;
  }
  .mil-category-list li a {
    justify-content: flex-start;
  }
}

/* -------------------------------------------

footer

------------------------------------------- */
.mil-footer-menu {
  margin-bottom: 120px;
}
.mil-footer-menu ul li {
  list-style-type: none;
  margin-bottom: 30px;
}
.mil-footer-menu ul li a {
  display: block;
  font-weight: 500;
  font-size: 28px;
  color: rgba(255, 255, 255, 0.9);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-footer-menu ul li a:hover {
  transform: translateX(10px);
  color: rgb(221, 2, 0);
}
@media screen and (max-width: 768px) {
  .mil-footer-menu ul li a {
    font-size: 22px;
  }
}
.mil-footer-menu ul li.mil-active a {
  color: rgb(221, 2, 0);
}
.mil-footer-menu ul li.mil-active a:hover {
  transform: none;
}
@media screen and (max-width: 768px) {
  .mil-footer-menu {
    margin-bottom: 60px;
  }
}

.mil-subscribe-form {
  position: relative;
  height: 70px;
  width: 100%;
}
.mil-subscribe-form input {
  height: 100%;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.1);
  color: rgb(0, 0, 0);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  border: none;
  border-radius: 70px;
  padding: 0 0 0 50px;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-subscribe-form input::-moz-placeholder {
  color: rgb(128, 128, 128);
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.mil-subscribe-form input::placeholder {
  color: rgb(128, 128, 128);
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.mil-subscribe-form input:focus {
  background-color: rgb(255, 255, 255);
  outline: inherit;
}
.mil-subscribe-form input:hover {
  background-color: rgb(255, 255, 255);
}
.mil-subscribe-form .mil-button {
  position: absolute;
  top: 15px;
  right: 15px;
}
.mil-subscribe-form.mil-subscribe-form-2 input {
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------

portfolio

------------------------------------------- */
.mil-portfolio-item {
  display: block;
}
.mil-portfolio-item .mil-cover-frame {
  position: relative;
  overflow: hidden;
  margin-bottom: 30px;
}
.mil-portfolio-item .mil-cover-frame .mil-cover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mil-portfolio-item .mil-cover-frame .mil-cover img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-portfolio-item .mil-cover-frame.mil-vert {
  padding-bottom: 130%;
}
.mil-portfolio-item .mil-cover-frame.mil-hori {
  padding-bottom: 65%;
}
.mil-portfolio-item:hover .mil-cover-frame .mil-cover img {
  transform: scale(1.05);
}
.mil-portfolio-item.mil-slider-item .mil-cover-frame {
  margin-bottom: 30px;
  height: calc(100vh - 360px);
}
@media screen and (max-width: 992px) {
  .mil-portfolio-item.mil-slider-item .mil-cover-frame {
    height: auto;
    padding-bottom: 100%;
  }
}
.mil-portfolio-item.mil-slider-item .mil-descr {
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 180px;
  background-color: rgb(242, 242, 242);
  padding: 0 60px;
}
@media screen and (max-width: 992px) {
  .mil-portfolio-item.mil-slider-item .mil-descr {
    padding: 30px;
    flex-direction: column;
    align-items: flex-start;
    height: auto;
  }
  .mil-portfolio-item.mil-slider-item .mil-descr .mil-descr-text {
    margin-bottom: 30px;
  }
}
.mil-portfolio-item.mil-slider-item:hover .mil-cover-frame .mil-cover img {
  transform: none;
}

.swiper-slide .mil-portfolio-item .mil-descr {
  pointer-events: none;
}
.swiper-slide.swiper-slide-active .mil-portfolio-item .mil-descr {
  pointer-events: all;
}

.mil-portfolio {
  position: relative;
}
.mil-portfolio .mil-lines-place {
  position: absolute;
  left: 40.7%;
}
.mil-portfolio .mil-lines-place.mil-lines-long {
  top: 1289px;
}

.mil-portfolio-slider-frame {
  z-index: 0;
  padding-top: 150px;
}
@media screen and (max-width: 992px) {
  .mil-portfolio-slider-frame {
    padding-top: 180px;
  }
}

.mil-portfolio-nav {
  background-color: rgb(242, 242, 242);
  width: 100%;
  padding: 0 60px;
  height: 180px;
  position: absolute;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mil-portfolio-nav .mil-portfolio-btns-frame {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  height: 70px;
  border-radius: 70px;
  background-color: rgb(255, 255, 255);
}
@media screen and (max-width: 992px) {
  .mil-portfolio-nav {
    position: static;
    height: auto;
    padding: 30px 0 90px;
    justify-content: flex-start;
    background-color: rgb(255, 255, 255);
  }
  .mil-portfolio-nav .mil-portfolio-btns-frame {
    width: 100%;
    height: auto;
    padding: 0;
  }
}

.swiper-portfolio-pagination {
  white-space: nowrap;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 0 15px;
}

.mil-info {
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 120px;
  align-items: center;
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .mil-info {
    flex-direction: column;
    height: auto;
    padding: 30px;
  }
}

.mil-works-nav {
  padding-top: 60px;
  border-top: solid 1px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.mil-works-nav .mil-disabled {
  opacity: 0.2;
  cursor: not-allowed;
}
@media screen and (max-width: 768px) {
  .mil-works-nav {
    padding-top: 0;
    border-top: none;
    justify-content: center;
  }
  .mil-works-nav .mil-link {
    display: none;
  }
  .mil-works-nav .mil-link:last-child {
    display: flex;
  }
}

/***************************

map

***************************/
.mil-map-frame {
  background-color: rgb(229, 229, 229);
  pointer-events: all;
  height: 600px;
  position: relative;
  overflow: hidden;
}
.mil-map-frame .mil-map {
  position: absolute;
  top: -25%;
  left: -25%;
  width: 150%;
  height: 150%;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-map-frame .mil-map iframe {
  width: 100%;
  height: 100%;
}
/* -------------------------------------------

accordion

------------------------------------------- */
.mil-accordion-group {
  border-bottom: solid 1px rgba(0, 0, 0, 0.2);
  margin-bottom: 30px;
}
.mil-accordion-group .mil-accordion-menu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  margin-bottom: 30px;
}
.mil-accordion-group .mil-accordion-menu .mil-symbol {
  border-radius: 50%;
  width: 40px;
  height: 40px;
  color: rgb(0, 0, 0);
  background-color: rgb(229, 229, 229);
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.mil-accordion-group .mil-accordion-menu .mil-symbol .mil-plus, .mil-accordion-group .mil-accordion-menu .mil-symbol .mil-minus {
  position: absolute;
}
.mil-accordion-group .mil-accordion-menu .mil-symbol .mil-minus {
  transform: translateY(-2px);
}
.mil-accordion-group .mil-accordion-menu .mil-accordion-head {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgb(0, 0, 0);
}

.mil-accordion-content {
  height: 0;
  overflow: hidden;
}

/***************************

price

***************************/
.mil-price-card {
  display: block;
  width: 100%;
  border-top: solid 1px rgba(255, 255, 255, 0.1);
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  padding: 60px 0 30px;
}
.mil-price-card .mil-price-number {
  padding-top: 10px;
  line-height: 70%;
  font-size: 54px;
  font-weight: 500;
}
.mil-price-card .mil-price-number .mil-thin {
  font-weight: 200;
  font-size: 18px;
}

/***************************

404

***************************/
.mil-404-banner .mil-animation-frame {
  z-index: 2;
}

.mil-404-frame {
  padding-top: 100px;
  height: 100vh;
  width: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.mil-404-text {
  display: block;
  text-align: center;
  color: rgb(255, 255, 255);
}

.mil-scale-frame {
  transform: scale(2.3);
  text-align: center;
  margin-bottom: 90px;
}
@media screen and (max-width: 530px) {
  .mil-scale-frame {
    transform: scale(1.3);
    margin-bottom: 50px;
  }
}

.mil-404 {
  position: relative;
  color: rgb(255, 255, 255);
  font-size: 6em;
  font-weight: 500;
  animation: glitch-skew 1s infinite linear alternate-reverse;
}
.mil-404::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  left: 2px;
  text-shadow: -2px 0 rgb(221, 2, 0);
  clip: rect(44px, 450px, 56px, 0);
  animation: glitch-anim 5s infinite linear alternate-reverse;
}
.mil-404::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  left: -2px;
  text-shadow: -2px 0 rgb(153, 153, 153), 2px 2px rgb(229, 229, 229);
  animation: glitch-anim2 1s infinite linear alternate-reverse;
}

@keyframes glitch-anim {
  0% {
    clip: rect(41px, 9999px, 4px, 0);
    transform: skew(0.36deg);
  }
  5% {
    clip: rect(44px, 9999px, 57px, 0);
    transform: skew(1deg);
  }
  10% {
    clip: rect(62px, 9999px, 61px, 0);
    transform: skew(0.87deg);
  }
  15% {
    clip: rect(69px, 9999px, 54px, 0);
    transform: skew(0.31deg);
  }
  20% {
    clip: rect(62px, 9999px, 27px, 0);
    transform: skew(0.4deg);
  }
  25% {
    clip: rect(96px, 9999px, 98px, 0);
    transform: skew(0.85deg);
  }
  30% {
    clip: rect(87px, 9999px, 4px, 0);
    transform: skew(0.84deg);
  }
  35% {
    clip: rect(59px, 9999px, 36px, 0);
    transform: skew(0.13deg);
  }
  40% {
    clip: rect(20px, 9999px, 50px, 0);
    transform: skew(0.29deg);
  }
  45% {
    clip: rect(10px, 9999px, 40px, 0);
    transform: skew(0.59deg);
  }
  50% {
    clip: rect(51px, 9999px, 83px, 0);
    transform: skew(0.19deg);
  }
  55% {
    clip: rect(41px, 9999px, 11px, 0);
    transform: skew(0.16deg);
  }
  60% {
    clip: rect(46px, 9999px, 74px, 0);
    transform: skew(0.4deg);
  }
  65% {
    clip: rect(73px, 9999px, 17px, 0);
    transform: skew(0.58deg);
  }
  70% {
    clip: rect(87px, 9999px, 58px, 0);
    transform: skew(0.74deg);
  }
  75% {
    clip: rect(39px, 9999px, 80px, 0);
    transform: skew(0.98deg);
  }
  80% {
    clip: rect(67px, 9999px, 73px, 0);
    transform: skew(0.16deg);
  }
  85% {
    clip: rect(69px, 9999px, 82px, 0);
    transform: skew(0.47deg);
  }
  90% {
    clip: rect(62px, 9999px, 52px, 0);
    transform: skew(0.26deg);
  }
  95% {
    clip: rect(39px, 9999px, 84px, 0);
    transform: skew(0.99deg);
  }
  100% {
    clip: rect(69px, 9999px, 4px, 0);
    transform: skew(0.42deg);
  }
}
@keyframes glitch-anim2 {
  0% {
    clip: rect(1px, 9999px, 43px, 0);
    transform: skew(0.77deg);
  }
  5% {
    clip: rect(39px, 9999px, 82px, 0);
    transform: skew(0.35deg);
  }
  10% {
    clip: rect(2px, 9999px, 83px, 0);
    transform: skew(0.7deg);
  }
  15% {
    clip: rect(54px, 9999px, 57px, 0);
    transform: skew(0.15deg);
  }
  20% {
    clip: rect(9px, 9999px, 15px, 0);
    transform: skew(0.65deg);
  }
  25% {
    clip: rect(26px, 9999px, 93px, 0);
    transform: skew(0.15deg);
  }
  30% {
    clip: rect(64px, 9999px, 65px, 0);
    transform: skew(0.74deg);
  }
  35% {
    clip: rect(29px, 9999px, 84px, 0);
    transform: skew(0.45deg);
  }
  40% {
    clip: rect(80px, 9999px, 17px, 0);
    transform: skew(0.36deg);
  }
  45% {
    clip: rect(30px, 9999px, 18px, 0);
    transform: skew(0.52deg);
  }
  50% {
    clip: rect(78px, 9999px, 45px, 0);
    transform: skew(0.93deg);
  }
  55% {
    clip: rect(78px, 9999px, 84px, 0);
    transform: skew(0.52deg);
  }
  60% {
    clip: rect(99px, 9999px, 4px, 0);
    transform: skew(0.26deg);
  }
  65% {
    clip: rect(19px, 9999px, 15px, 0);
    transform: skew(0.15deg);
  }
  70% {
    clip: rect(83px, 9999px, 54px, 0);
    transform: skew(0.78deg);
  }
  75% {
    clip: rect(20px, 9999px, 86px, 0);
    transform: skew(0.75deg);
  }
  80% {
    clip: rect(97px, 9999px, 84px, 0);
    transform: skew(0.66deg);
  }
  85% {
    clip: rect(16px, 9999px, 95px, 0);
    transform: skew(0.11deg);
  }
  90% {
    clip: rect(38px, 9999px, 31px, 0);
    transform: skew(0.46deg);
  }
  95% {
    clip: rect(23px, 9999px, 63px, 0);
    transform: skew(0.39deg);
  }
  100% {
    clip: rect(49px, 9999px, 28px, 0);
    transform: skew(0.92deg);
  }
}
@keyframes glitch-skew {
  0% {
    transform: skew(-1deg);
  }
  10% {
    transform: skew(0deg);
  }
  20% {
    transform: skew(-3deg);
  }
  30% {
    transform: skew(2deg);
  }
  40% {
    transform: skew(1deg);
  }
  50% {
    transform: skew(2deg);
  }
  60% {
    transform: skew(-3deg);
  }
  70% {
    transform: skew(-2deg);
  }
  80% {
    transform: skew(-3deg);
  }
  90% {
    transform: skew(2deg);
  }
  100% {
    transform: skew(3deg);
  }
}
/***************************

images

***************************/
.mil-image-frame {
  position: relative;
  overflow: hidden;
}
.mil-image-frame > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.mil-image-frame.mil-horizontal {
  padding-bottom: 65%;
}
.mil-image-frame.mil-vertical {
  padding-bottom: 140%;
}
.mil-image-frame.mil-square {
  padding-bottom: 100%;
}
.mil-image-frame.mil-fw {
  padding-bottom: 50%;
}
.mil-image-frame .mil-zoom-btn {
  opacity: 0;
  transform: translateY(15px);
  position: absolute;
  top: 30px;
  right: 30px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(255, 255, 255, 0.8);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-image-frame .mil-zoom-btn:hover {
  background-color: rgb(255, 255, 255);
}
.mil-image-frame .mil-zoom-btn img {
  height: 17px;
  width: 17px;
}
.mil-image-frame:hover .mil-zoom-btn {
  opacity: 1;
  transform: translateY(0);
  z-index: 2;
}

/***************************

page transitions

***************************/
.mil-frame {
  opacity: 1;
  transform: scale(1);
  transition: 0.6s;
}

.mil-curtain {
  position: fixed;
  pointer-events: none;
  z-index: 4;
  background-color: rgb(0, 0, 0);
  opacity: 0;
  width: 100%;
  height: 100vh;
  transition: 0.6s;
}

.mil-main-transition {
  transition: 0.6s;
  margin-top: 0;
  transition-delay: 0.3s;
}
.mil-main-transition .mil-animation-frame {
  opacity: 1;
  margin-top: 0;
  transition: 0.6s;
  transition-delay: 0.3s;
}
.mil-main-transition .mil-lines-place {
  opacity: 1;
  margin-top: 0;
  transition: 0.6s;
  transition-delay: 0.3s;
}

html.is-animating .mil-frame {
  opacity: 0;
  transition-delay: 0.5s;
  transform: scale(0.9);
}
@media screen and (max-width: 1200px) {
  html.is-animating .mil-frame {
    transform: scale(1);
    opacity: 1;
  }
}
html.is-animating .mil-curtain {
  opacity: 1;
  pointer-events: all;
}
html.is-animating .mil-main-transition {
  margin-top: 0.1px;
}
html.is-animating .mil-main-transition .mil-animation-frame {
  opacity: 0;
  margin-top: -90px;
  transition-delay: 0s;
}
html.is-animating .mil-main-transition .mil-lines-place {
  opacity: 0;
  margin-top: 90px;
  transition-delay: 0s;
}

html.is-animating .mil-menu-frame {
  opacity: 0;
  transition-delay: 0.3s;
}

/* -------------------------------------------

language switch (ES/EN) — Fase 1, rediseño 2026-08

------------------------------------------- */
.mil-frame-top {
  position: relative;
}

.mil-lang-switch {
  position: absolute;
  right: 70px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: all;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgb(0, 0, 0);
}
.mil-lang-switch .mil-lang-current {
  font-weight: 700;
}
.mil-lang-switch .mil-lang-sep {
  opacity: 0.4;
}
.mil-lang-switch .mil-lang-link {
  font-weight: 400;
  opacity: 0.5;
  color: rgb(0, 0, 0);
  text-decoration: none;
  transition: opacity 0.2s;
}
.mil-lang-switch .mil-lang-link:hover {
  opacity: 1;
}
.mil-lang-switch.mil-disabled .mil-lang-link {
  opacity: 0.25;
  pointer-events: none;
  cursor: default;
}

/* -------------------------------------------

header over a dark hero — Arreglar el hero, 2026-08

.mil-dark-header is added to .mil-wrapper only on pages whose very first
section is a dark-bg hero (currently just home). Without it, the logo,
hamburger and language switch default to $dark / rgb(0,0,0) — the right
color when the header sits over a light section, but nearly invisible
over the dark hero.

------------------------------------------- */
.mil-dark-header .mil-frame .mil-frame-top .mil-logo {
  color: rgb(255, 255, 255);
}
.mil-dark-header .mil-frame .mil-menu-btn span, .mil-dark-header .mil-frame .mil-menu-btn span:after, .mil-dark-header .mil-frame .mil-menu-btn span:before {
  background: rgb(255, 255, 255);
}
.mil-dark-header .mil-frame .mil-lang-switch, .mil-dark-header .mil-frame .mil-lang-switch .mil-lang-link {
  color: rgb(255, 255, 255);
}

/* -------------------------------------------

hero context line — Arreglar el hero, 2026-08

------------------------------------------- */
.mil-hero-context {
  color: rgba(255, 255, 255, 0.8);
  font-size: 18px;
}
@media screen and (max-width: 768px) {
  .mil-hero-context {
    font-size: 16px;
  }
}

@media screen and (max-width: 992px) {
  .mil-lang-switch {
    right: 60px;
    font-size: 11px;
    /* text-only tap target (~14x13px) is far under the 44px touch
    guideline; grown mostly vertically + toward the separator (left),
    not toward .mil-menu-btn (right), to avoid overlapping its hit box */
  }
  .mil-lang-switch .mil-lang-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: -16px -4px -16px -10px;
    padding: 16px 4px 16px 10px;
  }
}
/* -------------------------------------------

certifications — Fase 4, rediseño 2026-08

------------------------------------------- */
.mil-cert-card {
  padding: 30px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  height: 100%;
}

.mil-cert-list {
  list-style: none;
  padding: 0;
  margin: 15px 0 0 0;
}
.mil-cert-list li {
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.mil-cert-list li:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

.mil-cert-name {
  display: block;
  font-weight: 600;
}

.mil-cert-meta {
  display: block;
  opacity: 0.6;
  font-size: 0.85em;
  margin-top: 2px;
}

.mil-cert-desc {
  display: block;
  opacity: 0.8;
  font-size: 0.9em;
  margin-top: 6px;
}

/* -------------------------------------------

projects carousel (home) — Fase 3, rediseño 2026-08

------------------------------------------- */
.mil-project-nav {
  display: flex;
  gap: 15px;
  justify-content: flex-end;
}

.mil-projects-slider {
  overflow: hidden;
  padding-bottom: 10px;
}
.mil-projects-slider .swiper-wrapper {
  align-items: stretch;
}
.mil-projects-slider .swiper-slide {
  height: auto;
}

.mil-project-card {
  display: block;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  overflow: hidden;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-project-card .mil-cover-frame {
  position: relative;
  overflow: hidden;
  padding-bottom: 60%;
}
.mil-project-card .mil-cover-frame img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-project-card .mil-project-descr {
  padding: 30px;
}
.mil-project-card:hover .mil-cover-frame img {
  transform: scale(1.05);
}

.mil-project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}
.mil-project-tags span {
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 20px;
  font-size: 0.8em;
  opacity: 0.7;
}

.mil-secondary-repos {
  padding-top: 60px;
  border-top: solid 1px rgba(0, 0, 0, 0.1);
  margin-top: 30px;
}

/* -------------------------------------------

recognition (home #about only)

K95-style showcase block, full-bleed, isolated palette ($rec-* tokens in
_variables.scss). This is a deliberate break from the rest of the site's
visual language -- do not extend these tokens or patterns elsewhere.

------------------------------------------- */
.mil-recognition {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 36px 30px;
  background: linear-gradient(165deg, #1A1AE6 0%, #0E0E9B 100%);
  color: #FFFFFF;
  isolation: isolate;
}
@media screen and (max-width: 992px) {
  .mil-recognition {
    padding: 32px 24px;
  }
}
@media screen and (max-width: 480px) {
  .mil-recognition {
    padding: 28px 20px;
  }
}

.mil-recognition-grid {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.mil-recognition-grid::before, .mil-recognition-grid::after {
  content: "";
  position: absolute;
  left: -30%;
  right: -30%;
  height: 220%;
  background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.18) 0, rgba(255, 255, 255, 0.18) 1px, transparent 1px, transparent 80px), repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.18) 0, rgba(255, 255, 255, 0.18) 1px, transparent 1px, transparent 80px);
}
.mil-recognition-grid::before {
  top: -50%;
  transform: perspective(600px) rotateX(55deg);
  opacity: 0.8;
}
.mil-recognition-grid::after {
  bottom: -50%;
  transform: perspective(600px) rotateX(-55deg) scaleY(-1);
  opacity: 0.45;
}

.mil-recognition-inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 40px;
  align-items: center;
}
@media screen and (max-width: 992px) {
  .mil-recognition-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.mil-recognition-label {
  display: inline-block;
  font-size: 14px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.68);
  margin-bottom: 10px;
}

.mil-recognition-title {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  font-size: 68px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 10px;
  color: #FFFFFF;
}
@media screen and (max-width: 1200px) {
  .mil-recognition-title {
    font-size: 56px;
  }
}
@media screen and (max-width: 992px) {
  .mil-recognition-title {
    font-size: 44px;
  }
}
@media screen and (max-width: 768px) {
  .mil-recognition-title {
    font-size: 36px;
  }
}

.mil-recognition-meta {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.68);
  margin: 0 0 10px;
}

.mil-recognition-body {
  font-size: 15px;
  line-height: 1.4;
  max-width: 52ch;
  color: #FFFFFF;
  margin: 0 0 12px;
}

.mil-recognition-link {
  position: relative;
  display: inline-block;
  color: #FFFFFF;
  font-size: 15px;
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.68);
  transition: opacity 0.2s cubic-bezier(0, 0, 0.3642, 1), border-color 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-recognition-link:hover {
  opacity: 0.75;
}
.mil-recognition-link:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 4px;
}

.mil-recognition-evidence {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mil-recognition-stage {
  position: relative;
  width: 100%;
  max-width: 220px;
  height: 170px;
  perspective: 1400px;
  perspective-origin: 50% 50%;
}
@media screen and (max-width: 767px) {
  .mil-recognition-stage {
    height: auto;
    max-width: 100%;
    perspective: none;
  }
}

.mil-recognition-ring {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  width: 100%;
  height: 100%;
  border-radius: 6px;
}
.mil-recognition-ring::-webkit-scrollbar {
  display: none;
}
.mil-recognition-ring:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 4px;
}

.mil-recognition-piece {
  flex: 0 0 auto;
  width: 120px;
  height: 100%;
  margin: 0;
  scroll-snap-align: center;
  transition: opacity 0.4s ease;
}

.mil-recognition-piece img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 6px;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.4);
}

.mil-recognition-ring--3d {
  display: block;
  overflow: visible;
  position: relative;
  width: 130px;
  height: 160px;
  margin: 0 auto;
  transform-style: preserve-3d;
  transform: rotateY(var(--rec-rot, 0deg));
  transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
  cursor: grab;
}
.mil-recognition-ring--3d:active {
  cursor: grabbing;
}
.mil-recognition-ring--3d .mil-recognition-piece {
  position: absolute;
  inset: 0;
  scroll-snap-align: none;
}

.mil-recognition-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 16px;
}
@media screen and (max-width: 767px) {
  .mil-recognition-controls {
    display: none;
  }
}

.mil-recognition-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.68);
  background: transparent;
  color: #FFFFFF;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s cubic-bezier(0, 0, 0.3642, 1), border-color 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-recognition-arrow:hover {
  background: rgb(221, 2, 0);
  border-color: rgb(221, 2, 0);
}
.mil-recognition-arrow:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 4px;
}

.mil-recognition-counter {
  font-size: 13px;
  letter-spacing: 0.03em;
  background: rgb(221, 2, 0);
  color: #FFFFFF;
  padding: 6px 16px;
  border-radius: 999px;
  min-width: 56px;
  text-align: center;
}

.mil-recognition--static .mil-recognition-ring {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  overflow: visible;
  height: auto;
}
.mil-recognition--static .mil-recognition-piece {
  position: static;
  width: auto;
  height: auto;
  transform: none !important;
  opacity: 1 !important;
}
.mil-recognition--static .mil-recognition-piece img {
  aspect-ratio: 3/4;
  height: auto;
}
.mil-recognition--static .mil-recognition-controls {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .mil-recognition-ring {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    overflow: visible !important;
    height: auto !important;
    transform: none !important;
  }
  .mil-recognition-piece {
    position: static !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    opacity: 1 !important;
  }
  .mil-recognition-piece img {
    aspect-ratio: 3/4;
    height: auto;
  }
  .mil-recognition-controls {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .mil-recognition-ring--3d {
    display: flex !important;
    position: static;
    width: 100%;
    height: 100%;
    transform: none !important;
  }
}
/* -------------------------------------------

certification cards — clickable lightbox trigger, Fase 3 2026-09
Own partial so the feature is fully revertible without touching
_components.scss (which still owns the static card/list look).

------------------------------------------- */
.mil-cert-trigger {
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.mil-cert-trigger:hover .mil-cert-name, .mil-cert-trigger:focus-visible .mil-cert-name {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mil-cert-trigger:focus-visible {
  outline: 2px solid rgb(221, 2, 0);
  outline-offset: 6px;
  border-radius: 2px;
}

.fancybox-bg {
  background: rgb(20, 16, 12);
}

.fancybox-image {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.fancybox-caption {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0));
}

.mil-fb-caption {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.mil-fb-download {
  color: rgb(255, 255, 255);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}
.mil-fb-download:hover, .mil-fb-download:focus-visible {
  color: rgb(255, 255, 255);
  -webkit-text-decoration-color: rgb(221, 2, 0);
          text-decoration-color: rgb(221, 2, 0);
}
.mil-fb-download:focus-visible {
  outline: 2px solid rgb(221, 2, 0);
  outline-offset: 4px;
}

/* -------------------------------------------

project preview accordion — reuses the existing
.mil-accordion-group/menu/content mechanism (js/main.js,
_components.scss "accordion" section) instead of building a
second disclosure widget. See docs/rediseno/ESTADO.md,
"Home y Proyectos — cierre de versión" (2026-09-18) and its
2026-09-18 addendum (cover image restored to the card front).
Own partial so this layer is fully revertible without
touching _components.scss.

------------------------------------------- */
.mil-project-list .mil-project-item {
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
}
.mil-project-list .mil-project-item:first-child {
  border-top: solid 1px rgba(0, 0, 0, 0.1);
}

.mil-project-menu {
  padding: 30px 0;
  cursor: pointer;
  gap: 30px;
}
.mil-project-menu .mil-cover-frame {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  width: 180px;
  padding-bottom: 112px;
  border-radius: 4px;
}
.mil-project-menu .mil-cover-frame img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top center;
     object-position: top center;
  position: absolute;
  top: 0;
  left: 0;
}
.mil-project-menu .mil-project-info {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.mil-project-menu .mil-project-summary {
  flex: 1;
  min-width: 0;
}
.mil-project-menu .mil-project-summary h4 {
  margin: 0;
}
.mil-project-menu:focus-visible {
  outline: 2px solid rgb(221, 2, 0);
  outline-offset: 6px;
  border-radius: 2px;
}
@media screen and (max-width: 576px) {
  .mil-project-menu {
    flex-wrap: wrap;
  }
  .mil-project-menu .mil-cover-frame {
    width: 100%;
    padding-bottom: 56%;
  }
}

.mil-project-preview .mil-project-preview-inner {
  max-width: 640px;
  padding-bottom: 40px;
}
.mil-project-preview .mil-project-preview-text {
  margin-bottom: 20px;
}

.mil-projects-grid .mil-accordion-group {
  height: 100%;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  overflow: hidden;
}
.mil-projects-grid .mil-accordion-group .mil-project-menu {
  padding: 0;
  gap: 0;
  flex-direction: column;
  align-items: stretch;
}
.mil-projects-grid .mil-accordion-group .mil-project-menu .mil-cover-frame {
  width: 100%;
  padding-bottom: 56%;
  border-radius: 0;
}
.mil-projects-grid .mil-accordion-group .mil-project-menu .mil-project-info {
  padding: 24px;
}
.mil-projects-grid .mil-accordion-group .mil-project-preview-inner {
  max-width: none;
  padding: 0 24px 24px;
}

.mil-doc-toc-wrap {
  position: -webkit-sticky;
  position: sticky;
  top: 120px;
}

.mil-doc-toc-toggle {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  background: rgb(217, 217, 217);
  border: none;
  border-radius: 8px;
  padding: 16px 20px;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  color: rgb(0, 0, 0);
  cursor: pointer;
}
.mil-doc-toc-toggle i {
  transition: transform 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-doc-toc-toggle:focus-visible {
  outline: 2px solid rgb(221, 2, 0);
  outline-offset: 2px;
}

.mil-doc-toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mil-doc-toc li + li {
  margin-top: 12px;
}

.mil-doc-toc-link {
  display: block;
  padding: 6px 0 6px 16px;
  border-left: 2px solid rgb(229, 229, 229);
  color: rgb(102, 102, 102);
  font-size: 14px;
  transition: color 0.2s cubic-bezier(0, 0, 0.3642, 1), border-color 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-doc-toc-link:hover {
  color: rgb(0, 0, 0);
}
.mil-doc-toc-link.mil-active {
  color: rgb(0, 0, 0);
  border-left-color: rgb(221, 2, 0);
  font-weight: 500;
}
.mil-doc-toc-link:focus-visible {
  outline: 2px solid rgb(221, 2, 0);
  outline-offset: 2px;
}

.mil-doc-code {
  position: relative;
  margin-bottom: 30px;
}
.mil-doc-code pre {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0;
  padding: 30px;
  background: rgb(26, 26, 26);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
}
.mil-doc-code code {
  font-family: "Courier New", Courier, monospace;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre;
}

.mil-doc-copy {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  color: rgb(255, 255, 255);
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  padding: 6px 12px;
  cursor: pointer;
  transition: background 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.mil-doc-copy:hover {
  background: rgba(255, 255, 255, 0.2);
}
.mil-doc-copy:focus-visible {
  outline: 2px solid rgb(255, 255, 255);
  outline-offset: 2px;
}
.mil-doc-copy:disabled {
  opacity: 0.7;
  cursor: default;
}

.mil-doc-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 30px;
}
.mil-doc-table-wrap table {
  min-width: 100%;
}

@media (max-width: 991px) {
  .mil-doc-toc-wrap {
    position: static;
    margin-bottom: 40px;
  }
  .mil-doc-toc-toggle {
    display: flex;
  }
  .mil-doc-toc {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0, 0, 0.3642, 1);
    border: 1px solid rgb(229, 229, 229);
    border-radius: 8px;
    margin-top: 8px;
    padding: 0 20px;
  }
  .mil-doc-toc-wrap--open .mil-doc-toc {
    max-height: 400px;
    padding: 20px;
  }
  .mil-doc-toc-wrap--open .mil-doc-toc-toggle i {
    transform: rotate(180deg);
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFDaEI7Ozs7Ozs7Ozs2Q0FTNkM7QUFDN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7NkNBd0M2QztBQUM3QyxvSEFBb0g7QUFDcEgsdUZBQXVGO0FBQ3ZGOzs7OzZDQUk2QztBQUM3Qzs7O0VBR0Usc0JBQXNCO0VBQ3RCLFVBQVU7RUFDVixTQUFTO0FBQ1g7O0FBRUE7O0VBRUUsVUFBVTtFQUNWLFNBQVM7RUFDVCxpQ0FBaUM7RUFDakMsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsb0NBQW9DO0VBQ3BDLGlCQUFpQjtFQUNqQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFLGNBQWM7RUFDZCw2QkFBNkI7QUFDL0I7O0FBSEE7RUFDRSxjQUFjO0VBQ2QsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsWUFBWTtBQUNkOztBQUVBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDOzs7Ozs7Ozs7Ozs7RUFZRSxpQ0FBaUM7RUFDakMsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFOzs7Ozs7Ozs7Ozs7SUFZRSxhQUFhO0VBQ2Y7RUFDQTs7Ozs7Ozs7Ozs7O0lBWUUsZUFBZTtFQUNqQjtBQUNGOztBQUVBOztFQUVFLGVBQWU7QUFDakI7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0U7O0lBRUUsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTs7RUFFRSxlQUFlO0VBQ2YsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0U7O0lBRUUsZUFBZTtFQUNqQjtBQUNGOztBQUVBOztFQUVFLGVBQWU7QUFDakI7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0U7O0lBRUUsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7O0VBRUUsZUFBZTtBQUNqQjtBQUNBO0VBQ0U7O0lBRUUsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTs7RUFFRSxlQUFlO0VBQ2YsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7O0VBRUUsZUFBZTtFQUNmLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0U7O0lBRUUsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRTs7SUFFRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFOztJQUVFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixxQ0FBcUM7RUFDckMsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRTtJQUNFLGFBQWE7SUFDYixlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG9DQUFvQztBQUN0QztBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDOztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtFQUNwQjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLFNBQVM7RUFDVCxZQUFZO0VBQ1osV0FBVztFQUNYLG9DQUFvQztFQUNwQyxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFLDhCQUE4QjtFQUM5QixZQUFZO0FBQ2Q7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixvQkFBaUI7S0FBakIsaUJBQWlCO0VBQ2pCLDBCQUF1QjtLQUF2Qix1QkFBdUI7QUFDekI7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7RUFDYiwwQ0FBMEM7RUFDMUMsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLDBDQUEwQztFQUMxQyw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usb0NBQW9DO0VBQ3BDLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UscUNBQXFDO0FBQ3ZDOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGVBQWU7RUFDZixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixnQ0FBZ0M7RUFDaEMsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFVBQVU7RUFDVixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGNBQWM7RUFDZCxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLHVCQUF1QjtFQUN2Qix3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLG9DQUFvQztBQUN0QztBQUNBO0VBQ0U7SUFDRSxZQUFZO0lBQ1osc0JBQXNCO0VBQ3hCO0VBQ0E7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7O0VBRUUsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlO0VBQ2YsV0FBVztFQUNYLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixpQ0FBaUM7RUFDakMsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWiwyQ0FBMkM7RUFDM0MsbUJBQW1CO0FBQ3JCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFFRSxlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIseUJBQXlCO0FBQzNCO0FBUEE7O0VBRUUsZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0FBQ2Y7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLFNBQVM7RUFDVCxZQUFZO0VBQ1osV0FBVztFQUNYLG9DQUFvQztBQUN0QztBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osY0FBYztFQUNkLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLGVBQWU7RUFDZixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFlBQVk7RUFDWixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSwrQkFBK0I7QUFDakM7QUFDQTtFQUNFLGdDQUFnQztBQUNsQztBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGtCQUFrQjtFQUNsQixpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG9DQUFvQztBQUN0Qzs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFO0lBQ0UsZ0JBQWdCO0VBQ2xCO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRTtJQUNFLGlCQUFpQjtJQUNqQixvQkFBb0I7RUFDdEI7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFO0lBQ0UsaUJBQWlCO0lBQ2pCLG9CQUFvQjtFQUN0QjtBQUNGOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRTtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsb0JBQW9CO0VBQ3RCO0FBQ0Y7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRTtJQUNFLGlCQUFpQjtJQUNqQixvQkFBb0I7RUFDdEI7QUFDRjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFO0lBQ0UsaUJBQWlCO0lBQ2pCLG9CQUFvQjtFQUN0QjtBQUNGOztBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRTtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGOztBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsaUJBQWlCO0VBQ25CO0FBQ0Y7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsYUFBYTtFQUNiLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsbUJBQW1CO0VBQ3JCO0FBQ0Y7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsZUFBZTtFQUNmLFVBQVU7RUFDVixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxhQUFhO0VBQ2IsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsV0FBVztFQUNYLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxVQUFVO0VBQ1Ysa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRTtJQUNFLHNCQUFzQjtFQUN4QjtFQUNBO0lBQ0UsZUFBZTtJQUNmLG1CQUFtQjtFQUNyQjtBQUNGO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsWUFBWTtFQUNaLGdDQUFnQztBQUNsQztBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osZUFBZTtFQUNmLFdBQVc7RUFDWCw4QkFBOEI7RUFDOUIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsK0JBQStCO0VBQy9CLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGFBQWE7QUFDZjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsV0FBVztFQUNYLE1BQU07RUFDTixRQUFRO0VBQ1IsVUFBVTtFQUNWLFlBQVk7RUFDWiw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1QsZ0NBQWdDO0FBQ2xDO0FBQ0E7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTtJQUNFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QixlQUFlO0VBQ2YsVUFBVTtFQUNWLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDhCQUE4QjtFQUM5QixXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtFQUNkO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsWUFBWTtJQUNaLHFDQUFxQztJQUNyQyxpREFBaUQ7SUFDakQsZUFBZTtJQUNmLGtDQUEwQjtZQUExQiwwQkFBMEI7RUFDNUI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtFQUNBO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFLFdBQVc7RUFDWCxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLDhEQUE4RDtBQUNoRTtBQUNBO0VBQ0UsWUFBWTtFQUNaLDZEQUE2RDtFQUM3RCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLG1CQUFtQjtBQUNyQjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGVBQWU7RUFDZixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2QsV0FBVztFQUNYLGFBQWE7RUFDYix3QkFBd0I7RUFDeEIsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxTQUFTO0FBQ1g7QUFDQTtFQUNFLFdBQVc7RUFDWCxRQUFRO0FBQ1Y7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsNkNBQTZDO0FBQy9DO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLDhDQUE4QztBQUNoRDs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxlQUFlO0VBQ2YsVUFBVTtFQUNWLFdBQVc7RUFDWCxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLFVBQVU7RUFDVixvQkFBb0I7RUFDcEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSw0QkFBNEI7RUFDNUIsVUFBVTtFQUNWLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQiwrQ0FBK0M7RUFDL0MsVUFBVTtFQUNWLDJCQUEyQjtFQUMzQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxRQUFRO0VBQ1IsVUFBVTtFQUNWLDRCQUE0QjtFQUM1Qiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFLFVBQVU7RUFDVixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4QixVQUFVO0VBQ1Ysc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxVQUFVO0VBQ1Ysd0JBQXdCO0VBQ3hCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLHdCQUF3QjtFQUN4QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7RUFDZCw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFVBQVU7RUFDVixTQUFTO0FBQ1g7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsK0JBQStCO0VBQy9CLGVBQWU7RUFDZiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQiwwQ0FBMEM7RUFDMUMsbUJBQW1CO0VBQ25CLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsZ0NBQWdDO0VBQ2hDLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLCtCQUErQjtFQUMvQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSwrQkFBK0I7RUFDL0IsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLGFBQWE7RUFDZjtFQUNBO0lBQ0UsMEJBQTBCO0VBQzVCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7QUFDRjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7QUFDRjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFO0lBQ0Usd0NBQXdDO0VBQzFDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UseUNBQXlDO0VBQzNDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQiwyQ0FBMkM7SUFDM0MsaUJBQWlCO0VBQ25CO0FBQ0Y7O0FBRUE7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtFQUNwQjtBQUNGO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO0lBQ25CLGtCQUFrQjtFQUNwQjtBQUNGO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixzQkFBc0I7RUFDdEIsb0NBQW9DO0VBQ3BDLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLE9BQU87RUFDUCxXQUFXO0FBQ2I7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixvQ0FBb0M7RUFDcEMsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7RUFDQTtJQUNFLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsWUFBWTtFQUNkO0FBQ0Y7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0U7SUFDRSxTQUFTO0lBQ1QsU0FBUztFQUNYO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFQUNyQjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFlBQVk7RUFDZDtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxZQUFZO0VBQ1osc0JBQW1CO0tBQW5CLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsOEZBQThGO0VBQzlGLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLFlBQVk7QUFDZDtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7RUFDQTtJQUNFLG9CQUFpQjtPQUFqQixpQkFBaUI7SUFDakIsdUJBQW9CO09BQXBCLG9CQUFvQjtFQUN0QjtBQUNGOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQUFhO0FBQ2Y7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osYUFBYTtBQUNmO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRTtJQUNFLDRCQUE0QjtFQUM5QjtFQUNBO0lBQ0UsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLFdBQVc7RUFDWCxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixtQ0FBbUM7RUFDbkMsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixZQUFZO0VBQ1osYUFBYTtFQUNiLFlBQVk7RUFDWixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsU0FBUztBQUNYO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxVQUFVO0FBQ1o7QUFDQTtFQUNFLHdDQUF3QztBQUMxQztBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBO0VBQ0UsVUFBVTtFQUNWLFVBQVU7QUFDWjtBQUNBO0VBQ0UsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsU0FBUztFQUNULFlBQVk7RUFDWixhQUFhO0VBQ2IsNEJBQTRCO0VBQzVCLHNDQUFzQztBQUN4QztBQUNBO0VBQ0U7SUFDRSx3REFBd0Q7RUFDMUQ7RUFDQTtJQUNFLHlEQUF5RDtFQUMzRDtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7QUFDZDtBQUNBO0VBQ0UsNkRBQTZEO0FBQy9EO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsK0RBQStEO0FBQ2pFO0FBQ0E7RUFDRSw2REFBNkQ7QUFDL0Q7QUFDQTtFQUNFLFNBQVM7RUFDVCwrREFBK0Q7QUFDakU7QUFDQTtFQUNFLDZEQUE2RDtBQUMvRDtBQUNBO0VBQ0UsU0FBUztFQUNULCtEQUErRDtBQUNqRTtBQUNBO0VBQ0UsNkRBQTZEO0FBQy9EO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsK0RBQStEO0FBQ2pFO0FBQ0E7RUFDRSwyREFBMkQ7QUFDN0Q7QUFDQTtFQUNFLFNBQVM7RUFDVCw2REFBNkQ7QUFDL0Q7QUFDQTtFQUNFLDJDQUEyQztBQUM3QztBQUNBO0VBQ0UsU0FBUztFQUNULDJDQUEyQztBQUM3QztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixZQUFZO0VBQ1osd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7RUFDQTtJQUNFLDRCQUE0QjtFQUM5QjtBQUNGO0FBQ0E7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQ0FBZ0M7RUFDaEMsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxRQUFRO0VBQ1IsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osb0JBQWlCO0tBQWpCLGlCQUFpQjtFQUNqQix1QkFBb0I7S0FBcEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsd0JBQXdCO0VBQzFCO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsVUFBVTtBQUNaOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7RUFDQTtJQUNFLGNBQWM7SUFDZCxnQkFBZ0I7RUFDbEI7QUFDRjs7QUFFQTtFQUNFLFlBQVk7RUFDWixZQUFZO0VBQ1oscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIsdUJBQW9CO0tBQXBCLG9CQUFvQjtFQUNwQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFVBQVU7RUFDVix3QkFBd0I7RUFDeEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQix1QkFBdUI7RUFDdkIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFFBQVE7RUFDUixnQ0FBZ0M7RUFDaEMsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRTtJQUNFLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsVUFBVTtFQUNaO0FBQ0Y7O0FBRUE7RUFDRSw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLGdEQUFnRDtBQUNsRDtBQUNBO0VBQ0UsK0NBQStDO0FBQ2pEO0FBQ0E7RUFDRTtJQUNFLG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsaURBQWlEO0VBQ25EO0VBQ0E7SUFDRSwrQ0FBK0M7RUFDakQ7QUFDRjtBQUNBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLCtDQUErQztJQUMvQyxpREFBaUQ7RUFDbkQ7QUFDRjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0U7SUFDRSxtQkFBbUI7RUFDckI7QUFDRjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixvQ0FBb0M7RUFDcEMsYUFBYTtFQUNiLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBO0VBQ0UsaURBQWlEO0VBQ2pELHFCQUFxQjtFQUNyQixlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSwrQkFBK0I7QUFDakM7QUFDQTtFQUNFLDJDQUEyQztBQUM3QztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBOzs7OzZDQUk2QztBQUM3QztFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVztFQUNYLFFBQVE7RUFDUixnQ0FBZ0M7RUFDaEMsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIsdUJBQW9CO0tBQXBCLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRSxVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLG9DQUFvQztFQUNwQyxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHlCQUF5QjtFQUN6QixvQkFBb0I7RUFDcEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMkJBQTJCO0VBQzNCLDhDQUE4QztFQUM5QyxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHlCQUF5QjtFQUN6Qiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLFVBQVU7RUFDVixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFVBQVU7RUFDVix3QkFBd0I7RUFDeEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxVQUFVO0VBQ1YsU0FBUztFQUNULGFBQWE7QUFDZjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSxxQkFBcUI7RUFDckIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsZUFBZTtFQUNmLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRTtJQUNFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixhQUFhO0VBQ2IsYUFBYTtFQUNiLFVBQVU7RUFDVixZQUFZO0VBQ1osNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQix5REFBeUQ7QUFDM0Q7QUFDQTtFQUNFO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDtBQUNGO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIseURBQXlEO0FBQzNEO0FBQ0E7RUFDRTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7QUFDRjtBQUNBO0VBQ0UsbURBQW1EO0FBQ3JEO0FBQ0E7RUFDRSxtREFBbUQ7QUFDckQ7QUFDQTtFQUNFLG1EQUFtRDtBQUNyRDtBQUNBO0VBQ0UsbURBQW1EO0FBQ3JEO0FBQ0E7RUFDRSxtREFBbUQ7QUFDckQ7QUFDQTtFQUNFLG1EQUFtRDtBQUNyRDtBQUNBO0VBQ0UsbURBQW1EO0FBQ3JEO0FBQ0E7RUFDRSwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsY0FBYztFQUNkLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHFDQUFxQztBQUN2QztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixPQUFPO0VBQ1AsV0FBVztFQUNYLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0U7SUFDRSxNQUFNO0VBQ1I7QUFDRjtBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIsMEJBQXVCO0tBQXZCLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIsNEJBQTRCO0VBQzVCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsd0NBQXdDO0VBQ3hDLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsVUFBVTtFQUNWLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0U7SUFDRSxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7RUFDZDtFQUNBO0lBQ0UsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixtQkFBbUI7RUFDckI7RUFDQTtJQUNFLFdBQVc7SUFDWCxzQkFBc0I7RUFDeEI7QUFDRjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsVUFBVTtBQUNaO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsd0NBQXdDO0VBQ3hDLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxZQUFZO0VBQ1osZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsb0NBQW9DO0VBQ3BDLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLHFCQUFxQjtFQUNyQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxnQ0FBZ0M7QUFDbEM7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQiw2QkFBNkI7RUFDN0IsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0VBQ0E7SUFDRSxlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLHVCQUF1QjtFQUN6QjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjs7QUFFQTs7Ozs2Q0FJNkM7QUFDN0M7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLCtCQUErQjtFQUMvQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLDJCQUEyQjtFQUMzQixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCwwQ0FBMEM7RUFDMUMsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixpQ0FBaUM7RUFDakMsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsbUJBQW1CO0FBQ3JCO0FBUEE7RUFDRSx5QkFBeUI7RUFDekIsaUNBQWlDO0VBQ2pDLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usb0NBQW9DO0VBQ3BDLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxvQ0FBb0M7QUFDdEM7O0FBRUE7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osb0JBQWlCO0tBQWpCLGlCQUFpQjtFQUNqQiwwQkFBdUI7S0FBdkIsdUJBQXVCO0VBQ3ZCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0U7SUFDRSxZQUFZO0lBQ1osb0JBQW9CO0VBQ3RCO0FBQ0Y7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2Isb0NBQW9DO0VBQ3BDLGVBQWU7QUFDakI7QUFDQTtFQUNFO0lBQ0UsYUFBYTtJQUNiLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsWUFBWTtFQUNkO0VBQ0E7SUFDRSxtQkFBbUI7RUFDckI7QUFDRjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztBQUNiO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxVQUFVO0VBQ1Ysa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtFQUNwQjtBQUNGOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLFdBQVc7RUFDWCxlQUFlO0VBQ2YsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG9DQUFvQztBQUN0QztBQUNBO0VBQ0U7SUFDRSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0Isb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixXQUFXO0VBQ1gsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiwyQ0FBMkM7RUFDM0MseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRTtJQUNFLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsd0NBQXdDO0VBQ3hDLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRTtJQUNFLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSxhQUFhO0VBQ2Y7RUFDQTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBOzs7OzJCQUkyQjtBQUMzQjtFQUNFLG9DQUFvQztFQUNwQyxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLFdBQVc7RUFDWCxZQUFZO0VBQ1osOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7Ozs7NkNBSTZDO0FBQzdDO0VBQ0UsMkNBQTJDO0VBQzNDLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG9DQUFvQztFQUNwQyxlQUFlO0VBQ2YsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxnQkFBZ0I7QUFDbEI7O0FBRUE7Ozs7MkJBSTJCO0FBQzNCO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCw4Q0FBOEM7RUFDOUMsaURBQWlEO0VBQ2pELG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjs7QUFFQTs7OzsyQkFJMkI7QUFDM0I7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLFdBQVc7RUFDWCxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRTtJQUNFLHFCQUFxQjtJQUNyQixtQkFBbUI7RUFDckI7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQiwyREFBMkQ7QUFDN0Q7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLFNBQVM7RUFDVCxrQ0FBa0M7RUFDbEMsZ0NBQWdDO0VBQ2hDLDJEQUEyRDtBQUM3RDtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osVUFBVTtFQUNWLGtFQUFrRTtFQUNsRSw0REFBNEQ7QUFDOUQ7O0FBRUE7RUFDRTtJQUNFLGdDQUFnQztJQUNoQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGdDQUFnQztJQUNoQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGlDQUFpQztJQUNqQyx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGdDQUFnQztJQUNoQyx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxnQ0FBZ0M7SUFDaEMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSxpQ0FBaUM7SUFDakMsd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLHNCQUFzQjtFQUN4QjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLHFC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LGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsZUFBZTtFQUNqQjtFQUNBO0lBQ0UsaUJBQWlCO0lBQ2pCLGFBQWE7RUFDZjtFQUNBO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0YiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5OYW1lOiBcdFx0UnVpemFyY2hcblZlcnNpb246ICAgIDEuMFxuRGV2ZWxvcGVyOlx0TmF6YXIgTWlsbGVyIChtaWxsZXJEaWdpdGFsRGVzaWduKVxuUG9ydGZvbGlvOiAgaHR0cHM6Ly90aGVtZWZvcmVzdC5uZXQvdXNlci9taWxsZXJkaWdpdGFsZGVzaWduL3BvcnRmb2xpbz9yZWY9TWlsbGVyRGlnaXRhbERlc2lnblxuXG5wLnMuIEkgYW0gYXZhaWxhYmxlIGZvciBGcmVlbGFuY2UgaGlyZSAoVUkgZGVzaWduLCB3ZWIgZGV2ZWxvcG1lbnQpLiBlbWFpbDogbWlsbGVyLnRoZW1lc0BnbWFpbC5jb21cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4xLiBjb21tb25cbiAgICAtIG1haW5cbiAgICAtIHR5cG9ncmFwaHlcbiAgICAtIGxpbmtcbiAgICAtIGJ1dHRvblxuICAgIC0gZm9ybVxuICAgIC0gYnJlYWRjcnVtYnNcbiAgICAtIGJhY2tncm91bmRzXG4gICAgLSBzcGFjZXNcbjIuIGNvbXBvbmVudHNcbiAgICAtIHByZWxvYWRlclxuICAgIC0gY3Vyc29yXG4gICAgLSBoaWRkZW4gZWxlbWVudHNcbiAgICAtIHNjcm9sbGJhclxuICAgIC0gZnJhbWVcbiAgICAtIG1lbnUgYnV0dG9uXG4gICAgLSBtZW51IFxuICAgIC0gYmFubmVyXG4gICAgLSBjaXJjbGUgdGV4dFxuICAgIC0gbGluZXNcbiAgICAtIGRvZGVjYWhlZHJvblxuICAgIC0gYWJvdXRcbiAgICAtIHBhcnRuZXJzXG4gICAgLSBzZXJ2aWNlc1xuICAgIC0gdGVhbVxuICAgIC0gc29jaWFsIGljb25zXG4gICAgLSByZXZpZXZzXG4gICAgLSBibG9nXG4gICAgLSBmb290ZXJcbiAgICAtIHBvcnRmb2xpb1xuICAgIC0gbWFwXG4gICAgLSBhY2NvcmRpb25cbiAgICAtIHByaWNlXG4gICAgLSA0MDRcbiAgICAtIGltYWdlc1xuICAgIC0gcGFnZSB0cmFuc2l0aW9uc1xuXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1PdXRmaXQ6d2dodEAxMDA7MjAwOzMwMDs0MDA7NTAwOzYwMDs3MDA7ODAwOzkwMCZkaXNwbGF5PXN3YXBcIik7XG5AaW1wb3J0IHVybChodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNS4wL2Nzcy9hbGwubWluLmNzcyk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1haW5cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBcIk91dGZpdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiByZ2IoNzQsIDc0LCA3NCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTcsIDIxNywgMjE3KTtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBodG1sLFxuICBib2R5IHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbn1cblxuKjo6c2VsZWN0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWlsLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5taWwtcmVsYXRpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5taWwtby1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWlsLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWlsLXZlcnQtYmV0d2VlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLW1vYmlsZS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50eXBvZ3JhcGh5XG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmgxLFxuLm1pbC1oMSxcbmgyLFxuLm1pbC1oMTIsXG5oMyxcbi5taWwtaDMsXG5oNCxcbi5taWwtaDQsXG5oNSxcbi5taWwtaDUsXG5oNixcbi5taWwtaDYge1xuICBmb250LWZhbWlseTogXCJPdXRmaXRcIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBoMSBicixcbiAgLm1pbC1oMSBicixcbiAgaDIgYnIsXG4gIC5taWwtaDEyIGJyLFxuICBoMyBicixcbiAgLm1pbC1oMyBicixcbiAgaDQgYnIsXG4gIC5taWwtaDQgYnIsXG4gIGg1IGJyLFxuICAubWlsLWg1IGJyLFxuICBoNiBicixcbiAgLm1pbC1oNiBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBoMSBici5taWwta2VlcC1icmVhayxcbiAgLm1pbC1oMSBici5taWwta2VlcC1icmVhayxcbiAgaDIgYnIubWlsLWtlZXAtYnJlYWssXG4gIC5taWwtaDEyIGJyLm1pbC1rZWVwLWJyZWFrLFxuICBoMyBici5taWwta2VlcC1icmVhayxcbiAgLm1pbC1oMyBici5taWwta2VlcC1icmVhayxcbiAgaDQgYnIubWlsLWtlZXAtYnJlYWssXG4gIC5taWwtaDQgYnIubWlsLWtlZXAtYnJlYWssXG4gIGg1IGJyLm1pbC1rZWVwLWJyZWFrLFxuICAubWlsLWg1IGJyLm1pbC1rZWVwLWJyZWFrLFxuICBoNiBici5taWwta2VlcC1icmVhayxcbiAgLm1pbC1oNiBici5taWwta2VlcC1icmVhayB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbmgxLFxuLm1pbC1oMSB7XG4gIGZvbnQtc2l6ZTogODZweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICBoMSxcbiAgLm1pbC1oMSB7XG4gICAgZm9udC1zaXplOiA3NHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgaDEsXG4gIC5taWwtaDEge1xuICAgIGZvbnQtc2l6ZTogNzJweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgaDEsXG4gIC5taWwtaDEge1xuICAgIGZvbnQtc2l6ZTogNThweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgaDEsXG4gIC5taWwtaDEge1xuICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgfVxufVxuXG5oMixcbi5taWwtaDIge1xuICBmb250LXNpemU6IDY4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGgyLFxuICAubWlsLWgyIHtcbiAgICBmb250LXNpemU6IDU2cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIGgyLFxuICAubWlsLWgyIHtcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGgyLFxuICAubWlsLWgyIHtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gIH1cbn1cblxuaDMsXG4ubWlsLWgzIHtcbiAgZm9udC1zaXplOiA0MnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGgzLFxuICAubWlsLWgzIHtcbiAgICBmb250LXNpemU6IDM5cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIGgzLFxuICAubWlsLWgzIHtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGgzLFxuICAubWlsLWgzIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbn1cblxuaDQsXG4ubWlsLWg0IHtcbiAgZm9udC1zaXplOiAyOHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGg0LFxuICAubWlsLWg0IHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIGg0LFxuICAubWlsLWg0IHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGg0LFxuICAubWlsLWg0IHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gIH1cbn1cblxuaDUsXG4ubWlsLWg1IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGg1LFxuICAubWlsLWg1IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cblxuaDYsXG4ubWlsLWg2IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICBoNixcbiAgLm1pbC1oNiB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICBoNixcbiAgLm1pbC1oNiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBoNixcbiAgLm1pbC1oNiB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG59XG5cbi5taWwtbm8td3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiA2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDRweCByZ2IoMjIxLCAyLCAwKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbi5taWwtdGV4dC1zbSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLm1pbC10ZXh0LWxnIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTcwJTtcbn1cblxuLm1pbC10ZXh0LXhsIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBsaW5lLWhlaWdodDogMTgwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5taWwtdGV4dC14bCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG59XG5cbi5taWwtdXBwZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG59XG5cbi5taWwtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5taWwtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWlsLWNvbXBsZXgtdGl0bGUge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4ubWlsLWFjY2VudCB7XG4gIGNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbn1cblxuLm1pbC1sYWJlbC5taWwtYWNjZW50IHtcbiAgY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcbn1cblxuLm1pbC1saWdodCB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSkgIWltcG9ydGFudDtcbn1cbi5taWwtbGlnaHQgYSB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSkgIWltcG9ydGFudDtcbn1cblxuLm1pbC1tdXRlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG5cbi5taWwtZGFyayB7XG4gIGNvbG9yOiByZ2IoMjYsIDI2LCAyNik7XG59XG5cbi5taWwtbGlnaHQtc29mdCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG5cbi5taWwtZGFyay1zb2Z0IHtcbiAgY29sb3I6IHJnYig3NCwgNzQsIDc0KTtcbn1cblxuLm1pbC1tYXJrZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbiAgcGFkZGluZzogMCA1cHg7XG59XG5cbi5taWwtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWlsLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubWlsLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5taWwtc20tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm1pbC1zdXB0aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG59XG4ubWlsLXN1cHRpdGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoMTAwJSArIDMwcHgpO1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgb3BhY2l0eTogMC4yO1xufVxuLm1pbC1zdXB0aXRsZS5taWwtc3VwdGl0bGUtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5taWwtc3VwdGl0bGUubWlsLXN1cHRpdGxlLXJpZ2h0OmJlZm9yZSB7XG4gIGxlZnQ6IGNhbGMoMTAwJSArIDMwcHgpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1pbC1zdXB0aXRsZS5taWwtc3VwdGl0bGUtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubWlsLXN1cHRpdGxlLm1pbC1zdXB0aXRsZS1yaWdodDpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5taWwtc3VwdGl0bGUubWlsLXN1cHRpdGxlLWRhcms6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDApO1xuICBvcGFjaXR5OiAwLjE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLXN1cHRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5taWwtZGl2aWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4ubWlsLWltZy1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxNDAlO1xufVxuLm1pbC1pbWctZnJhbWUgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5saW5rXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtbGluayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5taWwtbGluayBzdmcge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLWxpbmsgc3ZnIHBhdGgge1xuICBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG4ubWlsLWxpbmsubWlsLWFjY2VudCBzdmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLWxpbmsubWlsLWFjY2VudCBzdmcgcGF0aCB7XG4gIGZpbGw6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1saW5rLm1pbC1kYXJrIHN2ZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtbGluay5taWwtZGFyayBzdmcgcGF0aCB7XG4gIGZpbGw6IHJnYigwLCAwLCAwKTtcbn1cbi5taWwtbGluazpob3ZlciBzdmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuLm1pbC1saW5rLm1pbC1kb3duLWFycm93IHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi5taWwtbGluay5taWwtZG93bi1hcnJvdzpob3ZlciBzdmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpIHJvdGF0ZSg5MGRlZyk7XG59XG4ubWlsLWxpbmsubWlsLWljb24tbGVmdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbi5taWwtbGluay5taWwtaWNvbi1sZWZ0IHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4ubWlsLWxpbmsubWlsLWljb24tbGVmdDpob3ZlciBzdmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpIHJvdGF0ZSgxODBkZWcpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmJ1dHRvblxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSwgMiwgMCk7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGJvcmRlci1yYWRpdXM6IDcwcHg7XG4gIHBhZGRpbmc6IDAgMTVweCAwIDUwcHg7XG4gIGhlaWdodDogNzBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtYnV0dG9uIHNwYW4ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLm1pbC1idXR0b24gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDApO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1idXR0b24gc3ZnIHBhdGgge1xuICBmaWxsOiByZ2IoMjIxLCAyLCAwKTtcbn1cbi5taWwtYnV0dG9uLm1pbC1pY29uLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ubWlsLWJ1dHRvbi5taWwtaWNvbi1idXR0b24gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubWlsLWJ1dHRvbi5taWwtaWNvbi1idXR0b24tc20ge1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDQwcHg7XG59XG4ubWlsLWJ1dHRvbi5taWwtaWNvbi1idXR0b24tc20gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1idXR0b24ubWlsLWljb24tYnV0dG9uLXNtIHN2ZyBwYXRoIHtcbiAgZmlsbDogcmdiKDAsIDAsIDApO1xufVxuLm1pbC1idXR0b246aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDE1KTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDExMCUpO1xufVxuLm1pbC1idXR0b246aG92ZXIgc3ZnIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbn1cbi5taWwtYnV0dG9uLm1pbC1hcnJvdy1kb3duIHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi5taWwtYnV0dG9uLm1pbC1hcnJvdy1kb3duOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxNSk7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxMTAlKTtcbn1cbi5taWwtYnV0dG9uLm1pbC1hcnJvdy1kb3duOmhvdmVyIHN2ZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xNSkgcm90YXRlKDkwZGVnKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgNDBweDtcbiAgfVxuICAubWlsLWJ1dHRvbiBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZm9ybVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5pbnB1dCxcbnRleHRhcmVhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDcwcHg7XG4gIHBhZGRpbmc6IDAgMzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1mYW1pbHk6IFwiT3V0Zml0XCIsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbmlucHV0OmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBpbmhlcml0O1xufVxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG50ZXh0YXJlYSB7XG4gIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgaGVpZ2h0OiAzMDBweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5icmVhZGNydW1ic1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWJyZWFkY3J1bWJzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5taWwtYnJlYWRjcnVtYnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogY2FsYygxMDAlICsgMzBweCk7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1pbC1icmVhZGNydW1icyBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbi5taWwtYnJlYWRjcnVtYnMgbGk6YWZ0ZXIge1xuICBjb250ZW50OiBcIi9cIjtcbiAgbWFyZ2luOiAwIDE1cHg7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG4ubWlsLWJyZWFkY3J1bWJzIGxpIGEge1xuICBjb2xvcjogcmdiKDAsIDAsIDApO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLWJyZWFkY3J1bWJzIGxpIGE6aG92ZXIge1xuICBjb2xvcjogcmdiKDI2LCAyNiwgMjYpO1xufVxuLm1pbC1icmVhZGNydW1icyBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm1pbC1icmVhZGNydW1icyBsaTpsYXN0LWNoaWxkIGEge1xuICBvcGFjaXR5OiAwLjQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1pbC1icmVhZGNydW1icyBsaTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5taWwtYnJlYWRjcnVtYnMubWlsLWxpZ2h0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5taWwtYnJlYWRjcnVtYnMubWlsLWxpZ2h0IGxpOmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi5taWwtYnJlYWRjcnVtYnMubWlsLWxpZ2h0IGxpIGE6aG92ZXIge1xuICBjb2xvcjogcmdiKDIyMSwgMiwgMCkgIWltcG9ydGFudDtcbn1cbi5taWwtYnJlYWRjcnVtYnMubWlsLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmJhY2tncm91bmRzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtZGFyay1iZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwLCAxNiwgMTIpO1xufVxuLm1pbC1kYXJrLWJnIC5taS1pbnZlcnQtZml4IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubWlsLWRhcmstYmcgLm1pLWludmVydC1maXggLmNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5taWwtc29mdC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDEsIDIwMSwgMjAxKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5zcGFjZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1tci0zMCB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbn1cblxuLm1pbC1tYi01IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubWlsLW1iLTEwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm1pbC1tYi0xNSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5taWwtbWItMjAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ubWlsLW1iLTMwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLm1pbC1tYi02MCB7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG59XG5cbi5taWwtbWItOTAge1xuICBtYXJnaW4tYm90dG9tOiA5MHB4O1xufVxuXG4ubWlsLW1iLTEyMCB7XG4gIG1hcmdpbi1ib3R0b206IDEyMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1tYi0xMjAge1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbn1cblxuLm1pbC1tdC1zdXB0aXRsZS1vZmZzZXQge1xuICBtYXJnaW4tdG9wOiA3MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1tdC1zdXB0aXRsZS1vZmZzZXQge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbn1cblxuLm1pbC1wLTEyMC0xMjAge1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcC0xMjAtMTIwIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgfVxufVxuXG4ubWlsLXAtMTIwLTkwIHtcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcC0xMjAtOTAge1xuICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5taWwtcC0wLTEyMCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcC0wLTEyMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gIH1cbn1cblxuLm1pbC1wLTEyMC0wIHtcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wLTEyMC0wIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgfVxufVxuXG4ubWlsLXAtMTIwLTYwIHtcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcC0xMjAtNjAge1xuICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9XG59XG5cbi5taWwtcC05MC05MCB7XG4gIHBhZGRpbmctdG9wOiA5MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcC05MC05MCB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gIH1cbn1cblxuLm1pbC1wLTkwLTEyMCB7XG4gIHBhZGRpbmctdG9wOiA5MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTIwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXAtOTAtMTIwIHtcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgfVxufVxuXG4ubWlsLXAtMC05MCB7XG4gIHBhZGRpbmctYm90dG9tOiA5MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wLTAtOTAge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICB9XG59XG5cbi5taWwtcC0wLTMwIHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXAtMC0zMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLm1pbC1wLTEyMC0zMCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXAtMTIwLTMwIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ubWlsLWFkYXB0aXZlLXJpZ2h0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLWFkYXB0aXZlLXJpZ2h0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuLm1pbC1idG4tc3BhY2Uge1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAubWlsLWJ0bi1zcGFjZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5wcmVsb2FkZXJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1wcmVsb2FkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKTtcbn1cbi5taWwtcHJlbG9hZGVyIC5taWwtcHJlbG9hZGVyLWFuaW1hdGlvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtcHJlbG9hZGVyIC5taWwtcHJlbG9hZGVyLWFuaW1hdGlvbiAubWlsLXBvcy1hYnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5taWwtcHJlbG9hZGVyIC5taWwtcHJlbG9hZGVyLWFuaW1hdGlvbiAubWlsLXBvcy1hYnMgcCB7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcHJlbG9hZGVyIC5taWwtcHJlbG9hZGVyLWFuaW1hdGlvbiAubWlsLXBvcy1hYnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1pbC1wcmVsb2FkZXIgLm1pbC1wcmVsb2FkZXItYW5pbWF0aW9uIC5taWwtcG9zLWFicyBwIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxufVxuLm1pbC1wcmVsb2FkZXIgLm1pbC1wcmVsb2FkZXItYW5pbWF0aW9uIC5taWwtcG9zLWFicyAubWlsLXJldmVhbC1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAzMHB4O1xufVxuLm1pbC1wcmVsb2FkZXIgLm1pbC1wcmVsb2FkZXItYW5pbWF0aW9uIC5taWwtcG9zLWFicyAubWlsLXJldmVhbC1mcmFtZSAubWlsLXJldmVhbC1ib3gge1xuICB6LWluZGV4OiA0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG4ubWlsLXByZWxvYWRlci5taWwtaGlkZGVuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY3Vyc29yXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtYmFsbCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuMTtcbn1cbi5taWwtYmFsbCAubWlsLWljb24tMSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cbi5taWwtYmFsbCAubWlsLWljb24tMSBzdmcge1xuICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4ubWlsLWJhbGwgLm1pbC1tb3JlLXRleHQsIC5taWwtYmFsbCAubWlsLWNob29zZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuLm1pbC1iYWxsLm1pbC1hY2NlbnQgLm1pbC1pY29uLTEgc3ZnIHtcbiAgZmlsbDogcmdiKDAsIDAsIDApO1xufVxuLm1pbC1iYWxsLm1pbC1hY2NlbnQgLm1pbC1tb3JlLXRleHQsIC5taWwtYmFsbC5taWwtYWNjZW50IC5taWwtY2hvb3NlLXRleHQge1xuICBjb2xvcjogcmdiKDAsIDAsIDApO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5taWwtYmFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmhpZGRlbiBlbGVtZW50c1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWhpZGRlbi1lbGVtZW50cyAubWlsLWRvZGVjYWhlZHJvbiwgLm1pbC1oaWRkZW4tZWxlbWVudHMgLm1pbC1saW5lcywgLm1pbC1oaWRkZW4tZWxlbWVudHMgLm1pbC1hcnJvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuc2Nyb2xsYmFyXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWlsLXByb2dyZXNzLXRyYWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG4ubWlsLXByb2dyZXNzLXRyYWNrIC5taWwtcHJvZ3Jlc3Mge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wcm9ncmVzcy10cmFjayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZyYW1lXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtbG9nbyB7XG4gIGZvbnQtc2l6ZTogNDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLWxvZ28ge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgfVxufVxuXG4ubWlsLWZyYW1lIHtcbiAgcGFkZGluZzogNTBweCA2MHB4IDYwcHggNjBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5taWwtZnJhbWUge1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubWlsLWZyYW1lIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubWlsLWZyYW1lIC5taWwtZnJhbWUtdG9wIHtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIHBhZGRpbmc6IDAgMzBweDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgfVxuICAubWlsLWZyYW1lIC5taWwtZnJhbWUtdG9wIC5taWwtbG9nbyB7XG4gICAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgfVxuICAubWlsLWZyYW1lIC5taWwtZnJhbWUtdG9wIC5taWwtbWVudS1idG4gc3BhbiwgLm1pbC1mcmFtZSAubWlsLWZyYW1lLXRvcCAubWlsLW1lbnUtYnRuIHNwYW46YWZ0ZXIsIC5taWwtZnJhbWUgLm1pbC1mcmFtZS10b3AgLm1pbC1tZW51LWJ0biBzcGFuOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICB9XG59XG4ubWlsLWZyYW1lIC5taWwtZnJhbWUtYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5taWwtZnJhbWUgLm1pbC1mcmFtZS1ib3R0b20ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5taWwtZnJhbWUgLm1pbC1mcmFtZS1ib3R0b20gLm1pbC1jdXJyZW50LXBhZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3aWR0aDogMzAwcHg7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgxMzhweCkgdHJhbnNsYXRlWSgtMTM4cHgpO1xufVxuLm1pbC1mcmFtZSAubWlsLWZyYW1lLWJvdHRvbSAubWlsLWJhY2stdG8tdG9wIHtcbiAgd2lkdGg6IDMwMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVgoMTMwcHgpIHRyYW5zbGF0ZVkoMTMwcHgpO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4ubWlsLWZyYW1lLXRvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5taWwtZnJhbWUtdG9wIC5taWwtbG9nbyB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubWVudSBidXR0b25cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1tZW51LWJ0biB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGhlaWdodDogMjhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtbWVudS1idG4ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gIH1cbn1cbi5taWwtbWVudS1idG4gc3BhbiwgLm1pbC1tZW51LWJ0biBzcGFuOmFmdGVyLCAubWlsLW1lbnUtYnRuIHNwYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDIuNXB4O1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwgMCwgMCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcbn1cbi5taWwtbWVudS1idG4gc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5taWwtbWVudS1idG4gc3BhbjphZnRlciwgLm1pbC1tZW51LWJ0biBzcGFuOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5taWwtbWVudS1idG4gc3BhbjpiZWZvcmUge1xuICB0b3A6IC05cHg7XG59XG4ubWlsLW1lbnUtYnRuIHNwYW46YWZ0ZXIge1xuICB3aWR0aDogMThweDtcbiAgdG9wOiA5cHg7XG59XG4ubWlsLW1lbnUtYnRuLm1pbC1hY3RpdmUgc3BhbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbi5taWwtbWVudS1idG4ubWlsLWFjdGl2ZSBzcGFuOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgOXB4KSByb3RhdGUoLTkwZGVnKTtcbn1cbi5taWwtbWVudS1idG4ubWlsLWFjdGl2ZSBzcGFuOmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDI0cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTlweCkgcm90YXRlKC05MGRlZyk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubWVudVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLW1lbnUtZnJhbWUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1tZW51LWZyYW1lIC5jb250YWluZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5taWwtbWVudS1mcmFtZSAubWlsLWZyYW1lLXRvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNTBweCA2MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5taWwtbWVudS1mcmFtZSAubWlsLWZyYW1lLXRvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1pbC1tZW51LWZyYW1lIC5taWwtZnJhbWUtdG9wIC5taWwtbG9nbyB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG4ubWlsLW1lbnUtZnJhbWUgLm1pbC1mcmFtZS10b3AgLm1pbC1tZW51LWJ0biBzcGFuLCAubWlsLW1lbnUtZnJhbWUgLm1pbC1mcmFtZS10b3AgLm1pbC1tZW51LWJ0biBzcGFuOmFmdGVyLCAubWlsLW1lbnUtZnJhbWUgLm1pbC1mcmFtZS10b3AgLm1pbC1tZW51LWJ0biBzcGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtbWVudS1mcmFtZSAubWlsLW1haW4tbWVudSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLm1pbC1tZW51LWZyYW1lIC5taWwtbWFpbi1tZW51IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cbn1cbi5taWwtbWVudS1mcmFtZSAubWlsLW1lbnUtcmlnaHQtZnJhbWUge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1tZW51LWZyYW1lIC5taWwtbWVudS1yaWdodC1mcmFtZSAubWlsLW1lbnUtcmlnaHQge1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbn1cbi5taWwtbWVudS1mcmFtZSAubWlsLW1lbnUtcmlnaHQtZnJhbWUgLm1pbC1hbmltYXRpb24taW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMyMHB4O1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02MHB4KTtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubWlsLW1lbnUtZnJhbWUgLm1pbC1tZW51LXJpZ2h0LWZyYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogODAwcHgpIHtcbiAgLm1pbC1tZW51LWZyYW1lIC5taWwtbWVudS1yaWdodC1mcmFtZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1pbC1tZW51LWZyYW1lLm1pbC1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLm1pbC1tZW51LWZyYW1lLm1pbC1hY3RpdmUgLmNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG4ubWlsLW1lbnUtZnJhbWUubWlsLWFjdGl2ZSAubWlsLW1haW4tbWVudSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjRzO1xufVxuLm1pbC1tZW51LWZyYW1lLm1pbC1hY3RpdmUgLm1pbC1tZW51LXJpZ2h0LWZyYW1lIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjZzO1xufVxuLm1pbC1tZW51LWZyYW1lLm1pbC1hY3RpdmUgLm1pbC1tZW51LXJpZ2h0LWZyYW1lIC5taWwtYW5pbWF0aW9uLWluIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjhzO1xufVxuXG4ubWlsLW1lbnUtbGlzdCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi5taWwtbWVudS1saXN0IGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm1pbC1tZW51LWxpc3QgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2l0aW9uOiAwLjJzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1tZW51LWxpc3QgbGkgYTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuLm1pbC1tZW51LWxpc3QubWlsLWhvcmktbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubWlsLW1lbnUtbGlzdC5taWwtaG9yaS1saXN0IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuLm1pbC1tZW51LWxpc3QubWlsLWRhcmsgbGkgYSB7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG5cbi5taWwtbWFpbi1tZW51IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5taWwtbWFpbi1tZW51IHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubWlsLW1haW4tbWVudSB1bCBsaSBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBmb250LXNpemU6IDM0cHg7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLW1haW4tbWVudSB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gIH1cbn1cbi5taWwtbWFpbi1tZW51IHVsIGxpIGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtbWFpbi1tZW51IHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkgYS5taWwtYWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkgYS5taWwtYWN0aXZlOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkubWlsLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG4ubWlsLW1haW4tbWVudSB1bCBsaS5taWwtYWN0aXZlID4gYTpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjIxLCAyLCAwKSAhaW1wb3J0YW50O1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMTEwJSk7XG59XG4ubWlsLW1haW4tbWVudSB1bCBsaS5taWwtaGFzLWNoaWxkcmVuID4gYTpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbn1cbi5taWwtbWFpbi1tZW51IHVsIGxpLm1pbC1oYXMtY2hpbGRyZW4gPiBhOmhvdmVyOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4ubWlsLW1haW4tbWVudSB1bCBsaS5taWwtaGFzLWNoaWxkcmVuIHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiAwLjZzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkubWlsLWhhcy1jaGlsZHJlbiB1bCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5taWwtbWFpbi1tZW51IHVsIGxpLm1pbC1oYXMtY2hpbGRyZW4gdWwgbGk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkubWlsLWhhcy1jaGlsZHJlbiB1bCBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5taWwtbWFpbi1tZW51IHVsIGxpLm1pbC1oYXMtY2hpbGRyZW4gdWwgbGkgYTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm1pbC1tYWluLW1lbnUgdWwgbGkubWlsLWhhcy1jaGlsZHJlbiB1bCBsaSBhOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG4ubWlsLW1haW4tbWVudSB1bCBsaS5taWwtaGFzLWNoaWxkcmVuIHVsLm1pbC1hY3RpdmUge1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubWlsLW1haW4tbWVudSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLm1pbC1tYWluLW1lbnUgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5taWwtbWFpbi1tZW51IHVsIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB9XG4gIC5taWwtbWFpbi1tZW51IHVsIGxpIGEge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5taWwtbWFpbi1tZW51IHVsIGxpIGE6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5taWwtbWFpbi1tZW51IHVsIGxpIGEubWlsLWFjdGl2ZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1pbC1tYWluLW1lbnUgdWwgbGkubWlsLWhhcy1jaGlsZHJlbiB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5taWwtbWFpbi1tZW51IHVsIGxpLm1pbC1oYXMtY2hpbGRyZW4gdWwgbGk6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5iYW5uZXJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1iYW5uZXIge1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuLm1pbC1iYW5uZXIgLmNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLm1pbC1iYW5uZXIgLm1pbC1iYW5uZXItY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMTIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtYmFubmVyIC5taWwtYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICB9XG59XG4ubWlsLWJhbm5lciAubWlsLWxpbmVzLXBsYWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IGNhbGMoMTAwJSArIDEyMHB4KTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gIC5taWwtYmFubmVyIC5taWwtYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiBjbGFtcCg2MHB4LCAxMHZoLCAxMjBweCk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gIC5taWwtYmFubmVyIGgxIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDQ2cHgsIDJ2dyArIDYuNXZoLCA4NnB4KTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkzcHgpIHtcbiAgLm1pbC1iYW5uZXIgaDEgLm1pbC10aGluIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmb250LXNpemU6IGNsYW1wKDE4cHgsIDAuNnZ3ICsgMi4ydmgsIDMwcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxMzUlO1xuICB9XG59XG5cbi5taWwtaW5uZXItYmFubmVyIC5taWwtYmFubmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxNTBweCAwIDAgMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubWlsLWlubmVyLWJhbm5lciAubWlsLWJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxODBweCAwIDAgMDtcbiAgfVxufVxuXG4ubWlsLWJhbm5lci1wZXJzb25hbCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5taWwtYmFubmVyLXBlcnNvbmFsIC5taWwtYmFubmVyLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA5MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1iYW5uZXItcGVyc29uYWwgLm1pbC1iYW5uZXItY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDE4MHB4O1xuICB9XG59XG4ubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtcGVyc29uYWwtdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDMwMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1iYW5uZXItcGVyc29uYWwgLm1pbC1iYW5uZXItY29udGVudCAubWlsLXBlcnNvbmFsLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4ubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDYwcHggMCA5MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIGhlaWdodDogMTgwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMHZoIC0gMTgwcHgpO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtYmFubmVyLXBlcnNvbmFsIC5taWwtYmFubmVyLWNvbnRlbnQgLm1pbC1iYW5uZXItcGFuZWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgfVxuICAubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIGg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogODAlO1xuICB9XG59XG4ubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIC5taWwtcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm1pbC1iYW5uZXItcGVyc29uYWwgLm1pbC1iYW5uZXItY29udGVudCAubWlsLWJhbm5lci1wYW5lbCAubWlsLXJpZ2h0IC5taWwtc29jaWFsLWZyYW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgcGFkZGluZzogMCA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGhlaWdodDogNzBweDtcbiAgYm9yZGVyLXJhZGl1czogNzBweDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtYmFubmVyLXBlcnNvbmFsIC5taWwtYmFubmVyLWNvbnRlbnQgLm1pbC1iYW5uZXItcGFuZWwgLm1pbC1yaWdodCAubWlsLXNvY2lhbC1mcmFtZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMTUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1iYW5uZXItcGVyc29uYWwgLm1pbC1iYW5uZXItY29udGVudCAubWlsLWJhbm5lci1wYW5lbCAubWlsLXJpZ2h0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5taWwtYmFubmVyLXBlcnNvbmFsIC5taWwtYmFubmVyLWNvbnRlbnQgLm1pbC1iYW5uZXItcGFuZWwgLm1pbC1yaWdodCAubWlsLXNvY2lhbC1mcmFtZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICB9XG59XG4ubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIC5taWwtYnV0dG9uIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIHtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiBhdXRvO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLWJhbm5lci1wZXJzb25hbCAubWlsLWJhbm5lci1jb250ZW50IC5taWwtYmFubmVyLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtYmFubmVyLXBlcnNvbmFsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLm1pbC1wb3J0cmFpdC1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5taWwtcG9ydHJhaXQtZnJhbWUgaW1nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4ubWlsLXBvcnRyYWl0LWZyYW1lIC5taWwtbmltYnVzIHtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDUwJSA1MCUgYXQgNTAlIDUwJSwgcmdiKDIyMSwgMiwgMCkgMCUsIHJnYmEoMjUwLCAxNjgsIDY5LCAwKSAxMDAlKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5taWwtcG9ydHJhaXQtZnJhbWUge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbiAgLm1pbC1wb3J0cmFpdC1mcmFtZSBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogdG9wO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY2lyY2xlIHRleHRcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1jaXJjbGUtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogOTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxNDBweDtcbiAgaGVpZ2h0OiAxNDBweDtcbn1cbi5taWwtY2lyY2xlLXRleHQgLm1pbC1jdC1zdmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDIpO1xuICB3aWR0aDogMTQwcHg7XG4gIGhlaWdodDogMTQwcHg7XG59XG4ubWlsLWNpcmNsZS10ZXh0IC5taWwtY3Qtc3ZnIHRleHQge1xuICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtY2lyY2xlLXRleHQgLm1pbC1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ubWlsLWNpcmNsZS10ZXh0OmhvdmVyIHN2ZyB0ZXh0IHtcbiAgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1jaXJjbGUtdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmxpbmVzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBrZXlmcmFtZXMgbW92ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzVweCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNzVweCk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzVweCk7XG4gIH1cbn1cbi5taWwtbGluZXMtcGxhY2UgLm1pbC1saW5lcyB7XG4gIG9wYWNpdHk6IDAuMDU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1saW5lcy1wbGFjZSAubWlsLWxpbmVzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubWlsLWxpbmVzLXBsYWNlIC5taWwtbGluZXMgcGF0aCwgLm1pbC1saW5lcy1wbGFjZSAubWlsLWxpbmVzIHJlY3QsIC5taWwtbGluZXMtcGxhY2UgLm1pbC1saW5lcyBsaW5lIHtcbiAgc3Ryb2tlOiByZ2IoMCwgMCwgMCk7XG59XG4ubWlsLWxpbmVzLXBsYWNlIC5taWwtbGluZXMgLm1pbC1tb3ZlIHtcbiAgYW5pbWF0aW9uOiBtb3ZlIDEwcyBsaW5lYXIgaW5maW5pdGU7XG59XG4ubWlsLWxpbmVzLXBsYWNlLm1pbC1saWdodCAubWlsLWxpbmVzIHtcbiAgb3BhY2l0eTogMC4yO1xufVxuLm1pbC1saW5lcy1wbGFjZS5taWwtbGlnaHQgLm1pbC1saW5lcyBwYXRoLCAubWlsLWxpbmVzLXBsYWNlLm1pbC1saWdodCAubWlsLWxpbmVzIHJlY3QsIC5taWwtbGluZXMtcGxhY2UubWlsLWxpZ2h0IC5taWwtbGluZXMgbGluZSB7XG4gIHN0cm9rZTogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmRvZGVjYWhlZHJvblxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWFuaW1hdGlvbi1mcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYW5pbWF0aW9uOiBqdW1wIDEwcyBsaW5lYXIgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWlsLWFuaW1hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMzAwcHg7XG4gIG9wYWNpdHk6IDAuMjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5taWwtcG9zaXRpb24tMSB7XG4gIHRvcDogMTAwcHg7XG4gIHJpZ2h0OiAxMDBweDtcbn1cbi5taWwtcG9zaXRpb24tMSAubWlsLXBlbnRhZ29uIGRpdiB7XG4gIGJvcmRlci10b3A6IDAuMXB4IHNvbGlkIHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cblxuLm1pbC1wb3NpdGlvbi0yIHtcbiAgdG9wOiAtNjBweDtcbiAgbGVmdDogMTUlO1xufVxuLm1pbC1wb3NpdGlvbi0yIC5taWwtcGVudGFnb24gZGl2IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtcG9zaXRpb24tMiAubWlsLWRvZGVjYWhlZHJvbiB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAubWlsLXBvc2l0aW9uLTIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm1pbC1wb3NpdGlvbi0zIHtcbiAgYm90dG9tOiAtMTAwcHg7XG4gIHJpZ2h0OiAzNSU7XG59XG4ubWlsLXBvc2l0aW9uLTMgLm1pbC1wZW50YWdvbiBkaXYge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuLm1pbC1wb3NpdGlvbi0zIC5taWwtZG9kZWNhaGVkcm9uIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxcztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAubWlsLXBvc2l0aW9uLTMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm1pbC1wb3NpdGlvbi00IHtcbiAgdG9wOiAtNjBweDtcbiAgcmlnaHQ6IDIwJTtcbn1cbi5taWwtcG9zaXRpb24tNCAubWlsLXBlbnRhZ29uIGRpdiB7XG4gIGJvcmRlci10b3A6IDAuMXB4IHNvbGlkIHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtcG9zaXRpb24tNCAubWlsLWRvZGVjYWhlZHJvbiB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAubWlsLXBvc2l0aW9uLTQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5taWwtcG9zaXRpb24tNC5taWwtZGFyayAubWlsLXBlbnRhZ29uIGRpdiB7XG4gIGJvcmRlci10b3A6IDAuMXB4IHNvbGlkIHJnYigwLCAwLCAwKTtcbn1cblxuLm1pbC1kb2RlY2FoZWRyb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDEwMHB4O1xuICB0b3A6IDQwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAyMjNweDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgYW5pbWF0aW9uOiByb3RhdGUgMTAwcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgwZGVnKSByb3RhdGVZKDM2MGRlZykgcm90YXRlWigzNjBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMzYwZGVnKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVooLTM2MGRlZyk7XG4gIH1cbn1cblxuLm1pbC1wZW50YWdvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMHB4O1xufVxuLm1pbC1wZW50YWdvbjpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMC4ydHVybikgdHJhbnNsYXRlWig2OXB4KSByb3RhdGVYKDI2LjVkZWcpO1xufVxuLm1pbC1wZW50YWdvbjpudGgtY2hpbGQoNikge1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgwLjJ0dXJuKSB0cmFuc2xhdGVaKC02OXB4KSByb3RhdGVYKDIwNi41ZGVnKTtcbn1cbi5taWwtcGVudGFnb246bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDAuNHR1cm4pIHRyYW5zbGF0ZVooNjlweCkgcm90YXRlWCgyNi41ZGVnKTtcbn1cbi5taWwtcGVudGFnb246bnRoLWNoaWxkKDcpIHtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMC40dHVybikgdHJhbnNsYXRlWigtNjlweCkgcm90YXRlWCgyMDYuNWRlZyk7XG59XG4ubWlsLXBlbnRhZ29uOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgwLjZ0dXJuKSB0cmFuc2xhdGVaKDY5cHgpIHJvdGF0ZVgoMjYuNWRlZyk7XG59XG4ubWlsLXBlbnRhZ29uOm50aC1jaGlsZCg4KSB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDAuNnR1cm4pIHRyYW5zbGF0ZVooLTY5cHgpIHJvdGF0ZVgoMjA2LjVkZWcpO1xufVxuLm1pbC1wZW50YWdvbjpudGgtY2hpbGQoNCkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMC44dHVybikgdHJhbnNsYXRlWig2OXB4KSByb3RhdGVYKDI2LjVkZWcpO1xufVxuLm1pbC1wZW50YWdvbjpudGgtY2hpbGQoOSkge1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgwLjh0dXJuKSB0cmFuc2xhdGVaKC02OXB4KSByb3RhdGVYKDIwNi41ZGVnKTtcbn1cbi5taWwtcGVudGFnb246bnRoLWNoaWxkKDUpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDF0dXJuKSB0cmFuc2xhdGVaKDY5cHgpIHJvdGF0ZVgoMjYuNWRlZyk7XG59XG4ubWlsLXBlbnRhZ29uOm50aC1jaGlsZCgxMCkge1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxdHVybikgdHJhbnNsYXRlWigtNjlweCkgcm90YXRlWCgyMDYuNWRlZyk7XG59XG4ubWlsLXBlbnRhZ29uOm50aC1jaGlsZCgxMSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooNjlweCkgcm90YXRlWCgtOTBkZWcpO1xufVxuLm1pbC1wZW50YWdvbjpudGgtY2hpbGQoMTIpIHtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTY5cHgpIHJvdGF0ZVgoOTBkZWcpO1xufVxuLm1pbC1wZW50YWdvbiBkaXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA2OXB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG59XG4ubWlsLXBlbnRhZ29uIGRpdjpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjJ0dXJuKTtcbn1cbi5taWwtcGVudGFnb24gZGl2Om50aC1jaGlsZCgyKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNHR1cm4pO1xufVxuLm1pbC1wZW50YWdvbiBkaXY6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC42dHVybik7XG59XG4ubWlsLXBlbnRhZ29uIGRpdjpudGgtY2hpbGQoNCkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjh0dXJuKTtcbn1cbi5taWwtcGVudGFnb24gZGl2Om50aC1jaGlsZCg1KSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcbn1cblxuQGtleWZyYW1lcyBqdW1wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5hYm91dFxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWFib3V0LXF1b3RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm1pbC1hYm91dC1xdW90ZSAubWlsLWF2YXRhciB7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDkwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1pbC1hYm91dC1xdW90ZSAubWlsLWF2YXRhcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgXCIgJztcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMzZweDtcbn1cbi5taWwtYWJvdXQtcXVvdGUgLm1pbC1hdmF0YXIgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3A7XG59XG4ubWlsLWFib3V0LXF1b3RlIC5taWwtcXVvdGUge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA5MHB4KTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtYWJvdXQtcXVvdGUgLm1pbC1hdmF0YXIge1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogNzBweDtcbiAgfVxuICAubWlsLWFib3V0LXF1b3RlIC5taWwtYXZhdGFyOmFmdGVyIHtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbiAgLm1pbC1hYm91dC1xdW90ZSAubWlsLXF1b3RlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA3MHB4KTtcbiAgfVxufVxuXG4ubWlsLWFib3V0LXBob3RvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1pbC1hYm91dC1waG90byAubWlsLWxpbmVzLXBsYWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMjBweDtcbiAgbGVmdDogLTI3JTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5zZXJ2aWNlc1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWNvbXBsZXgtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubWlsLWNvbXBsZXgtdGV4dCAubWlsLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1pbC1jb21wbGV4LXRleHQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1pbC1jb21wbGV4LXRleHQgLm1pbC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gIH1cbn1cblxuLm1pbC10ZXh0LWltYWdlIHtcbiAgaGVpZ2h0OiA4MHB4O1xuICB3aWR0aDogMjUwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogNzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuLm1pbC10ZXh0LWltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtdGV4dC1pbWFnZTpob3ZlciBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1pbC10ZXh0LWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5taWwtc2VydmljZS1jYXJkLXNtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbn1cbi5taWwtc2VydmljZS1jYXJkLXNtIHAge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG59XG4ubWlsLXNlcnZpY2UtY2FyZC1zbSAubWlsLWJ1dHRvbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMpO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1pbC1zZXJ2aWNlLWNhcmQtc206YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogNHB4O1xuICB3aWR0aDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSwgMiwgMCk7XG4gIHRyYW5zaXRpb246IDAuNnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLXNlcnZpY2UtY2FyZC1zbTpob3ZlciAubWlsLWJ1dHRvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICBvcGFjaXR5OiAxO1xufVxuLm1pbC1zZXJ2aWNlLWNhcmQtc206aG92ZXI6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXNlcnZpY2UtY2FyZC1zbSAubWlsLWJ1dHRvbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5taWwtc2VydmljZXMtZ3JpZCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4ubWlsLXNlcnZpY2VzLWdyaWQgLm1pbC1zZXJ2aWNlcy1ncmlkLWl0ZW0ge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4ubWlsLXNlcnZpY2VzLWdyaWQgLm1pbC1zZXJ2aWNlcy1ncmlkLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtc2VydmljZXMtZ3JpZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gIH1cbiAgLm1pbC1zZXJ2aWNlcy1ncmlkIC5taWwtc2VydmljZXMtZ3JpZC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC5taWwtc2VydmljZXMtZ3JpZCAubWlsLXNlcnZpY2VzLWdyaWQtaXRlbTpudGgtY2hpbGQoMykge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLXNlcnZpY2VzLWdyaWQge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICB9XG4gIC5taWwtc2VydmljZXMtZ3JpZCAubWlsLXNlcnZpY2VzLWdyaWQtaXRlbSB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxufVxuXG4ubWlsLXNlcnZpY2UtY2FyZC1sZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1pbC1zZXJ2aWNlLWNhcmQtbGcgLm1pbC1kZXNjciB7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG59XG4ubWlsLXNlcnZpY2UtY2FyZC1sZy5taWwtb2Zmc2V0IHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtc2VydmljZS1jYXJkLWxnLm1pbC1vZmZzZXQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtc2VydmljZS1jYXJkLWxnIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB9XG59XG4ubWlsLXNlcnZpY2UtY2FyZC1sZy5taWwtb3RoZXItY2FyZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiKDIyOSwgMjI5LCAyMjkpO1xuICBwYWRkaW5nOiA2MHB4O1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1zZXJ2aWNlLWNhcmQtbGcubWlsLW90aGVyLWNhcmQgLm1pbC1kZXNjciB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4ubWlsLXNlcnZpY2UtY2FyZC1sZy5taWwtb3RoZXItY2FyZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1zZXJ2aWNlLWNhcmQtbGcubWlsLW90aGVyLWNhcmQ6aG92ZXIgLm1pbC1saW5rIHN2ZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKTtcbn1cbi5taWwtc2VydmljZS1jYXJkLWxnLm1pbC1vdGhlci1jYXJkOmhvdmVyIC5taWwtbGluayBzdmcgcGF0aCB7XG4gIGZpbGw6IHJnYigyMjEsIDIsIDApO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5taWwtc2VydmljZS1jYXJkLWxnLm1pbC1vdGhlci1jYXJkIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG59XG5cbi5taWwtc2VydmljZS1saXN0IGxpIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5taWwtc2VydmljZS1saXN0IGxpOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5taWwtc2VydmljZS1saXN0Lm1pbC1saWdodCBsaSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG4ubWlsLXNlcnZpY2UtbGlzdC5taWwtZGFyayBsaSB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWlsLXNlcnZpY2UtbGlzdC5taWwtZGFyayBsaTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudGVhbVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLXRlYW0tY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDEzMCU7XG59XG4ubWlsLXRlYW0tY2FyZDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDRweDtcbiAgd2lkdGg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xuICB0cmFuc2l0aW9uOiAwLjZzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC10ZWFtLWNhcmQgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtdGVhbS1jYXJkLm1pbC1vZmZzZXQtY2FyZCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2MHB4KTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtdGVhbS1jYXJkLm1pbC1vZmZzZXQtY2FyZCB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4ubWlsLXRlYW0tY2FyZCAubWlsLWRlc2NyaXB0aW9uIHtcbiAgb3BhY2l0eTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiA2MHB4IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjZzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC10ZWFtLWNhcmQgLm1pbC1kZXNjcmlwdGlvbiAubWlsLXNlY3JjLXRleHQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xufVxuLm1pbC10ZWFtLWNhcmQgLm1pbC1kZXNjcmlwdGlvbiAubWlsLXNlY3JjLXRleHQgYSB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIHRyYW5zaXRpb246IDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLXRlYW0tY2FyZCAubWlsLWRlc2NyaXB0aW9uIC5taWwtc2VjcmMtdGV4dCBhOmhvdmVyIHtcbiAgY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC10ZWFtLWNhcmQ6aG92ZXIgaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi5taWwtdGVhbS1jYXJkOmhvdmVyOmFmdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWlsLXRlYW0tY2FyZDpob3ZlciAubWlsLWRlc2NyaXB0aW9uIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbi5taWwtdGVhbS1jYXJkOmhvdmVyIC5taWwtZGVzY3JpcHRpb24gLm1pbC1zZWNyYy10ZXh0IHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xufVxuXG4ubWlsLXRlYW0tbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5taWwtdGVhbS1saXN0IC5taWwtbGluZXMtcGxhY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEyMHB4O1xuICBsZWZ0OiAtMjIuNSU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuc29jaWFsIGljb25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtc29jaWFsLWljb25zIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm1pbC1zb2NpYWwtaWNvbnMubWlsLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLm1pbC1zb2NpYWwtaWNvbnMgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cbi5taWwtc29jaWFsLWljb25zIGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4ubWlsLXNvY2lhbC1pY29ucyBsaSBhIHtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1zb2NpYWwtaWNvbnMgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbn1cbi5taWwtc29jaWFsLWljb25zLm1pbC1kYXJrIGxpIGEge1xuICBjb2xvcjogcmdiKDAsIDAsIDApO1xufVxuLm1pbC1zb2NpYWwtaWNvbnMubWlsLWRhcmsgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5yZXZpZXZzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtcmV2aS1wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXJldmktcGFnaW5hdGlvbiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG59XG4ubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDExMHB4O1xuICBoZWlnaHQ6IDExMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1yZXZpLXBhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICB9XG59XG4ubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0Om50aC1jaGlsZCgybikge1xuICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0Om50aC1jaGlsZCgybikge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLm1pbC1yZXZpLXBhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDRweCByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG4ubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IC5taWwtY3VzdG9tLWRvdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgd2lkdGg6IDkwcHg7XG4gIGhlaWdodDogOTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3A7XG4gIHRyYW5zaXRpb246IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSkgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcmV2aS1wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQgLm1pbC1jdXN0b20tZG90IHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDcwcHg7XG4gIH1cbn1cbi5taWwtcmV2aS1wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQgLm1pbC1jdXN0b20tZG90Lm1pbC1zbGlkZS0xIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mYWNlcy9jdXN0b21lcnMvMS5qcGcpO1xufVxuLm1pbC1yZXZpLXBhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCAubWlsLWN1c3RvbS1kb3QubWlsLXNsaWRlLTIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ZhY2VzL2N1c3RvbWVycy8yLmpwZyk7XG59XG4ubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IC5taWwtY3VzdG9tLWRvdC5taWwtc2xpZGUtMyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZmFjZXMvY3VzdG9tZXJzLzMuanBnKTtcbn1cbi5taWwtcmV2aS1wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQgLm1pbC1jdXN0b20tZG90Lm1pbC1zbGlkZS00IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mYWNlcy9jdXN0b21lcnMvNC5qcGcpO1xufVxuLm1pbC1yZXZpLXBhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCAubWlsLWN1c3RvbS1kb3QubWlsLXNsaWRlLTUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ZhY2VzL2N1c3RvbWVycy81LmpwZyk7XG59XG4ubWlsLXJldmktcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IC5taWwtY3VzdG9tLWRvdC5taWwtc2xpZGUtNiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZmFjZXMvY3VzdG9tZXJzLzYuanBnKTtcbn1cbi5taWwtcmV2aS1wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQgLm1pbC1jdXN0b20tZG90Lm1pbC1zbGlkZS03IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mYWNlcy9jdXN0b21lcnMvNy5qcGcpO1xufVxuLm1pbC1yZXZpLXBhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgNHB4IHJnYigyMjEsIDIsIDApO1xufVxuXG4ubWlsLXF1b3RlLWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubWlsLXF1b3RlLWljb24gcGF0aCB7XG4gIGZpbGw6IHJnYigyMjEsIDIsIDApO1xufVxuXG4ubWlsLXNsaWRlci1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm1pbC1zbGlkZXItbmF2IC5taWwtc2xpZGVyLWFycm93IHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtc2xpZGVyLW5hdiAubWlsLXNsaWRlci1hcnJvdyBzdmcgcGF0aCB7XG4gIGZpbGw6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1zbGlkZXItbmF2IC5taWwtc2xpZGVyLWFycm93Lm1pbC1wcmV2IHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLm1pbC1zbGlkZXItbmF2IC5taWwtc2xpZGVyLWFycm93LnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubWlsLXNsaWRlci1uYXYgLm1pbC1zbGlkZXItYXJyb3c6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuLm1pbC1zbGlkZXItbmF2IC5taWwtc2xpZGVyLWFycm93OmhvdmVyLm1pbC1wcmV2IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSgxLjE1KTtcbn1cbi5taWwtc2xpZGVyLW5hdi5taWwtcmV2aWV3cy1uYXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTYwcHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXNsaWRlci1uYXYubWlsLXJldmlld3MtbmF2IHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cbi5taWwtc2xpZGVyLW5hdi5taWwtc29mdCAubWlsLXNsaWRlci1hcnJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjksIDIyOSwgMjI5KTtcbn1cbi5taWwtc2xpZGVyLW5hdi5taWwtc29mdCAubWlsLXNsaWRlci1hcnJvdyBzdmcgcGF0aCB7XG4gIGZpbGw6IHJnYigwLCAwLCAwKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5ibG9nXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtYmxvZy1jYXJkIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWlsLWJsb2ctY2FyZCAubWlsLWNvdmVyLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogNjUlO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLm1pbC1ibG9nLWNhcmQgLm1pbC1jb3Zlci1mcmFtZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1ibG9nLWNhcmQgLm1pbC1wb3N0LWRlc2NyIHtcbiAgcGFkZGluZzogMzBweCAzMHB4IDAgMDtcbn1cbi5taWwtYmxvZy1jYXJkIC5taWwtcG9zdC1kZXNjciAubWlsLXBvc3QtdGV4dCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1pbC1ibG9nLWNhcmQ6aG92ZXIgLm1pbC1jb3Zlci1mcmFtZSBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuLm1pbC1ibG9nLWNhcmQubWlsLWJsb2ctY2FyZC1ob3JpIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2IoMjI5LCAyMjksIDIyOSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubWlsLWJsb2ctY2FyZC5taWwtYmxvZy1jYXJkLWhvcmkgLm1pbC1jb3Zlci1mcmFtZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHdpZHRoOiA0NTBweDtcbiAgcGFkZGluZy1ib3R0b206IDI3JTtcbn1cbi5taWwtYmxvZy1jYXJkLm1pbC1ibG9nLWNhcmQtaG9yaSAubWlsLXBvc3QtZGVzY3Ige1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDUwcHgpO1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLWJsb2ctY2FyZC5taWwtYmxvZy1jYXJkLWhvcmkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICAubWlsLWJsb2ctY2FyZC5taWwtYmxvZy1jYXJkLWhvcmkgLm1pbC1jb3Zlci1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDY1JTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB9XG4gIC5taWwtYmxvZy1jYXJkLm1pbC1ibG9nLWNhcmQtaG9yaSAubWlsLXBvc3QtZGVzY3Ige1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCAwIDA7XG4gIH1cbn1cblxuLm1pbC1sYWJlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xufVxuLm1pbC1sYWJlbHMgLm1pbC1sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cbi5taWwtbGFiZWxzIC5taWwtbGFiZWw6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1pbC1wYWdpbmF0aW9uIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ubWlsLXBhZ2luYXRpb24tYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogcmdiKDAsIDAsIDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm1pbC1wYWdpbmF0aW9uLWJ0bi5taWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG5cbi5taWwtY2F0ZWdvcnktbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubWlsLWNhdGVnb3J5LWxpc3QgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5taWwtY2F0ZWdvcnktbGlzdCBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLm1pbC1jYXRlZ29yeS1saXN0IGxpIGEge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1jYXRlZ29yeS1saXN0IGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI5LCAyMjksIDIyOSk7XG59XG4ubWlsLWNhdGVnb3J5LWxpc3QgbGkgYS5taWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLWNhdGVnb3J5LWxpc3Qge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1pbC1jYXRlZ29yeS1saXN0IGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICAubWlsLWNhdGVnb3J5LWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAubWlsLWNhdGVnb3J5LWxpc3QgbGkgYSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZm9vdGVyXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtZm9vdGVyLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAxMjBweDtcbn1cbi5taWwtZm9vdGVyLW1lbnUgdWwgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG4ubWlsLWZvb3Rlci1tZW51IHVsIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1mb290ZXItbWVudSB1bCBsaSBhOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICBjb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLWZvb3Rlci1tZW51IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgfVxufVxuLm1pbC1mb290ZXItbWVudSB1bCBsaS5taWwtYWN0aXZlIGEge1xuICBjb2xvcjogcmdiKDIyMSwgMiwgMCk7XG59XG4ubWlsLWZvb3Rlci1tZW51IHVsIGxpLm1pbC1hY3RpdmUgYTpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5taWwtZm9vdGVyLW1lbnUge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbn1cblxuLm1pbC1zdWJzY3JpYmUtZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA3MHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5taWwtc3Vic2NyaWJlLWZvcm0gaW5wdXQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA3MHB4O1xuICBwYWRkaW5nOiAwIDAgMCA1MHB4O1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1zdWJzY3JpYmUtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiKDEyOCwgMTI4LCAxMjgpO1xuICBmb250LWZhbWlseTogXCJPdXRmaXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xufVxuLm1pbC1zdWJzY3JpYmUtZm9ybSBpbnB1dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgb3V0bGluZTogaW5oZXJpdDtcbn1cbi5taWwtc3Vic2NyaWJlLWZvcm0gaW5wdXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG4ubWlsLXN1YnNjcmliZS1mb3JtIC5taWwtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIHJpZ2h0OiAxNXB4O1xufVxuLm1pbC1zdWJzY3JpYmUtZm9ybS5taWwtc3Vic2NyaWJlLWZvcm0tMiBpbnB1dCB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5wb3J0Zm9saW9cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1wb3J0Zm9saW8taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1pbC1wb3J0Zm9saW8taXRlbSAubWlsLWNvdmVyLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLm1pbC1wb3J0Zm9saW8taXRlbSAubWlsLWNvdmVyLWZyYW1lIC5taWwtY292ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5taWwtcG9ydGZvbGlvLWl0ZW0gLm1pbC1jb3Zlci1mcmFtZSAubWlsLWNvdmVyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtcG9ydGZvbGlvLWl0ZW0gLm1pbC1jb3Zlci1mcmFtZS5taWwtdmVydCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMzAlO1xufVxuLm1pbC1wb3J0Zm9saW8taXRlbSAubWlsLWNvdmVyLWZyYW1lLm1pbC1ob3JpIHtcbiAgcGFkZGluZy1ib3R0b206IDY1JTtcbn1cbi5taWwtcG9ydGZvbGlvLWl0ZW06aG92ZXIgLm1pbC1jb3Zlci1mcmFtZSAubWlsLWNvdmVyIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4ubWlsLXBvcnRmb2xpby1pdGVtLm1pbC1zbGlkZXItaXRlbSAubWlsLWNvdmVyLWZyYW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzYwcHgpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wb3J0Zm9saW8taXRlbS5taWwtc2xpZGVyLWl0ZW0gLm1pbC1jb3Zlci1mcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICB9XG59XG4ubWlsLXBvcnRmb2xpby1pdGVtLm1pbC1zbGlkZXItaXRlbSAubWlsLWRlc2NyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDE4MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQyLCAyNDIsIDI0Mik7XG4gIHBhZGRpbmc6IDAgNjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcG9ydGZvbGlvLWl0ZW0ubWlsLXNsaWRlci1pdGVtIC5taWwtZGVzY3Ige1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLm1pbC1wb3J0Zm9saW8taXRlbS5taWwtc2xpZGVyLWl0ZW0gLm1pbC1kZXNjciAubWlsLWRlc2NyLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbn1cbi5taWwtcG9ydGZvbGlvLWl0ZW0ubWlsLXNsaWRlci1pdGVtOmhvdmVyIC5taWwtY292ZXItZnJhbWUgLm1pbC1jb3ZlciBpbWcge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5zd2lwZXItc2xpZGUgLm1pbC1wb3J0Zm9saW8taXRlbSAubWlsLWRlc2NyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLXNsaWRlLnN3aXBlci1zbGlkZS1hY3RpdmUgLm1pbC1wb3J0Zm9saW8taXRlbSAubWlsLWRlc2NyIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLm1pbC1wb3J0Zm9saW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubWlsLXBvcnRmb2xpbyAubWlsLWxpbmVzLXBsYWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA0MC43JTtcbn1cbi5taWwtcG9ydGZvbGlvIC5taWwtbGluZXMtcGxhY2UubWlsLWxpbmVzLWxvbmcge1xuICB0b3A6IDEyODlweDtcbn1cblxuLm1pbC1wb3J0Zm9saW8tc2xpZGVyLWZyYW1lIHtcbiAgei1pbmRleDogMDtcbiAgcGFkZGluZy10b3A6IDE1MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wb3J0Zm9saW8tc2xpZGVyLWZyYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogMTgwcHg7XG4gIH1cbn1cblxuLm1pbC1wb3J0Zm9saW8tbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MiwgMjQyLCAyNDIpO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCA2MHB4O1xuICBoZWlnaHQ6IDE4MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ubWlsLXBvcnRmb2xpby1uYXYgLm1pbC1wb3J0Zm9saW8tYnRucy1mcmFtZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGhlaWdodDogNzBweDtcbiAgYm9yZGVyLXJhZGl1czogNzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1pbC1wb3J0Zm9saW8tbmF2IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAzMHB4IDAgOTBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICB9XG4gIC5taWwtcG9ydGZvbGlvLW5hdiAubWlsLXBvcnRmb2xpby1idG5zLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uc3dpcGVyLXBvcnRmb2xpby1wYWdpbmF0aW9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwIDE1cHg7XG59XG5cbi5taWwtaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTIwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5taWwtaW5mbyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxufVxuXG4ubWlsLXdvcmtzLW5hdiB7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubWlsLXdvcmtzLW5hdiAubWlsLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1pbC13b3Jrcy1uYXYge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLm1pbC13b3Jrcy1uYXYgLm1pbC1saW5rIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5taWwtd29ya3MtbmF2IC5taWwtbGluazpsYXN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipcblxubWFwXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5taWwtbWFwLWZyYW1lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyOSwgMjI5LCAyMjkpO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICBoZWlnaHQ6IDYwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubWlsLW1hcC1mcmFtZSAubWlsLW1hcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMjUlO1xuICBsZWZ0OiAtMjUlO1xuICB3aWR0aDogMTUwJTtcbiAgaGVpZ2h0OiAxNTAlO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1tYXAtZnJhbWUgLm1pbC1tYXAgaWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuYWNjb3JkaW9uXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtYWNjb3JkaW9uLWdyb3VwIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtYWNjb3JkaW9uLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtYWNjb3JkaW9uLW1lbnUgLm1pbC1zeW1ib2wge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjksIDIyOSwgMjI5KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1pbC1hY2NvcmRpb24tZ3JvdXAgLm1pbC1hY2NvcmRpb24tbWVudSAubWlsLXN5bWJvbCAubWlsLXBsdXMsIC5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtYWNjb3JkaW9uLW1lbnUgLm1pbC1zeW1ib2wgLm1pbC1taW51cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtYWNjb3JkaW9uLW1lbnUgLm1pbC1zeW1ib2wgLm1pbC1taW51cyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cbi5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtYWNjb3JkaW9uLW1lbnUgLm1pbC1hY2NvcmRpb24taGVhZCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbn1cblxuLm1pbC1hY2NvcmRpb24tY29udGVudCB7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5wcmljZVxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubWlsLXByaWNlLWNhcmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHBhZGRpbmc6IDYwcHggMCAzMHB4O1xufVxuLm1pbC1wcmljZS1jYXJkIC5taWwtcHJpY2UtbnVtYmVyIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiA3MCU7XG4gIGZvbnQtc2l6ZTogNTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5taWwtcHJpY2UtY2FyZCAubWlsLXByaWNlLW51bWJlciAubWlsLXRoaW4ge1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuNDA0XG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5taWwtNDA0LWJhbm5lciAubWlsLWFuaW1hdGlvbi1mcmFtZSB7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5taWwtNDA0LWZyYW1lIHtcbiAgcGFkZGluZy10b3A6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5taWwtNDA0LXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xufVxuXG4ubWlsLXNjYWxlLWZyYW1lIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgyLjMpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDkwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzBweCkge1xuICAubWlsLXNjYWxlLWZyYW1lIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgfVxufVxuXG4ubWlsLTQwNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgZm9udC1zaXplOiA2ZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGFuaW1hdGlvbjogZ2xpdGNoLXNrZXcgMXMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZS1yZXZlcnNlO1xufVxuLm1pbC00MDQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDJweDtcbiAgdGV4dC1zaGFkb3c6IC0ycHggMCByZ2IoMjIxLCAyLCAwKTtcbiAgY2xpcDogcmVjdCg0NHB4LCA0NTBweCwgNTZweCwgMCk7XG4gIGFuaW1hdGlvbjogZ2xpdGNoLWFuaW0gNXMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZS1yZXZlcnNlO1xufVxuLm1pbC00MDQ6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogLTJweDtcbiAgdGV4dC1zaGFkb3c6IC0ycHggMCByZ2IoMTUzLCAxNTMsIDE1MyksIDJweCAycHggcmdiKDIyOSwgMjI5LCAyMjkpO1xuICBhbmltYXRpb246IGdsaXRjaC1hbmltMiAxcyBpbmZpbml0ZSBsaW5lYXIgYWx0ZXJuYXRlLXJldmVyc2U7XG59XG5cbkBrZXlmcmFtZXMgZ2xpdGNoLWFuaW0ge1xuICAwJSB7XG4gICAgY2xpcDogcmVjdCg0MXB4LCA5OTk5cHgsIDRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuMzZkZWcpO1xuICB9XG4gIDUlIHtcbiAgICBjbGlwOiByZWN0KDQ0cHgsIDk5OTlweCwgNTdweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDFkZWcpO1xuICB9XG4gIDEwJSB7XG4gICAgY2xpcDogcmVjdCg2MnB4LCA5OTk5cHgsIDYxcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjg3ZGVnKTtcbiAgfVxuICAxNSUge1xuICAgIGNsaXA6IHJlY3QoNjlweCwgOTk5OXB4LCA1NHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4zMWRlZyk7XG4gIH1cbiAgMjAlIHtcbiAgICBjbGlwOiByZWN0KDYycHgsIDk5OTlweCwgMjdweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNGRlZyk7XG4gIH1cbiAgMjUlIHtcbiAgICBjbGlwOiByZWN0KDk2cHgsIDk5OTlweCwgOThweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuODVkZWcpO1xuICB9XG4gIDMwJSB7XG4gICAgY2xpcDogcmVjdCg4N3B4LCA5OTk5cHgsIDRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuODRkZWcpO1xuICB9XG4gIDM1JSB7XG4gICAgY2xpcDogcmVjdCg1OXB4LCA5OTk5cHgsIDM2cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjEzZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIGNsaXA6IHJlY3QoMjBweCwgOTk5OXB4LCA1MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4yOWRlZyk7XG4gIH1cbiAgNDUlIHtcbiAgICBjbGlwOiByZWN0KDEwcHgsIDk5OTlweCwgNDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNTlkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgY2xpcDogcmVjdCg1MXB4LCA5OTk5cHgsIDgzcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjE5ZGVnKTtcbiAgfVxuICA1NSUge1xuICAgIGNsaXA6IHJlY3QoNDFweCwgOTk5OXB4LCAxMXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4xNmRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICBjbGlwOiByZWN0KDQ2cHgsIDk5OTlweCwgNzRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNGRlZyk7XG4gIH1cbiAgNjUlIHtcbiAgICBjbGlwOiByZWN0KDczcHgsIDk5OTlweCwgMTdweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNThkZWcpO1xuICB9XG4gIDcwJSB7XG4gICAgY2xpcDogcmVjdCg4N3B4LCA5OTk5cHgsIDU4cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjc0ZGVnKTtcbiAgfVxuICA3NSUge1xuICAgIGNsaXA6IHJlY3QoMzlweCwgOTk5OXB4LCA4MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC45OGRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICBjbGlwOiByZWN0KDY3cHgsIDk5OTlweCwgNzNweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuMTZkZWcpO1xuICB9XG4gIDg1JSB7XG4gICAgY2xpcDogcmVjdCg2OXB4LCA5OTk5cHgsIDgycHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjQ3ZGVnKTtcbiAgfVxuICA5MCUge1xuICAgIGNsaXA6IHJlY3QoNjJweCwgOTk5OXB4LCA1MnB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4yNmRlZyk7XG4gIH1cbiAgOTUlIHtcbiAgICBjbGlwOiByZWN0KDM5cHgsIDk5OTlweCwgODRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuOTlkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIGNsaXA6IHJlY3QoNjlweCwgOTk5OXB4LCA0cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjQyZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBnbGl0Y2gtYW5pbTIge1xuICAwJSB7XG4gICAgY2xpcDogcmVjdCgxcHgsIDk5OTlweCwgNDNweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNzdkZWcpO1xuICB9XG4gIDUlIHtcbiAgICBjbGlwOiByZWN0KDM5cHgsIDk5OTlweCwgODJweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuMzVkZWcpO1xuICB9XG4gIDEwJSB7XG4gICAgY2xpcDogcmVjdCgycHgsIDk5OTlweCwgODNweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuN2RlZyk7XG4gIH1cbiAgMTUlIHtcbiAgICBjbGlwOiByZWN0KDU0cHgsIDk5OTlweCwgNTdweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuMTVkZWcpO1xuICB9XG4gIDIwJSB7XG4gICAgY2xpcDogcmVjdCg5cHgsIDk5OTlweCwgMTVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNjVkZWcpO1xuICB9XG4gIDI1JSB7XG4gICAgY2xpcDogcmVjdCgyNnB4LCA5OTk5cHgsIDkzcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjE1ZGVnKTtcbiAgfVxuICAzMCUge1xuICAgIGNsaXA6IHJlY3QoNjRweCwgOTk5OXB4LCA2NXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC43NGRlZyk7XG4gIH1cbiAgMzUlIHtcbiAgICBjbGlwOiByZWN0KDI5cHgsIDk5OTlweCwgODRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNDVkZWcpO1xuICB9XG4gIDQwJSB7XG4gICAgY2xpcDogcmVjdCg4MHB4LCA5OTk5cHgsIDE3cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjM2ZGVnKTtcbiAgfVxuICA0NSUge1xuICAgIGNsaXA6IHJlY3QoMzBweCwgOTk5OXB4LCAxOHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC41MmRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICBjbGlwOiByZWN0KDc4cHgsIDk5OTlweCwgNDVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuOTNkZWcpO1xuICB9XG4gIDU1JSB7XG4gICAgY2xpcDogcmVjdCg3OHB4LCA5OTk5cHgsIDg0cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjUyZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIGNsaXA6IHJlY3QoOTlweCwgOTk5OXB4LCA0cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjI2ZGVnKTtcbiAgfVxuICA2NSUge1xuICAgIGNsaXA6IHJlY3QoMTlweCwgOTk5OXB4LCAxNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4xNWRlZyk7XG4gIH1cbiAgNzAlIHtcbiAgICBjbGlwOiByZWN0KDgzcHgsIDk5OTlweCwgNTRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuNzhkZWcpO1xuICB9XG4gIDc1JSB7XG4gICAgY2xpcDogcmVjdCgyMHB4LCA5OTk5cHgsIDg2cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjc1ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIGNsaXA6IHJlY3QoOTdweCwgOTk5OXB4LCA4NHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC42NmRlZyk7XG4gIH1cbiAgODUlIHtcbiAgICBjbGlwOiByZWN0KDE2cHgsIDk5OTlweCwgOTVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBza2V3KDAuMTFkZWcpO1xuICB9XG4gIDkwJSB7XG4gICAgY2xpcDogcmVjdCgzOHB4LCA5OTk5cHgsIDMxcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjQ2ZGVnKTtcbiAgfVxuICA5NSUge1xuICAgIGNsaXA6IHJlY3QoMjNweCwgOTk5OXB4LCA2M3B4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNrZXcoMC4zOWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgY2xpcDogcmVjdCg0OXB4LCA5OTk5cHgsIDI4cHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2tldygwLjkyZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBnbGl0Y2gtc2tldyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXcoLTFkZWcpO1xuICB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3KDBkZWcpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3KC0zZGVnKTtcbiAgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2tldygyZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2tldygxZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2tldygyZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2tldygtM2RlZyk7XG4gIH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXcoLTJkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3KC0zZGVnKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2tldygyZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXcoM2RlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuaW1hZ2VzXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5taWwtaW1hZ2UtZnJhbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubWlsLWltYWdlLWZyYW1lID4gaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbn1cbi5taWwtaW1hZ2UtZnJhbWUubWlsLWhvcml6b250YWwge1xuICBwYWRkaW5nLWJvdHRvbTogNjUlO1xufVxuLm1pbC1pbWFnZS1mcmFtZS5taWwtdmVydGljYWwge1xuICBwYWRkaW5nLWJvdHRvbTogMTQwJTtcbn1cbi5taWwtaW1hZ2UtZnJhbWUubWlsLXNxdWFyZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xufVxuLm1pbC1pbWFnZS1mcmFtZS5taWwtZncge1xuICBwYWRkaW5nLWJvdHRvbTogNTAlO1xufVxuLm1pbC1pbWFnZS1mcmFtZSAubWlsLXpvb20tYnRuIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1cHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzBweDtcbiAgcmlnaHQ6IDMwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtaW1hZ2UtZnJhbWUgLm1pbC16b29tLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtaW1hZ2UtZnJhbWUgLm1pbC16b29tLWJ0biBpbWcge1xuICBoZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiAxN3B4O1xufVxuLm1pbC1pbWFnZS1mcmFtZTpob3ZlciAubWlsLXpvb20tYnRuIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB6LWluZGV4OiAyO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbnBhZ2UgdHJhbnNpdGlvbnNcblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLm1pbC1mcmFtZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IDAuNnM7XG59XG5cbi5taWwtY3VydGFpbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIHRyYW5zaXRpb246IDAuNnM7XG59XG5cbi5taWwtbWFpbi10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogMC42cztcbiAgbWFyZ2luLXRvcDogMDtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcbn1cbi5taWwtbWFpbi10cmFuc2l0aW9uIC5taWwtYW5pbWF0aW9uLWZyYW1lIHtcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgdHJhbnNpdGlvbjogMC42cztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcbn1cbi5taWwtbWFpbi10cmFuc2l0aW9uIC5taWwtbGluZXMtcGxhY2Uge1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tdG9wOiAwO1xuICB0cmFuc2l0aW9uOiAwLjZzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzO1xufVxuXG5odG1sLmlzLWFuaW1hdGluZyAubWlsLWZyYW1lIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGh0bWwuaXMtYW5pbWF0aW5nIC5taWwtZnJhbWUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuaHRtbC5pcy1hbmltYXRpbmcgLm1pbC1jdXJ0YWluIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbmh0bWwuaXMtYW5pbWF0aW5nIC5taWwtbWFpbi10cmFuc2l0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC4xcHg7XG59XG5odG1sLmlzLWFuaW1hdGluZyAubWlsLW1haW4tdHJhbnNpdGlvbiAubWlsLWFuaW1hdGlvbi1mcmFtZSB7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi10b3A6IC05MHB4O1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbn1cbmh0bWwuaXMtYW5pbWF0aW5nIC5taWwtbWFpbi10cmFuc2l0aW9uIC5taWwtbGluZXMtcGxhY2Uge1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiA5MHB4O1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbn1cblxuaHRtbC5pcy1hbmltYXRpbmcgLm1pbC1tZW51LWZyYW1lIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5sYW5ndWFnZSBzd2l0Y2ggKEVTL0VOKSDigJQgRmFzZSAxLCByZWRpc2XDsW8gMjAyNi0wOFxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLWZyYW1lLXRvcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1pbC1sYW5nLXN3aXRjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDcwcHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG4ubWlsLWxhbmctc3dpdGNoIC5taWwtbGFuZy1jdXJyZW50IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5taWwtbGFuZy1zd2l0Y2ggLm1pbC1sYW5nLXNlcCB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5taWwtbGFuZy1zd2l0Y2ggLm1pbC1sYW5nLWxpbmsge1xuICBmb250LXdlaWdodDogNDAwO1xuICBvcGFjaXR5OiAwLjU7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuLm1pbC1sYW5nLXN3aXRjaCAubWlsLWxhbmctbGluazpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ubWlsLWxhbmctc3dpdGNoLm1pbC1kaXNhYmxlZCAubWlsLWxhbmctbGluayB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaGVhZGVyIG92ZXIgYSBkYXJrIGhlcm8g4oCUIEFycmVnbGFyIGVsIGhlcm8sIDIwMjYtMDhcblxuLm1pbC1kYXJrLWhlYWRlciBpcyBhZGRlZCB0byAubWlsLXdyYXBwZXIgb25seSBvbiBwYWdlcyB3aG9zZSB2ZXJ5IGZpcnN0XG5zZWN0aW9uIGlzIGEgZGFyay1iZyBoZXJvIChjdXJyZW50bHkganVzdCBob21lKS4gV2l0aG91dCBpdCwgdGhlIGxvZ28sXG5oYW1idXJnZXIgYW5kIGxhbmd1YWdlIHN3aXRjaCBkZWZhdWx0IHRvICRkYXJrIC8gcmdiKDAsMCwwKSDigJQgdGhlIHJpZ2h0XG5jb2xvciB3aGVuIHRoZSBoZWFkZXIgc2l0cyBvdmVyIGEgbGlnaHQgc2VjdGlvbiwgYnV0IG5lYXJseSBpbnZpc2libGVcbm92ZXIgdGhlIGRhcmsgaGVyby5cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1kYXJrLWhlYWRlciAubWlsLWZyYW1lIC5taWwtZnJhbWUtdG9wIC5taWwtbG9nbyB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG4ubWlsLWRhcmstaGVhZGVyIC5taWwtZnJhbWUgLm1pbC1tZW51LWJ0biBzcGFuLCAubWlsLWRhcmstaGVhZGVyIC5taWwtZnJhbWUgLm1pbC1tZW51LWJ0biBzcGFuOmFmdGVyLCAubWlsLWRhcmstaGVhZGVyIC5taWwtZnJhbWUgLm1pbC1tZW51LWJ0biBzcGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbi5taWwtZGFyay1oZWFkZXIgLm1pbC1mcmFtZSAubWlsLWxhbmctc3dpdGNoLCAubWlsLWRhcmstaGVhZGVyIC5taWwtZnJhbWUgLm1pbC1sYW5nLXN3aXRjaCAubWlsLWxhbmctbGluayB7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaGVybyBjb250ZXh0IGxpbmUg4oCUIEFycmVnbGFyIGVsIGhlcm8sIDIwMjYtMDhcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1oZXJvLWNvbnRleHQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWlsLWhlcm8tY29udGV4dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtbGFuZy1zd2l0Y2gge1xuICAgIHJpZ2h0OiA2MHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAvKiB0ZXh0LW9ubHkgdGFwIHRhcmdldCAofjE0eDEzcHgpIGlzIGZhciB1bmRlciB0aGUgNDRweCB0b3VjaFxuICAgIGd1aWRlbGluZTsgZ3Jvd24gbW9zdGx5IHZlcnRpY2FsbHkgKyB0b3dhcmQgdGhlIHNlcGFyYXRvciAobGVmdCksXG4gICAgbm90IHRvd2FyZCAubWlsLW1lbnUtYnRuIChyaWdodCksIHRvIGF2b2lkIG92ZXJsYXBwaW5nIGl0cyBoaXQgYm94ICovXG4gIH1cbiAgLm1pbC1sYW5nLXN3aXRjaCAubWlsLWxhbmctbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIG1hcmdpbjogLTE2cHggLTRweCAtMTZweCAtMTBweDtcbiAgICBwYWRkaW5nOiAxNnB4IDRweCAxNnB4IDEwcHg7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY2VydGlmaWNhdGlvbnMg4oCUIEZhc2UgNCwgcmVkaXNlw7FvIDIwMjYtMDhcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1jZXJ0LWNhcmQge1xuICBwYWRkaW5nOiAzMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubWlsLWNlcnQtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMTVweCAwIDAgMDtcbn1cbi5taWwtY2VydC1saXN0IGxpIHtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLm1pbC1jZXJ0LWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ubWlsLWNlcnQtbmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWlsLWNlcnQtbWV0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAwLjY7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5taWwtY2VydC1kZXNjIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgbWFyZ2luLXRvcDogNnB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnByb2plY3RzIGNhcm91c2VsIChob21lKSDigJQgRmFzZSAzLCByZWRpc2XDsW8gMjAyNi0wOFxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLXByb2plY3QtbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxNXB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWlsLXByb2plY3RzLXNsaWRlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuLm1pbC1wcm9qZWN0cy1zbGlkZXIgLnN3aXBlci13cmFwcGVyIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4ubWlsLXByb2plY3RzLXNsaWRlciAuc3dpcGVyLXNsaWRlIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ubWlsLXByb2plY3QtY2FyZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiAwLjRzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1wcm9qZWN0LWNhcmQgLm1pbC1jb3Zlci1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDYwJTtcbn1cbi5taWwtcHJvamVjdC1jYXJkIC5taWwtY292ZXItZnJhbWUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgdHJhbnNpdGlvbjogMC40cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtcHJvamVjdC1jYXJkIC5taWwtcHJvamVjdC1kZXNjciB7XG4gIHBhZGRpbmc6IDMwcHg7XG59XG4ubWlsLXByb2plY3QtY2FyZDpob3ZlciAubWlsLWNvdmVyLWZyYW1lIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5taWwtcHJvamVjdC10YWdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5taWwtcHJvamVjdC10YWdzIHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm1pbC1zZWNvbmRhcnktcmVwb3Mge1xuICBwYWRkaW5nLXRvcDogNjBweDtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5yZWNvZ25pdGlvbiAoaG9tZSAjYWJvdXQgb25seSlcblxuSzk1LXN0eWxlIHNob3djYXNlIGJsb2NrLCBmdWxsLWJsZWVkLCBpc29sYXRlZCBwYWxldHRlICgkcmVjLSogdG9rZW5zIGluXG5fdmFyaWFibGVzLnNjc3MpLiBUaGlzIGlzIGEgZGVsaWJlcmF0ZSBicmVhayBmcm9tIHRoZSByZXN0IG9mIHRoZSBzaXRlJ3NcbnZpc3VhbCBsYW5ndWFnZSAtLSBkbyBub3QgZXh0ZW5kIHRoZXNlIHRva2VucyBvciBwYXR0ZXJucyBlbHNld2hlcmUuXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5taWwtcmVjb2duaXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDB2dztcbiAgbGVmdDogNTAlO1xuICByaWdodDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTUwdnc7XG4gIG1hcmdpbi1yaWdodDogLTUwdnc7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmc6IDM2cHggMzBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2NWRlZywgIzFBMUFFNiAwJSwgIzBFMEU5QiAxMDAlKTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5taWwtcmVjb2duaXRpb24ge1xuICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm1pbC1yZWNvZ25pdGlvbiB7XG4gICAgcGFkZGluZzogMjhweCAyMHB4O1xuICB9XG59XG5cbi5taWwtcmVjb2duaXRpb24tZ3JpZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xufVxuLm1pbC1yZWNvZ25pdGlvbi1ncmlkOjpiZWZvcmUsIC5taWwtcmVjb2duaXRpb24tZ3JpZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0zMCU7XG4gIHJpZ2h0OiAtMzAlO1xuICBoZWlnaHQ6IDIyMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSAxcHgsIHRyYW5zcGFyZW50IDFweCwgdHJhbnNwYXJlbnQgODBweCksIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgMXB4LCB0cmFuc3BhcmVudCAxcHgsIHRyYW5zcGFyZW50IDgwcHgpO1xufVxuLm1pbC1yZWNvZ25pdGlvbi1ncmlkOjpiZWZvcmUge1xuICB0b3A6IC01MCU7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNjAwcHgpIHJvdGF0ZVgoNTVkZWcpO1xuICBvcGFjaXR5OiAwLjg7XG59XG4ubWlsLXJlY29nbml0aW9uLWdyaWQ6OmFmdGVyIHtcbiAgYm90dG9tOiAtNTAlO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDYwMHB4KSByb3RhdGVYKC01NWRlZykgc2NhbGVZKC0xKTtcbiAgb3BhY2l0eTogMC40NTtcbn1cblxuLm1pbC1yZWNvZ25pdGlvbi1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAzZnIpIG1pbm1heCgwLCAyZnIpO1xuICBnYXA6IDQwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXJlY29nbml0aW9uLWlubmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDMycHg7XG4gIH1cbn1cblxuLm1pbC1yZWNvZ25pdGlvbi1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY4KTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm1pbC1yZWNvZ25pdGlvbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk91dGZpdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDY4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLm1pbC1yZWNvZ25pdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiA1NnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAubWlsLXJlY29nbml0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5taWwtcmVjb2duaXRpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgfVxufVxuXG4ubWlsLXJlY29nbml0aW9uLW1ldGEge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpO1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuXG4ubWlsLXJlY29nbml0aW9uLWJvZHkge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1heC13aWR0aDogNTJjaDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5taWwtcmVjb2duaXRpb24tbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSksIGJvcmRlci1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpO1xufVxuLm1pbC1yZWNvZ25pdGlvbi1saW5rOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cbi5taWwtcmVjb2duaXRpb24tbGluazpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICNGRkZGRkY7XG4gIG91dGxpbmUtb2Zmc2V0OiA0cHg7XG59XG5cbi5taWwtcmVjb2duaXRpb24tZXZpZGVuY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubWlsLXJlY29nbml0aW9uLXN0YWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgaGVpZ2h0OiAxNzBweDtcbiAgcGVyc3BlY3RpdmU6IDE0MDBweDtcbiAgcGVyc3BlY3RpdmUtb3JpZ2luOiA1MCUgNTAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1pbC1yZWNvZ25pdGlvbi1zdGFnZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwZXJzcGVjdGl2ZTogbm9uZTtcbiAgfVxufVxuXG4ubWlsLXJlY29nbml0aW9uLXJpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE2cHg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLm1pbC1yZWNvZ25pdGlvbi1yaW5nOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWlsLXJlY29nbml0aW9uLXJpbmc6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjRkZGRkZGO1xuICBvdXRsaW5lLW9mZnNldDogNHB4O1xufVxuXG4ubWlsLXJlY29nbml0aW9uLXBpZWNlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlO1xufVxuXG4ubWlsLXJlY29nbml0aW9uLXBpZWNlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiAwIDI0cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG5cbi5taWwtcmVjb2duaXRpb24tcmluZy0tM2Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEzMHB4O1xuICBoZWlnaHQ6IDE2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKHZhcigtLXJlYy1yb3QsIDBkZWcpKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuMiwgMC43LCAwLjIsIDEpO1xuICBjdXJzb3I6IGdyYWI7XG59XG4ubWlsLXJlY29nbml0aW9uLXJpbmctLTNkOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4ubWlsLXJlY29nbml0aW9uLXJpbmctLTNkIC5taWwtcmVjb2duaXRpb24tcGllY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBzY3JvbGwtc25hcC1hbGlnbjogbm9uZTtcbn1cblxuLm1pbC1yZWNvZ25pdGlvbi1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDE2cHg7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWlsLXJlY29nbml0aW9uLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5taWwtcmVjb2duaXRpb24tYXJyb3cge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42OCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGN1YmljLWJlemllcigwLCAwLCAwLjM2NDIsIDEpLCBib3JkZXItY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtcmVjb2duaXRpb24tYXJyb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2IoMjIxLCAyLCAwKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjIxLCAyLCAwKTtcbn1cbi5taWwtcmVjb2duaXRpb24tYXJyb3c6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjRkZGRkZGO1xuICBvdXRsaW5lLW9mZnNldDogNHB4O1xufVxuXG4ubWlsLXJlY29nbml0aW9uLWNvdW50ZXIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIGJhY2tncm91bmQ6IHJnYigyMjEsIDIsIDApO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgcGFkZGluZzogNnB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1pbC1yZWNvZ25pdGlvbi0tc3RhdGljIC5taWwtcmVjb2duaXRpb24tcmluZyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTQwcHgsIDFmcikpO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLm1pbC1yZWNvZ25pdGlvbi0tc3RhdGljIC5taWwtcmVjb2duaXRpb24tcGllY2Uge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuLm1pbC1yZWNvZ25pdGlvbi0tc3RhdGljIC5taWwtcmVjb2duaXRpb24tcGllY2UgaW1nIHtcbiAgYXNwZWN0LXJhdGlvOiAzLzQ7XG4gIGhlaWdodDogYXV0bztcbn1cbi5taWwtcmVjb2duaXRpb24tLXN0YXRpYyAubWlsLXJlY29nbml0aW9uLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1pbC1yZWNvZ25pdGlvbi1yaW5nIHtcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNDBweCwgMWZyKSk7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAubWlsLXJlY29nbml0aW9uLXBpZWNlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1pbC1yZWNvZ25pdGlvbi1waWVjZSBpbWcge1xuICAgIGFzcGVjdC1yYXRpbzogMy80O1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAubWlsLXJlY29nbml0aW9uLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5taWwtcmVjb2duaXRpb24tcmluZy0tM2Qge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jZXJ0aWZpY2F0aW9uIGNhcmRzIOKAlCBjbGlja2FibGUgbGlnaHRib3ggdHJpZ2dlciwgRmFzZSAzIDIwMjYtMDlcbk93biBwYXJ0aWFsIHNvIHRoZSBmZWF0dXJlIGlzIGZ1bGx5IHJldmVydGlibGUgd2l0aG91dCB0b3VjaGluZ1xuX2NvbXBvbmVudHMuc2NzcyAod2hpY2ggc3RpbGwgb3ducyB0aGUgc3RhdGljIGNhcmQvbGlzdCBsb29rKS5cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1pbC1jZXJ0LXRyaWdnZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1pbC1jZXJ0LXRyaWdnZXI6aG92ZXIgLm1pbC1jZXJ0LW5hbWUsIC5taWwtY2VydC10cmlnZ2VyOmZvY3VzLXZpc2libGUgLm1pbC1jZXJ0LW5hbWUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4ubWlsLWNlcnQtdHJpZ2dlcjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJnYigyMjEsIDIsIDApO1xuICBvdXRsaW5lLW9mZnNldDogNnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5mYW5jeWJveC1iZyB7XG4gIGJhY2tncm91bmQ6IHJnYigyMCwgMTYsIDEyKTtcbn1cblxuLmZhbmN5Ym94LWltYWdlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLmZhbmN5Ym94LWNhcHRpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuODUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cblxuLm1pbC1mYi1jYXB0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAyMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5taWwtZmItZG93bmxvYWQge1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWlsLWZiLWRvd25sb2FkOmhvdmVyLCAubWlsLWZiLWRvd25sb2FkOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJnYigyMjEsIDIsIDApO1xufVxuLm1pbC1mYi1kb3dubG9hZDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJnYigyMjEsIDIsIDApO1xuICBvdXRsaW5lLW9mZnNldDogNHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnByb2plY3QgcHJldmlldyBhY2NvcmRpb24g4oCUIHJldXNlcyB0aGUgZXhpc3Rpbmdcbi5taWwtYWNjb3JkaW9uLWdyb3VwL21lbnUvY29udGVudCBtZWNoYW5pc20gKGpzL21haW4uanMsXG5fY29tcG9uZW50cy5zY3NzIFwiYWNjb3JkaW9uXCIgc2VjdGlvbikgaW5zdGVhZCBvZiBidWlsZGluZyBhXG5zZWNvbmQgZGlzY2xvc3VyZSB3aWRnZXQuIFNlZSBkb2NzL3JlZGlzZW5vL0VTVEFETy5tZCxcblwiSG9tZSB5IFByb3llY3RvcyDigJQgY2llcnJlIGRlIHZlcnNpw7NuXCIgKDIwMjYtMDktMTgpIGFuZCBpdHNcbjIwMjYtMDktMTggYWRkZW5kdW0gKGNvdmVyIGltYWdlIHJlc3RvcmVkIHRvIHRoZSBjYXJkIGZyb250KS5cbk93biBwYXJ0aWFsIHNvIHRoaXMgbGF5ZXIgaXMgZnVsbHkgcmV2ZXJ0aWJsZSB3aXRob3V0XG50b3VjaGluZyBfY29tcG9uZW50cy5zY3NzLlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWlsLXByb2plY3QtbGlzdCAubWlsLXByb2plY3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWlsLXByb2plY3QtbGlzdCAubWlsLXByb2plY3QtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5taWwtcHJvamVjdC1tZW51IHtcbiAgcGFkZGluZzogMzBweCAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGdhcDogMzBweDtcbn1cbi5taWwtcHJvamVjdC1tZW51IC5taWwtY292ZXItZnJhbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTgwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm1pbC1wcm9qZWN0LW1lbnUgLm1pbC1jb3Zlci1mcmFtZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbi5taWwtcHJvamVjdC1tZW51IC5taWwtcHJvamVjdC1pbmZvIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMzBweDtcbn1cbi5taWwtcHJvamVjdC1tZW51IC5taWwtcHJvamVjdC1zdW1tYXJ5IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLm1pbC1wcm9qZWN0LW1lbnUgLm1pbC1wcm9qZWN0LXN1bW1hcnkgaDQge1xuICBtYXJnaW46IDA7XG59XG4ubWlsLXByb2plY3QtbWVudTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJnYigyMjEsIDIsIDApO1xuICBvdXRsaW5lLW9mZnNldDogNnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAubWlsLXByb2plY3QtbWVudSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5taWwtcHJvamVjdC1tZW51IC5taWwtY292ZXItZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiA1NiU7XG4gIH1cbn1cblxuLm1pbC1wcm9qZWN0LXByZXZpZXcgLm1pbC1wcm9qZWN0LXByZXZpZXctaW5uZXIge1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cbi5taWwtcHJvamVjdC1wcmV2aWV3IC5taWwtcHJvamVjdC1wcmV2aWV3LXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ubWlsLXByb2plY3RzLWdyaWQgLm1pbC1hY2NvcmRpb24tZ3JvdXAge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1pbC1wcm9qZWN0cy1ncmlkIC5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtcHJvamVjdC1tZW51IHtcbiAgcGFkZGluZzogMDtcbiAgZ2FwOiAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbi5taWwtcHJvamVjdHMtZ3JpZCAubWlsLWFjY29yZGlvbi1ncm91cCAubWlsLXByb2plY3QtbWVudSAubWlsLWNvdmVyLWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiA1NiU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ubWlsLXByb2plY3RzLWdyaWQgLm1pbC1hY2NvcmRpb24tZ3JvdXAgLm1pbC1wcm9qZWN0LW1lbnUgLm1pbC1wcm9qZWN0LWluZm8ge1xuICBwYWRkaW5nOiAyNHB4O1xufVxuLm1pbC1wcm9qZWN0cy1ncmlkIC5taWwtYWNjb3JkaW9uLWdyb3VwIC5taWwtcHJvamVjdC1wcmV2aWV3LWlubmVyIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMjRweDtcbn1cblxuLm1pbC1kb2MtdG9jLXdyYXAge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDEyMHB4O1xufVxuXG4ubWlsLWRvYy10b2MtdG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYmFja2dyb3VuZDogcmdiKDIxNywgMjE3LCAyMTcpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTZweCAyMHB4O1xuICBmb250LWZhbWlseTogXCJPdXRmaXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogcmdiKDAsIDAsIDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubWlsLWRvYy10b2MtdG9nZ2xlIGkge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtZG9jLXRvYy10b2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCByZ2IoMjIxLCAyLCAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1pbC1kb2MtdG9jIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLm1pbC1kb2MtdG9jIGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4ubWlsLWRvYy10b2MtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA2cHggMCA2cHggMTZweDtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCByZ2IoMjI5LCAyMjksIDIyOSk7XG4gIGNvbG9yOiByZ2IoMTAyLCAxMDIsIDEwMik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKSwgYm9yZGVyLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG59XG4ubWlsLWRvYy10b2MtbGluazpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG59XG4ubWlsLWRvYy10b2MtbGluay5taWwtYWN0aXZlIHtcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigyMjEsIDIsIDApO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLm1pbC1kb2MtdG9jLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCByZ2IoMjIxLCAyLCAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1pbC1kb2MtY29kZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5taWwtZG9jLWNvZGUgcHJlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIGJhY2tncm91bmQ6IHJnYigyNiwgMjYsIDI2KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLm1pbC1kb2MtY29kZSBjb2RlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ291cmllciBOZXdcIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG5cbi5taWwtZG9jLWNvcHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIGZvbnQtZmFtaWx5OiBcIk91dGZpdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4zNjQyLCAxKTtcbn1cbi5taWwtZG9jLWNvcHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4ubWlsLWRvYy1jb3B5OmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgcmdiKDI1NSwgMjU1LCAyNTUpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuLm1pbC1kb2MtY29weTpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNztcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubWlsLWRvYy10YWJsZS13cmFwIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLm1pbC1kb2MtdGFibGUtd3JhcCB0YWJsZSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5taWwtZG9jLXRvYy13cmFwIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cbiAgLm1pbC1kb2MtdG9jLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAubWlsLWRvYy10b2Mge1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzY0MiwgMSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDIyOSwgMjI5LCAyMjkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG4gIC5taWwtZG9jLXRvYy13cmFwLS1vcGVuIC5taWwtZG9jLXRvYyB7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxuICAubWlsLWRvYy10b2Mtd3JhcC0tb3BlbiAubWlsLWRvYy10b2MtdG9nZ2xlIGkge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbn1cbiJdfQ== */