/* ../libs/common/src/css/root.css */
:root {
  box-sizing: border-box;
  --debug-border-width: 1px;
  --debug-border-style: solid;
  --text-color-base: #f8fafc;
  --background-color-base: #0f172a;
  --text-color-secondary: #94a3b8;
  --border-color-base: #2cffea8a;
  --border-width-base: 1px;
  --border-style-base: solid;
  --font-family-base:
    "Inter",
    sans-serif,
    "Courier New",
    Courier,
    monospace;
  --font-size-base: 16px;
  color: var(--text-color-base);
  background-color: var(--background-color-base);
  border-color: var(--border-color-base);
  border-width: var(--border-width-base);
  border-style: var(--border-style-base);
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  --primary-border-color: rgba(71, 165, 202, 0.274);
  --primary-border-color-dark: rgba(47, 83, 138, 0.837);
  --dialog-backdrop-color: rgba(47, 97, 138, 0.58);
  --header-border-color: var(--primary-border-color);
  --left-border-color: var(--primary-border-color);
  --center-border-color: var(--primary-border-color);
  --right-border-color: var(--primary-border-color);
  --footer-border-color: var(--primary-border-color);
  --light-background-color: rgba(88, 207, 86, 0.144);
  --very-light-background-color: #6be2621f;
  --accent-color-primary: #26a7df;
  --accent-color-secondary: #818cf8;
  --glass-background-color: rgba(30, 41, 59, 0.7);
  --glass-border-color: rgba(255, 255, 255, 0.1);
  --scrollbar-thumb-color: rgba(36, 71, 179, 0.529);
  --scrollbar-track-color: rgba(5, 112, 134, 0.111);
  scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
  --h1-font-size: 2em;
  --h1-font-weight: bold;
  --h1-margin: 0.5em 0;
  --h2-font-size: 1.5em;
  --h2-font-weight: bold;
  --h2-margin: 0.4em 0;
  --h3-font-size: 1.2em;
  --h3-font-weight: bold;
  --h3-margin: 0.3em 0;
  --agent-background-color: #e0f7fa;
  --agent-text-color: #333;
  --human-background-color: var(--accent-color-primary);
  --human-text-color: rgb(215, 250, 252);
  --code-background-color: #f5f5f5;
  --code-text-color: #333;
  --function-background-color: #e8f5e9;
  --function-text-color: #333;
  --unknown-background-color: #ffAAAA;
  --unknown-text-color: #333;
  --chronology-agent-background-color: #e0f7fa;
  --chronology-agent-text-color: #333;
  --chronology-human-background-color: #fff9c4;
  --chronology-human-text-color: #333;
  --chronology-code-background-color: #f5f5f5;
  --chronology-code-text-color: #333;
  --chronology-function-background-color: #e8f5e9;
  --chronology-function-text-color: #333;
  --chronology-unknown-background-color: #ffAAAA;
  --chronology-unknown-text-color: #333;
  --button-background-color-base: var(--light-background-color);
  --button-text-color-base: var(--text-color-base);
  --button-border-color-base: var(--primary-border-color);
  --button-border-width-base: 1px;
  --button-border-style-base: solid;
  --button-border-radius-base: 20px;
  --button-padding-base: 8px 15px;
  --button-hover-background-color: rgba(88, 207, 86, 0.25);
  --button-hover-text-color: var(--text-color-base);
  --button-hover-border-color: var(--primary-border-color-dark);
  --input-background-color: var(--background-color-base);
  --input-text-color: var(--text-color-base);
  --input-border-color: var(--border-color-base);
  --input-border-width: 1px;
  --input-border-style: solid;
  --input-border-radius: 5px;
  --input-padding: 8px;
  --link-color: rgb(55, 120, 231);
  --link-visited-color: rgb(68, 82, 128);
  --link-hover-color: rgb(0, 191, 255);
  --link-text-decoration: none;
  --link-hover-text-decoration: underline;
  --tab-background-color: #9ff2a86b;
  --tab-background-color-active: #3d972b;
  --tab-text-color: #333;
  --tab-text-color-active: #000;
  --tab-border-color: #65d961;
  --tab-border-color-active: #1df116;
  --tab-border-width: 1px;
  --tab-border-width-active: 5px;
  --tab-border-style: solid;
  --tab-border-radius: 5px 5px 0 0;
  --tab-padding: 8px 15px;
  --side-panel-tab-content-background-color: #6be2621f;
  --side-panel-width: 25vw;
  --side-panel-width-maximized: 85vw;
  --panel-transition-duration: 0.5s;
  --highlight-border-color: rgb(255, 204, 0);
  --highlight-box-shadow-color: rgb(179, 68, 238);
  --fast-highlight-transition-time: 0.3s;
  --slow-highlight-transition-time: 0.8s;
  --fast-highlight-transition:
    border-width var(--fast-highlight-transition-time) ease-in-out,
    border-color var(--fast-highlight-transition-time) ease-in-out,
    border-radius var(--fast-highlight-transition-time) ease-in-out,
    background-color var(--fast-highlight-transition-time) ease-in-out,
    padding var(--fast-highlight-transition-time) ease-in-out;
  --slow-highlight-transition:
    border-width var(--slow-highlight-transition-time) ease-in-out,
    border-color var(--slow-highlight-transition-time) ease-in-out,
    border-radius var(--slow-highlight-transition-time) ease-in-out,
    background-color var(--slow-highlight-transition-time) ease-in-out,
    padding var(--slow-highlight-transition-time) ease-in-out;
}

/* ../libs/common/src/css/common-styles.css */
:root {
  --ibgib-primary: #38bdf8;
  --ibgib-secondary: #818cf8;
  --ibgib-bg: #0f172a;
  --ibgib-text: #f8fafc;
  --fab-background: var(--ibgib-primary);
  --fab-text: #ffffff;
  --fab-size: 60px;
}
a {
  color: var(--link-color);
  &:visited {
    color: var(--link-visited-color);
  }
  &:hover {
    color: var(--link-hover-color);
  }
}
.collapsed {
  display: none !important;
}
.hidden {
  display: none !important;
}
.btn-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: var(--fab-size);
  height: var(--fab-size);
  border-radius: 50%;
  background-color: var(--fab-background);
  color: var(--fab-text);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  z-index: 1000;
  transition: transform 0.2s, background-color 0.2s;
  border: none;
  outline: none;
  &:hover {
    transform: scale(1.05);
    background-color: var(--ibgib-secondary);
  }
  &.disabled,
  &:disabled {
    background-color: #64748b;
    cursor: not-allowed;
    transform: none;
    opacity: 0.7;
  }
}
.simple-spinner {
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top: 3px solid #ffffff;
  width: 24px;
  height: 24px;
  animation: simple-spin 1s linear infinite;
}
@keyframes simple-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.colorful-gradient-bg {
  background:
    linear-gradient(
      45deg,
      #FF6B6B,
      #4ECDC4,
      #45B7D1,
      #FFBE0B);
  background-size: 300% 300%;
  animation: gradientBounce 3s ease infinite;
  color: white;
  border: none;
}
@keyframes gradientBounce {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
.icon-btn {
  background: none;
  border: none;
  color: var(--text-color-base);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border-radius: 50%;
  transition: background-color 0.2s;
  &:hover {
    background-color: rgba(255, 255, 255, 0.1);
  }
}
.btn-primary {
  display: inline-block;
  background: var(--text-color-base);
  color: var(--background-color-base);
  padding: 1rem 2rem;
  border-radius: 2rem;
  text-decoration: none;
  font-weight: 600;
  transition: transform 0.2s, box-shadow 0.2s;
  &:hover {
    transform: scale(1.05);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
  }
}

/* ../libs/common/src/css/fullscreen-dialog.css */
.fullscreen-dialog {
  max-width: 85vw;
  padding: 0px;
  align-self: center;
  justify-self: center;
  &::backdrop {
    background-color: var(--dialog-backdrop-color, rgba(0, 0, 0, 0.6));
    backdrop-filter: blur(2px);
  }
  .fullscreen-dialog-content {
    height: 100%;
    min-width: 50vw;
    min-height: 50vh;
    max-width: 80vw;
    max-height: 80vw;
    margin: 0;
    padding: 20px;
    border: none;
    background-color: var(--background-color-base, var(--ibgib-bg));
    color: var(--text-color-base, var(--ibgib-text));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    overflow: auto;
  }
  .fullscreen-dialog-header {
    padding-bottom: 10px;
    border-bottom: 1px solid #ccc;
    margin-bottom: 10px;
    text-align: center;
  }
  .fullscreen-dialog-body {
    width: 95%;
    padding: 10px 0;
    margin-bottom: 15px;
    flex: 1;
    overflow-y: auto;
    min-height: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-items: center;
    gap: 5px;
  }
  .fullscreen-dialog-footer {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: 1rem;
  }
}
#fullscreen-dialog-prompt-input {
  width: 99%;
  padding: 0.5rem;
  margin-top: 1rem;
  background: rgba(0, 0, 0, 0.2);
  color: white;
  border: 1px solid #555;
  border-radius: 4px;
}
.dialog-button {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  cursor: pointer;
  background: #333;
  color: white;
  border: 1px solid #555;
  &:hover {
    background: #444;
  }
}

/* ../apps/learning/src/style.css */
:root {
  --scroll: 0;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-base);
  background-color: var(--background-color-base);
  color: var(--text-color-base);
  line-height: 1.6;
  overflow: hidden;
  height: 100dvh;
  padding-top: 60px;
  box-sizing: border-box;
}
.sticky-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background: var(--glass-background-color);
  border-bottom: 1px solid var(--glass-border-color);
  backdrop-filter: blur(12px);
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 2rem;
  .header-left,
  .header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
  }
  .logo {
    font-weight: 800;
    font-size: 1.25rem;
    color: var(--text-color-base);
  }
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 0.5rem;
  background: var(--background-color-base);
  border: 1px solid var(--glass-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.25);
  min-width: 160px;
  z-index: 1000;
}
.dropdown-menu.hidden {
  display: none;
}
.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  text-align: left;
  background: transparent;
  border: none;
  color: var(--text-color-base);
  cursor: pointer;
  font-size: 0.875rem;
  transition: background-color 0.2s;
}
.dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.1);
}
#agent-modal-container:not(.hidden) {
  position: fixed;
  bottom: 100px;
  right: 24px;
  width: 380px;
  height: 600px;
  max-height: calc(100vh - 120px);
  background: var(--background-color-base);
  border: 1px solid var(--glass-border-color);
  border-radius: 1rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  z-index: 999;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.background-glob {
  position: fixed;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background:
    radial-gradient(
      circle at 50% 50%,
      rgba(56, 189, 248, 0.15) 0%,
      rgba(129, 140, 248, 0.05) 30%,
      rgba(15, 23, 42, 0) 70%);
  z-index: -1;
  transform: rotate(calc(var(--scroll) * 360deg)) scale(calc(1 + var(--scroll) * 0.2));
  transition: transform 0.1s linear;
  pointer-events: none;
}
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}
h1,
h2,
h3 {
  font-weight: 800;
  letter-spacing: -0.02em;
}
h1 {
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: 1.1;
  margin-bottom: 1.5rem;
}
h2 {
  font-size: 2.5rem;
  margin-bottom: 2rem;
  text-align: center;
}
p {
  color: var(--text-color-secondary);
  font-size: 1.125rem;
}
.text-gradient {
  background:
    linear-gradient(
      to right,
      var(--accent-color-primary),
      var(--accent-color-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% auto;
  animation: shine 5s linear infinite;
}
@keyframes shine {
  to {
    background-position: 200% center;
  }
}
section {
  padding: 6rem 0;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
section.visible {
  opacity: 1;
  transform: translateY(0);
}
.hero {
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: 0;
  .subtitle {
    font-size: 1.5rem;
    max-width: 600px;
    margin: 0 auto;
  }
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}
.card {
  background: var(--glass-background-color);
  border: 1px solid var(--glass-border-color);
  backdrop-filter: blur(12px);
  padding: 2.5rem;
  border-radius: 1rem;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
  cursor: default;
}
.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.3);
  border-color: rgba(56, 189, 248, 0.3);
}
.card h3 {
  margin-bottom: 1rem;
  color: var(--text-color-base);
}
.text-block {
  p {
    margin-bottom: 1.5rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
}
.contact {
  text-align: center;
}
footer {
  padding: 2rem 0;
  text-align: center;
  border-top: 1px solid var(--glass-border-color);
  font-size: 0.875rem;
}
.fade-in {
  opacity: 0;
  animation: fadeIn 1s ease-out forwards;
}
.delay-1 {
  animation-delay: 0.2s;
}
.delay-2 {
  animation-delay: 0.4s;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.panel-container {
  display: flex;
  width: 100%;
  height: calc(100dvh - 60px);
  overflow: hidden;
  align-items: stretch;
}
.left-panel {
  display: flex;
  flex-direction: column;
  background-color: var(--glass-background-color);
  backdrop-filter: blur(12px);
  border-right: 1px solid var(--glass-border-color);
  transition:
    width 0.3s ease,
    transform 0.3s ease,
    opacity 0.3s ease;
  overflow: hidden;
  z-index: 100;
}
.left-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  border-bottom: 1px solid var(--glass-border-color);
}
.left-panel-header h3 {
  margin: 0;
  font-size: 1.2rem;
}
.left-panel-content {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.nav-link {
  color: var(--text-color-base);
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  transition: background 0.2s;
  font-weight: 600;
}
.nav-link:hover {
  background-color: rgba(255, 255, 255, 0.1);
}
.center-panel-content {
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow-y: auto;
  transition: width 0.3s ease;
}
@media (min-width: 769px) {
  .left-panel {
    position: sticky;
    top: 60px;
    height: calc(100vh - 60px);
  }
  .left-panel.collapsed {
    width: 0;
    border-right: none;
    opacity: 0;
    pointer-events: none;
  }
  .left-panel.expanded {
    width: 280px;
    opacity: 1;
    pointer-events: auto;
  }
  .hidden-desktop {
    display: none !important;
  }
}
@media (max-width: 768px) {
  .left-panel {
    position: fixed;
    top: 60px;
    left: 0;
    bottom: 0;
    width: 280px;
    transform: translateX(-100%);
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.5);
  }
  .left-panel.mobile-visible {
    transform: translateX(0);
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2Nzcy9yb290LmNzcyIsICIuLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY3NzL2NvbW1vbi1zdHlsZXMuY3NzIiwgIi4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jc3MvZnVsbHNjcmVlbi1kaWFsb2cuY3NzIiwgIi4uL3NyYy9zdHlsZS5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIjpyb290IHtcbiAgICAvKiBCYXNpYyBjb2xvcnMvYm9yZGVyICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtLWRlYnVnLWJvcmRlci13aWR0aDogMXB4O1xuICAgIC0tZGVidWctYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAvKiBkYXJrLW1vZGUgZGVmYXVsdDsgb3ZlcnJpZGVhYmxlIHZpYSBhZ2VudCB0aGVtaW5nICovXG4gICAgLS10ZXh0LWNvbG9yLWJhc2U6ICNmOGZhZmM7XG4gICAgLyogZGFyay1tb2RlIGRlZmF1bHQ7IG92ZXJyaWRlYWJsZSB2aWEgYWdlbnQgdGhlbWluZyAqL1xuICAgIC0tYmFja2dyb3VuZC1jb2xvci1iYXNlOiAjMGYxNzJhO1xuICAgIC8qIGZvcm1lcmx5IC0tdGV4dC1zZWNvbmRhcnkgaW4gc3R5bGUuY3NzICovXG4gICAgLS10ZXh0LWNvbG9yLXNlY29uZGFyeTogIzk0YTNiODtcbiAgICAtLWJvcmRlci1jb2xvci1iYXNlOiAjMmNmZmVhOGE7XG4gICAgLS1ib3JkZXItd2lkdGgtYmFzZTogMXB4O1xuICAgIC0tYm9yZGVyLXN0eWxlLWJhc2U6IHNvbGlkO1xuICAgIC0tZm9udC1mYW1pbHktYmFzZTogJ0ludGVyJywgc2Fucy1zZXJpZiwgJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlO1xuICAgIC0tZm9udC1zaXplLWJhc2U6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItYmFzZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1iYXNlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1iYXNlKTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC1iYXNlKTtcbiAgICBib3JkZXItc3R5bGU6IHZhcigtLWJvcmRlci1zdHlsZS1iYXNlKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktYmFzZSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG4gICAgLS1wcmltYXJ5LWJvcmRlci1jb2xvcjogcmdiYSg3MSwgMTY1LCAyMDIsIDAuMjc0KTtcbiAgICAtLXByaW1hcnktYm9yZGVyLWNvbG9yLWRhcms6IHJnYmEoNDcsIDgzLCAxMzgsIDAuODM3KTtcbiAgICAtLWRpYWxvZy1iYWNrZHJvcC1jb2xvcjogcmdiYSg0NywgOTcsIDEzOCwgMC41OCk7XG4gICAgLS1oZWFkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1sZWZ0LWJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ib3JkZXItY29sb3IpO1xuICAgIC0tY2VudGVyLWJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ib3JkZXItY29sb3IpO1xuICAgIC0tcmlnaHQtYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1mb290ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG4gICAgLS1saWdodC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDg4LCAyMDcsIDg2LCAwLjE0NCk7XG4gICAgLS12ZXJ5LWxpZ2h0LWJhY2tncm91bmQtY29sb3I6ICM2YmUyNjIxZjtcblxuICAgIC8qIEFjY2VudCBDb2xvcnMgKGZvcm1lcmx5IC0tYWNjZW50LXByaW1hcnkvc2Vjb25kYXJ5IGluIHN0eWxlLmNzcykgKi9cbiAgICAtLWFjY2VudC1jb2xvci1wcmltYXJ5OiAjMjZhN2RmO1xuICAgIC0tYWNjZW50LWNvbG9yLXNlY29uZGFyeTogIzgxOGNmODtcblxuICAgIC8qIEdsYXNzbW9ycGhpc20gRGVzaWduIFRva2VucyAoZm9ybWVybHkgLS1nbGFzcy1iZy9ib3JkZXIgaW4gc3R5bGUuY3NzKSAqL1xuICAgIC8qIGZvcm1lcmx5IC0tZ2xhc3MtYmcgKi9cbiAgICAtLWdsYXNzLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMzAsIDQxLCA1OSwgMC43KTtcbiAgICAvKiBmb3JtZXJseSAtLWdsYXNzLWJvcmRlciAqL1xuICAgIC0tZ2xhc3MtYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG5cbiAgICAvKiBTY3JvbGxiYXIgU3R5bGVzICovXG4gICAgLS1zY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYmEoMzYsIDcxLCAxNzksIDAuNTI5KTtcbiAgICAtLXNjcm9sbGJhci10cmFjay1jb2xvcjogcmdiYSg1LCAxMTIsIDEzNCwgMC4xMTEpO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tc2Nyb2xsYmFyLXRodW1iLWNvbG9yKSB2YXIoLS1zY3JvbGxiYXItdHJhY2stY29sb3IpO1xuXG4gICAgLyogSGVhZGluZyBTdHlsZXMgKi9cbiAgICAtLWgxLWZvbnQtc2l6ZTogMmVtO1xuICAgIC0taDEtZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLS1oMS1tYXJnaW46IDAuNWVtIDA7XG4gICAgLS1oMi1mb250LXNpemU6IDEuNWVtO1xuICAgIC0taDItZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLS1oMi1tYXJnaW46IDAuNGVtIDA7XG4gICAgLS1oMy1mb250LXNpemU6IDEuMmVtO1xuICAgIC0taDMtZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLS1oMy1tYXJnaW46IDAuM2VtIDA7XG5cbiAgICAvKiBNZXNzYWdlIFR5cGUgQ29sb3JzIHRvIGJlIHVzZWQgd2l0aGluIGNoYXRzL2Nocm9ub2xvZ2llcyAqL1xuICAgIC0tYWdlbnQtYmFja2dyb3VuZC1jb2xvcjogI2UwZjdmYTtcbiAgICAtLWFnZW50LXRleHQtY29sb3I6ICMzMzM7XG4gICAgLS1odW1hbi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtY29sb3ItcHJpbWFyeSk7XG4gICAgLS1odW1hbi10ZXh0LWNvbG9yOiByZ2IoMjE1LCAyNTAsIDI1Mik7XG4gICAgLS1jb2RlLWJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgLS1jb2RlLXRleHQtY29sb3I6ICMzMzM7XG4gICAgLS1mdW5jdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZThmNWU5O1xuICAgIC0tZnVuY3Rpb24tdGV4dC1jb2xvcjogIzMzMztcbiAgICAtLXVua25vd24tYmFja2dyb3VuZC1jb2xvcjogI2ZmQUFBQTtcbiAgICAtLXVua25vd24tdGV4dC1jb2xvcjogIzMzMztcblxuICAgIC8qIENocm9ub2xvZ3kgSXRlbSBCYWNrZ3JvdW5kIENvbG9ycyAqL1xuICAgIC0tY2hyb25vbG9neS1hZ2VudC1iYWNrZ3JvdW5kLWNvbG9yOiAjZTBmN2ZhO1xuICAgIC0tY2hyb25vbG9neS1hZ2VudC10ZXh0LWNvbG9yOiAjMzMzO1xuICAgIC0tY2hyb25vbG9neS1odW1hbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOWM0O1xuICAgIC0tY2hyb25vbG9neS1odW1hbi10ZXh0LWNvbG9yOiAjMzMzO1xuICAgIC0tY2hyb25vbG9neS1jb2RlLWJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgLS1jaHJvbm9sb2d5LWNvZGUtdGV4dC1jb2xvcjogIzMzMztcbiAgICAtLWNocm9ub2xvZ3ktZnVuY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogI2U4ZjVlOTtcbiAgICAtLWNocm9ub2xvZ3ktZnVuY3Rpb24tdGV4dC1jb2xvcjogIzMzMztcbiAgICAtLWNocm9ub2xvZ3ktdW5rbm93bi1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZBQUFBO1xuICAgIC0tY2hyb25vbG9neS11bmtub3duLXRleHQtY29sb3I6ICMzMzM7XG5cbiAgICAvKiBCdXR0b24gU3R5bGVzICovXG4gICAgLS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1iYXNlOiB2YXIoLS1saWdodC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAtLWJ1dHRvbi10ZXh0LWNvbG9yLWJhc2U6IHZhcigtLXRleHQtY29sb3ItYmFzZSk7XG4gICAgLS1idXR0b24tYm9yZGVyLWNvbG9yLWJhc2U6IHZhcigtLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcbiAgICAtLWJ1dHRvbi1ib3JkZXItd2lkdGgtYmFzZTogMXB4O1xuICAgIC0tYnV0dG9uLWJvcmRlci1zdHlsZS1iYXNlOiBzb2xpZDtcbiAgICAtLWJ1dHRvbi1ib3JkZXItcmFkaXVzLWJhc2U6IDIwcHg7XG4gICAgLS1idXR0b24tcGFkZGluZy1iYXNlOiA4cHggMTVweDtcbiAgICAtLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDg4LCAyMDcsIDg2LCAwLjI1KTtcbiAgICAtLWJ1dHRvbi1ob3Zlci10ZXh0LWNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWJhc2UpO1xuICAgIC0tYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ib3JkZXItY29sb3ItZGFyayk7XG5cbiAgICAvKiBJbnB1dCBTdHlsZXMgKi9cbiAgICAtLWlucHV0LWJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItYmFzZSk7XG4gICAgLS1pbnB1dC10ZXh0LWNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWJhc2UpO1xuICAgIC0taW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3ItYmFzZSk7XG4gICAgLS1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcbiAgICAtLWlucHV0LWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1pbnB1dC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgLS1pbnB1dC1wYWRkaW5nOiA4cHg7XG5cbiAgICAvKiBMaW5rIFN0eWxlcyAqL1xuICAgIC0tbGluay1jb2xvcjogcmdiKDU1LCAxMjAsIDIzMSk7XG4gICAgLS1saW5rLXZpc2l0ZWQtY29sb3I6IHJnYig2OCwgODIsIDEyOCk7XG4gICAgLS1saW5rLWhvdmVyLWNvbG9yOiByZ2IoMCwgMTkxLCAyNTUpO1xuICAgIC0tbGluay10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLS1saW5rLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgLyogVGFicyAqL1xuICAgIC0tdGFiLWJhY2tncm91bmQtY29sb3I6ICM5ZmYyYTg2YjtcbiAgICAtLXRhYi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogIzNkOTcyYjtcbiAgICAtLXRhYi10ZXh0LWNvbG9yOiAjMzMzO1xuICAgIC0tdGFiLXRleHQtY29sb3ItYWN0aXZlOiAjMDAwO1xuICAgIC0tdGFiLWJvcmRlci1jb2xvcjogIzY1ZDk2MTtcbiAgICAtLXRhYi1ib3JkZXItY29sb3ItYWN0aXZlOiAjMWRmMTE2O1xuICAgIC0tdGFiLWJvcmRlci13aWR0aDogMXB4O1xuICAgIC0tdGFiLWJvcmRlci13aWR0aC1hY3RpdmU6IDVweDtcbiAgICAtLXRhYi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIC0tdGFiLWJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgIC0tdGFiLXBhZGRpbmc6IDhweCAxNXB4O1xuICAgIC0tc2lkZS1wYW5lbC10YWItY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiAjNmJlMjYyMWY7XG5cbiAgICAvKiBzaXplIG9mIHRoZSBidXR0b24gdG8gZXhwYW5kL21heGltaXplL2NvbGxhcHNlIHBhbmVscyAqL1xuICAgIC0tc2lkZS1wYW5lbC13aWR0aDogMjV2dztcbiAgICAtLXNpZGUtcGFuZWwtd2lkdGgtbWF4aW1pemVkOiA4NXZ3O1xuICAgIC0tcGFuZWwtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcblxuICAgIC8qIHVzZWQgd2hlbiBoaWdobGlnaHRpbmcgZWxlbWVudHMgKi9cbiAgICAtLWhpZ2hsaWdodC1ib3JkZXItY29sb3I6IHJnYigyNTUsIDIwNCwgMCk7XG4gICAgLS1oaWdobGlnaHQtYm94LXNoYWRvdy1jb2xvcjogcmdiKDE3OSwgNjgsIDIzOCk7XG4gICAgLS1mYXN0LWhpZ2hsaWdodC10cmFuc2l0aW9uLXRpbWU6IDAuM3M7XG4gICAgLS1zbG93LWhpZ2hsaWdodC10cmFuc2l0aW9uLXRpbWU6IDAuOHM7XG4gICAgLS1mYXN0LWhpZ2hsaWdodC10cmFuc2l0aW9uOiBib3JkZXItd2lkdGggdmFyKC0tZmFzdC1oaWdobGlnaHQtdHJhbnNpdGlvbi10aW1lKSBlYXNlLWluLW91dCxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWZhc3QtaGlnaGxpZ2h0LXRyYW5zaXRpb24tdGltZSkgZWFzZS1pbi1vdXQsXG4gICAgICAgIGJvcmRlci1yYWRpdXMgdmFyKC0tZmFzdC1oaWdobGlnaHQtdHJhbnNpdGlvbi10aW1lKSBlYXNlLWluLW91dCxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1mYXN0LWhpZ2hsaWdodC10cmFuc2l0aW9uLXRpbWUpIGVhc2UtaW4tb3V0LFxuICAgICAgICBwYWRkaW5nIHZhcigtLWZhc3QtaGlnaGxpZ2h0LXRyYW5zaXRpb24tdGltZSkgZWFzZS1pbi1vdXQ7XG4gICAgLS1zbG93LWhpZ2hsaWdodC10cmFuc2l0aW9uOiBib3JkZXItd2lkdGggdmFyKC0tc2xvdy1oaWdobGlnaHQtdHJhbnNpdGlvbi10aW1lKSBlYXNlLWluLW91dCxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLXNsb3ctaGlnaGxpZ2h0LXRyYW5zaXRpb24tdGltZSkgZWFzZS1pbi1vdXQsXG4gICAgICAgIGJvcmRlci1yYWRpdXMgdmFyKC0tc2xvdy1oaWdobGlnaHQtdHJhbnNpdGlvbi10aW1lKSBlYXNlLWluLW91dCxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1zbG93LWhpZ2hsaWdodC10cmFuc2l0aW9uLXRpbWUpIGVhc2UtaW4tb3V0LFxuICAgICAgICBwYWRkaW5nIHZhcigtLXNsb3ctaGlnaGxpZ2h0LXRyYW5zaXRpb24tdGltZSkgZWFzZS1pbi1vdXQ7XG59IiwgIi8qIFxyXG4gIFNoYXJlZCBzdHlsZXMgZm9yIFB1bG1vbmlxIHdlYiBhcHBsaWNhdGlvbnNcclxuICBUaGlzIGZpbGUgaXMgY29tcGlsZWQgYW5kIGNvcGllZCBpbnRvIHRoZSByZXNwZWN0aXZlIGFwcHMgYnkgYGNvcHktc2hhcmVkLXN0eWxlcy5tanNgLlxyXG4gIERvIE5PVCBlZGl0IHRoZSBjb3BpZXMgaW5zaWRlIGBhcHBzL3dlYnNpdGUvc3JjL2Agb3IgYGFwcHMvbGVhcm5pbmcvc3JjL2AuXHJcbiovXHJcblxyXG46cm9vdCB7XHJcbiAgICAvKiBcclxuICAgICAgV2UgY2FuIGRlZmluZSBzaGFyZWQgaWJHaWIgY29tcG9uZW50IHZhcmlhYmxlcyBhbmQgdGhlbWVzIGhlcmUsXHJcbiAgICAgIGFsbG93aW5nIG92ZXJyaWRpbmcgYXQgdGhlIGFwcCBsZXZlbC5cclxuICAgICovXHJcbiAgICAtLWliZ2liLXByaW1hcnk6ICMzOGJkZjg7XHJcbiAgICAtLWliZ2liLXNlY29uZGFyeTogIzgxOGNmODtcclxuICAgIC0taWJnaWItYmc6ICMwZjE3MmE7XHJcbiAgICAtLWliZ2liLXRleHQ6ICNmOGZhZmM7XHJcblxyXG4gICAgLyogVmFyaWFibGVzIHVzZWQgYnkgaWJnaWIgY29tcG9uZW50cyAqL1xyXG4gICAgLS1mYWItYmFja2dyb3VuZDogdmFyKC0taWJnaWItcHJpbWFyeSk7XHJcbiAgICAtLWZhYi10ZXh0OiAjZmZmZmZmO1xyXG4gICAgLS1mYWItc2l6ZTogNjBweDtcclxufVxyXG5cclxuYSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XHJcblxyXG4gICAgJjp2aXNpdGVkIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbGluay12aXNpdGVkLWNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbGluay1ob3Zlci1jb2xvcilcclxuICAgIH1cclxufVxyXG5cclxuLmNvbGxhcHNlZCB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIEJhc2UgdXRpbGl0eSBjbGFzc2VzIGZvciBpYmdpYiBzaGFyZWQgY29tcG9uZW50cyAqL1xyXG4uaGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJ0bi1mYWIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiAyNHB4O1xyXG4gICAgcmlnaHQ6IDI0cHg7XHJcbiAgICB3aWR0aDogdmFyKC0tZmFiLXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mYWItc2l6ZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYWItYmFja2dyb3VuZCk7XHJcbiAgICBjb2xvcjogdmFyKC0tZmFiLXRleHQpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgei1pbmRleDogMTAwMDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWJnaWItc2Vjb25kYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAmLmRpc2FibGVkLFxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY0NzQ4YjtcclxuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIFNpbXBsZSBTcGlubmVyICovXHJcbi5zaW1wbGUtc3Bpbm5lciB7XHJcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgI2ZmZmZmZjtcclxuICAgIHdpZHRoOiAyNHB4O1xyXG4gICAgaGVpZ2h0OiAyNHB4O1xyXG4gICAgYW5pbWF0aW9uOiBzaW1wbGUtc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc2ltcGxlLXNwaW4ge1xyXG4gICAgMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgIDEwMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIENvbG9yZnVsIEdyYWRpZW50IEJhY2tncm91bmQgZm9yIGFjdGl2ZSBhZ2VudHMgKi9cclxuLmNvbG9yZnVsLWdyYWRpZW50LWJnIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgI0ZGNkI2QiwgIzRFQ0RDNCwgIzQ1QjdEMSwgI0ZGQkUwQik7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUgMzAwJTtcclxuICAgIGFuaW1hdGlvbjogZ3JhZGllbnRCb3VuY2UgM3MgZWFzZSBpbmZpbml0ZTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBncmFkaWVudEJvdW5jZSB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xyXG4gICAgfVxyXG5cclxuICAgIDUwJSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaWNvbi1idG4ge1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWJhc2UpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWNvbG9yLWJhc2UpO1xyXG4gICAgY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItYmFzZSk7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCBib3gtc2hhZG93IDAuMnM7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XHJcbiAgICB9XHJcbn0iLCAiLypcclxuICogU3R5bGVzIGZvciBmdWxsc2NyZWVuIGRpYWxvZy4gb3ZlcmFsbCB0aGUgYXBwcm9hY2ggaXMgdG8gY292ZXIgYSBtYWpvcml0eSBvZlxyXG4gKiB0aGUgc2NyZWVuIHdpdGggYSBkaWZmdXNlIGJsdXIgb2YgdGhlIGFwcCBiYWNrZHJvcC5cclxuICovXHJcbi5mdWxsc2NyZWVuLWRpYWxvZyB7XHJcbiAgICAvKiBvbiB0aGluIHNjcmVlbnMsIHN0aWxsIHNob3cgYSBzbGl2ZXIgb2YgZ3JlZW4uIERvZXNuJ3QgYWZmZWN0XHJcbiAgICAgKiBkZXNrdG9wL25vcm1hbCBwaG9uZSBzY3JlZW5zLiAqL1xyXG4gICAgbWF4LXdpZHRoOiA4NXZ3O1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XHJcblxyXG4gICAgJjo6YmFja2Ryb3Age1xyXG4gICAgICAgIC8qIFNlbWktdHJhbnNwYXJlbnQgYmxhY2sgYmFja2Ryb3AgKi9cclxuICAgICAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7ICovXHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWJhY2tkcm9wLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuNikpO1xyXG4gICAgICAgIC8qIE9wdGlvbmFsOiBBcHBseSBibHVyIGVmZmVjdCB0byBiYWNrZHJvcCAqL1xyXG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xyXG4gICAgfVxyXG5cclxuICAgIC5mdWxsc2NyZWVuLWRpYWxvZy1jb250ZW50IHtcclxuICAgICAgICAvKiBmb3Igc29tZSByZWFzb24gd2lkdGggMTAwJSBjYXVzZXMgb3ZlcmZsb3c/ICovXHJcbiAgICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG1pbi13aWR0aDogNTB2dztcclxuICAgICAgICBtaW4taGVpZ2h0OiA1MHZoO1xyXG4gICAgICAgIG1heC13aWR0aDogODB2dztcclxuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZ3O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAvKiBTZW1pLXRyYW5zcGFyZW50IGJhY2tncm91bmQgb3ZlcmxheSAqL1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItYmFzZSwgdmFyKC0taWJnaWItYmcpKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1iYXNlLCB2YXIoLS1pYmdpYi10ZXh0KSk7XHJcblxyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICAvKiBFbnN1cmUgZGlhbG9nIGlzIG9uIHRvcCAqL1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgICAgLyogRW5hYmxlIHNjcm9sbCBpZiBjb250ZW50IG92ZXJmbG93cyAqL1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5mdWxsc2NyZWVuLWRpYWxvZy1oZWFkZXIge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5mdWxsc2NyZWVuLWRpYWxvZy1ib2R5IHtcclxuICAgICAgICB3aWR0aDogOTUlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICBtaW4taGVpZ2h0OiA1MCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mdWxsc2NyZWVuLWRpYWxvZy1mb290ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICBnYXA6IDFyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuI2Z1bGxzY3JlZW4tZGlhbG9nLXByb21wdC1pbnB1dCB7XHJcbiAgICAvKiA5OSUgYi9jIHNpZGVzIGxvb2sgc3RyYW5nZSBhdCAxMDAlICovXHJcbiAgICB3aWR0aDogOTklO1xyXG4gICAgcGFkZGluZzogMC41cmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1NTU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbn1cclxuXHJcbi5kaWFsb2ctYnV0dG9uIHtcclxuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZDogIzMzMztcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1NTU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzQ0NDtcclxuICAgIH1cclxufSIsICJAaW1wb3J0IFwiQHB1bG1vbmlxL2NvbW1vbi9zcmMvY3NzL3Jvb3QuY3NzXCI7XHJcbkBpbXBvcnQgXCJAcHVsbW9uaXEvY29tbW9uL3NyYy9jc3MvY29tbW9uLXN0eWxlcy5jc3NcIjtcclxuQGltcG9ydCBcIkBwdWxtb25pcS9jb21tb24vc3JjL2Nzcy9mdWxsc2NyZWVuLWRpYWxvZy5jc3NcIjtcclxuXHJcbjpyb290IHtcclxuICAgIC0tc2Nyb2xsOiAwO1xyXG4gICAgLyogVXBkYXRlZCBieSBKUyAqL1xyXG59XHJcblxyXG4vKiBSZXNldCAmIEJhc2UgKi9cclxuKiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktYmFzZSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWJhc2UpO1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItYmFzZSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC8qIG5vIHdpbmRvdy1sZXZlbCBzY3JvbGwgXHUyMDE0IHBhbmVscyBzY3JvbGwgaW50ZXJuYWxseSAqL1xyXG4gICAgaGVpZ2h0OiAxMDBkdmg7XHJcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcclxuICAgIC8qIGFjY291bnRzIGZvciBmaXhlZCBoZWFkZXIgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi8qIFN0aWNreSBIZWFkZXIgKi9cclxuLnN0aWNreS1oZWFkZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ2xhc3MtYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ2xhc3MtYm9yZGVyLWNvbG9yKTtcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCAycmVtO1xyXG5cclxuICAgIC5oZWFkZXItbGVmdCxcclxuICAgIC5oZWFkZXItcmlnaHQge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ28ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWJhc2UpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogRHJvcGRvd24gTWVudSAqL1xyXG4uZHJvcGRvd24tbWVudSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICByaWdodDogMDtcclxuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3ItYmFzZSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nbGFzcy1ib3JkZXItY29sb3IpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuNSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgICBtaW4td2lkdGg6IDE2MHB4O1xyXG4gICAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUuaGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1pdGVtIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1iYXNlKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1pdGVtOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxufVxyXG5cclxuLyogTW9kYWwgc3R5bGluZyBmb3IgQWdlbnQvU2V0dGluZ3MgKi9cclxuI2FnZW50LW1vZGFsLWNvbnRhaW5lcjpub3QoLmhpZGRlbikge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiAxMDBweDtcclxuICAgIHJpZ2h0OiAyNHB4O1xyXG4gICAgd2lkdGg6IDM4MHB4O1xyXG4gICAgaGVpZ2h0OiA2MDBweDtcclxuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjBweCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWJhc2UpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ2xhc3MtYm9yZGVyLWNvbG9yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICB6LWluZGV4OiA5OTk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcblxyXG4vKiBCYWNrZ3JvdW5kIEFuaW1hdGlvbiAqL1xyXG4uYmFja2dyb3VuZC1nbG9iIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogLTUwJTtcclxuICAgIGxlZnQ6IC01MCU7XHJcbiAgICB3aWR0aDogMjAwJTtcclxuICAgIGhlaWdodDogMjAwJTtcclxuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSxcclxuICAgICAgICAgICAgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMTUpIDAlLFxyXG4gICAgICAgICAgICByZ2JhKDEyOSwgMTQwLCAyNDgsIDAuMDUpIDMwJSxcclxuICAgICAgICAgICAgcmdiYSgxNSwgMjMsIDQyLCAwKSA3MCUpO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICAvKiBSb3RhdGUgYW5kIHNoaWZ0IGJhc2VkIG9uIHNjcm9sbCB2YXJpYWJsZSAqL1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoY2FsYyh2YXIoLS1zY3JvbGwpICogMzYwZGVnKSkgc2NhbGUoY2FsYygxICsgdmFyKC0tc2Nyb2xsKSAqIDAuMikpO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgbGluZWFyO1xyXG4gICAgLyogU21vb3RoIGJ1dCByZXNwb25zaXZlICovXHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLyogVHlwb2dyYXBoeSAmIExheW91dCAqL1xyXG4uY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogMTIwMHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiAwIDJyZW07XHJcbn1cclxuXHJcbmgxLFxyXG5oMixcclxuaDMge1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xyXG59XHJcblxyXG5oMSB7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDNyZW0sIDh2dywgNnJlbSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG5oMiB7XHJcbiAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbnAge1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTtcclxuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XHJcbn1cclxuXHJcbi8qIFRleHQgR3JhZGllbnQgKi9cclxuLnRleHQtZ3JhZGllbnQge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1hY2NlbnQtY29sb3ItcHJpbWFyeSksIHZhcigtLWFjY2VudC1jb2xvci1zZWNvbmRhcnkpKTtcclxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIGF1dG87XHJcbiAgICBhbmltYXRpb246IHNoaW5lIDVzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzaGluZSB7XHJcbiAgICB0byB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIFNlY3Rpb25zICovXHJcbnNlY3Rpb24ge1xyXG4gICAgcGFkZGluZzogNnJlbSAwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC44cyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuOHMgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbnNlY3Rpb24udmlzaWJsZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG59XHJcblxyXG4uaGVybyB7XHJcbiAgICBtaW4taGVpZ2h0OiA5MHZoO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG5cclxuICAgIC5zdWJ0aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxufVxyXG5cclxuLyogRmVhdHVyZXMgR3JpZCAqL1xyXG4uZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDJyZW07XHJcbn1cclxuXHJcbi8qIEdsYXNzbW9ycGhpc20gQ2FyZHMgKi9cclxuLmNhcmQge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ2xhc3MtYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nbGFzcy1ib3JkZXItY29sb3IpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xyXG4gICAgcGFkZGluZzogMi41cmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4zcyBlYXNlLCBib3JkZXItY29sb3IgMC4zcyBlYXNlO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4uY2FyZDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMyk7XHJcbn1cclxuXHJcbi5jYXJkIGgzIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1iYXNlKTtcclxufVxyXG5cclxuLyogU2Nyb2xsIENvbnRlbnQgKi9cclxuLnRleHQtYmxvY2sge1xyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gICAgICAgIG1heC13aWR0aDogODAwcHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBDb250YWN0ICovXHJcbi5jb250YWN0IHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLyogRm9vdGVyICovXHJcbmZvb3RlciB7XHJcbiAgICBwYWRkaW5nOiAycmVtIDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZ2xhc3MtYm9yZGVyLWNvbG9yKTtcclxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XHJcbn1cclxuXHJcbi8qIEFuaW1hdGlvbnMgKi9cclxuLmZhZGUtaW4ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2Utb3V0IGZvcndhcmRzO1xyXG59XHJcblxyXG4uZGVsYXktMSB7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XHJcbn1cclxuXHJcbi5kZWxheS0yIHtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMC40cztcclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBSZXNwb25zaXZlIExlZnQgUGFuZWwgT3ZlcmxheSAqL1xyXG4ucGFuZWwtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC8qIGZpbGwgdGhlIHZpZXdwb3J0IGJlbG93IHRoZSBmaXhlZCBoZWFkZXIgKi9cclxuICAgIGhlaWdodDogY2FsYygxMDBkdmggLSA2MHB4KTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxufVxyXG5cclxuLmxlZnQtcGFuZWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nbGFzcy1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWdsYXNzLWJvcmRlci1jb2xvcik7XHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4zcyBlYXNlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDEwMDtcclxufVxyXG5cclxuLmxlZnQtcGFuZWwtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1nbGFzcy1ib3JkZXItY29sb3IpO1xyXG59XHJcblxyXG4ubGVmdC1wYW5lbC1oZWFkZXIgaDMge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbn1cclxuXHJcbi5sZWZ0LXBhbmVsLWNvbnRlbnQge1xyXG4gICAgZmxleDogMTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5uYXYtbGluayB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1iYXNlKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLm5hdi1saW5rOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxufVxyXG5cclxuLmNlbnRlci1wYW5lbC1jb250ZW50IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICAvKiBwcmV2ZW50cyBmbGV4IGNoaWxkcmVuIGZyb20gYmxvd2luZyBvdXQgd2lkdGggKi9cclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIC8qIGZpbGwgLnBhbmVsLWNvbnRhaW5lciB2ZXJ0aWNhbGx5ICovXHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgLyogc2Nyb2xsIGhlcmUsIG5vdCBvbiB0aGUgd2luZG93ICovXHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi8qIERlc2t0b3AgbGF5b3V0OiBTaWRlLWJ5LXNpZGUgUHVzaCAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcclxuICAgIC5sZWZ0LXBhbmVsIHtcclxuICAgICAgICAvKiBsZXQgdGhlIHBhbmVsIGJlIHN0aWNreSBzbyBtYWluIGNvbnRhaW5lciBvYnNlcnZlcyBib2R5IHNjcm9sbCBuYXRpdmVseSAqL1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgICAgdG9wOiA2MHB4O1xyXG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xyXG4gICAgfVxyXG5cclxuICAgIC5sZWZ0LXBhbmVsLmNvbGxhcHNlZCB7XHJcbiAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmxlZnQtcGFuZWwuZXhwYW5kZWQge1xyXG4gICAgICAgIHdpZHRoOiAyODBweDtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5oaWRkZW4tZGVza3RvcCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBNb2JpbGUgbGF5b3V0OiBPdmVybGF5ICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmxlZnQtcGFuZWwge1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICB0b3A6IDYwcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgd2lkdGg6IDI4MHB4O1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcbiAgICAgICAgLyogaGlkZGVuIGJ5IGRlZmF1bHQgKi9cclxuICAgICAgICBib3gtc2hhZG93OiAycHggMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuICAgIH1cclxuXHJcbiAgICAubGVmdC1wYW5lbC5tb2JpbGUtdmlzaWJsZSB7XHJcbiAgICAgICAgLyogc2hvd24gd2hlbiB0b2dnbGVkICovXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgfVxyXG59Il0sCiAgIm1hcHBpbmdzIjogIjtBQUFBO0FBRUksY0FBWTtBQUNaLHdCQUFzQjtBQUN0Qix3QkFBc0I7QUFFdEIscUJBQW1CO0FBRW5CLDJCQUF5QjtBQUV6QiwwQkFBd0I7QUFDeEIsdUJBQXFCO0FBQ3JCLHVCQUFxQjtBQUNyQix1QkFBcUI7QUFDckI7QUFBQSxJQUFvQixPQUFPO0FBQUEsSUFBRSxVQUFVO0FBQUEsSUFBRSxhQUFhO0FBQUEsSUFBRSxPQUFPO0FBQUEsSUFBRTtBQUNqRSxvQkFBa0I7QUFDbEIsU0FBTyxJQUFJO0FBQ1gsb0JBQWtCLElBQUk7QUFDdEIsZ0JBQWMsSUFBSTtBQUNsQixnQkFBYyxJQUFJO0FBQ2xCLGdCQUFj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 */
