/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/styles/ui/tools/utm-builder.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.shape {
  pointer-events: none;
  position: absolute;
  overflow: hidden;
}
.shape > img, .shape svg {
  transform: scale(2);
  display: block;
}

.shape-top {
  left: 0;
  right: 0;
  top: 0;
}
.shape-top > svg, .shape-top img {
  transform-origin: bottom center;
}

.shape-bottom {
  left: 0;
  right: 0;
  bottom: 0;
}
.shape-bottom > img, .shape-bottom svg {
  transform-origin: top center;
}

.shape-end {
  inset: 0;
}
.shape-end > svg {
  bottom: inherit;
  position: inherit;
  right: inherit;
  top: inherit;
  transform-origin: center left;
}

.shape-fluid-x > img {
  height: auto;
  width: 100%;
}

.shape-fluid-y > svg {
  height: 100%;
  width: auto;
}

footer.bg-primary .footer-link {
  flex-wrap: nowrap;
  gap: 15px;
}
footer.bg-primary .footer-link li.link {
  position: relative;
}
footer.bg-primary .footer-link li.link a {
  font-size: 1rem;
  text-decoration: none;
  color: var(--white-color);
  font-weight: 300;
}
footer.bg-primary .footer-link li.link::after {
  content: "";
  opacity: 0;
  transition: opacity 0.2s ease-out;
  position: absolute;
  top: 102%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--white-color);
}
footer.bg-primary .footer-link li.link:hover::after {
  opacity: 1;
}

body {
  background-color: #f9fbfd;
}

.welcome p {
  font-size: clamp(14px, 2vw, 1.2rem);
  font-weight: 300;
  line-height: 1.7;
}

.utm-builder {
  margin-top: -5rem;
  min-height: 500px;
  position: relative;
  z-index: 5;
}
.utm-builder .form-control,
.utm-builder .form-select {
  border-radius: var(--bs-border-radius);
  border: 1px solid var(--bs-gray-300);
  padding: 0.875rem 1rem;
  font-size: 1rem;
  transition: border-color 0.3s ease-out, box-shadow 0.3s ease-out, background-color 0.2s ease-out;
  background-color: var(--bs-gray-50);
}
.utm-builder .form-control:focus,
.utm-builder .form-select:focus {
  border-color: var(--main-color);
  box-shadow: 0 0 0 0.2rem rgba(38, 169, 224, 0.15);
  background-color: var(--white-color);
}
.utm-builder .form-control.is-invalid,
.utm-builder .form-select.is-invalid {
  border-color: var(--bs-danger);
  background-color: rgba(220, 53, 69, 0.02);
}
.utm-builder .form-control.is-invalid:focus,
.utm-builder .form-select.is-invalid:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.15);
}
.utm-builder .form-label {
  font-weight: 500;
  color: var(--bs-gray-800);
  margin-bottom: 0.75rem;
}
.utm-builder .invalid-feedback {
  display: none;
  margin-top: 0.5rem;
  font-size: 0.875em;
  color: var(--bs-danger);
}
.utm-builder .is-invalid ~ .invalid-feedback {
  display: block;
}
.utm-builder .btn {
  padding: 0.875rem 1.75rem;
  font-weight: 500;
  border-radius: var(--bs-border-radius);
  transition: all 0.2s ease-out;
}
.utm-builder .btn.btn-primary {
  background-color: var(--main-color);
  border-color: var(--main-color);
}
.utm-builder .btn.btn-primary:hover {
  background-color: #1e8bbf;
  border-color: #1e8bbf;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(38, 169, 224, 0.3);
}
.utm-builder .btn.btn-lg {
  padding: 1rem 2rem;
  font-size: 1.1rem;
}
.utm-builder .btn.btn-success:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.utm-builder .card {
  border-radius: var(--bs-border-radius-lg);
  border: none;
  background-color: var(--white-color);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
}
.utm-builder .card .card-body {
  padding: 2.5rem;
}
@media (max-width: 767px) {
  .utm-builder .card .card-body {
    padding: 1.5rem;
  }
}
.utm-builder .mode-selector .nav-pills {
  background-color: var(--bs-gray-100);
  border-radius: var(--bs-border-radius-lg);
  padding: 0.5rem;
  gap: 0.5rem;
}
.utm-builder .mode-selector .nav-pills .nav-item {
  flex: 1;
}
.utm-builder .mode-selector .nav-pills .nav-link {
  border-radius: var(--bs-border-radius);
  padding: 1rem 1.25rem;
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--bs-gray-600);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: all 0.2s ease-out;
  border: none;
  background: transparent;
}
.utm-builder .mode-selector .nav-pills .nav-link svg {
  width: 18px;
  height: 18px;
  opacity: 0.7;
}
.utm-builder .mode-selector .nav-pills .nav-link:hover {
  background-color: var(--white-color);
  color: var(--main-color);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.utm-builder .mode-selector .nav-pills .nav-link:hover svg {
  opacity: 1;
}
.utm-builder .mode-selector .nav-pills .nav-link.active {
  background-color: var(--main-color);
  color: var(--white-color);
  box-shadow: 0 4px 12px rgba(38, 169, 224, 0.3);
}
.utm-builder .mode-selector .nav-pills .nav-link.active svg {
  opacity: 1;
}
.utm-builder .mode-description {
  background: linear-gradient(135deg, rgba(38, 169, 224, 0.08) 0%, rgba(38, 169, 224, 0.03) 100%);
  border-radius: var(--bs-border-radius-lg);
  border-left: 4px solid var(--main-color);
  padding: 1.25rem 1.5rem;
  margin-bottom: 2rem;
}
.utm-builder .mode-description p {
  color: var(--bs-gray-600);
  margin: 0;
  line-height: 1.6;
  font-size: 0.9375rem;
}
.utm-builder .form-section {
  margin-bottom: 2rem;
}
.utm-builder .form-section:last-child {
  margin-bottom: 0;
}
.utm-builder .presets-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.utm-builder .presets-container .preset-btn {
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
  border-radius: 50px;
  border: 1px solid var(--bs-gray-300);
  background-color: var(--white-color);
  color: var(--bs-gray-600);
  cursor: pointer;
  transition: all 0.2s ease-out;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.utm-builder .presets-container .preset-btn:hover {
  border-color: var(--main-color);
  color: var(--main-color);
  background-color: rgba(38, 169, 224, 0.05);
}
.utm-builder .presets-container .preset-btn.active {
  border-color: var(--main-color);
  background-color: var(--main-color);
  color: var(--white-color);
}
.utm-builder .presets-container .preset-btn svg {
  width: 16px;
  height: 16px;
}
.utm-builder #multiUrlsInput {
  font-family: "Courier New", Consolas, monospace;
  font-size: 0.875rem;
  line-height: 1.8;
  min-height: 180px;
  resize: vertical;
}
.utm-builder .url-count {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bs-gray-500);
  transition: color 0.2s ease-out;
}
.utm-builder .url-count.has-urls {
  color: var(--main-color);
}
.utm-builder .bulk-sources {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem;
}
.utm-builder .bulk-sources .form-check {
  padding: 1rem 1.25rem 1rem 3rem;
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius);
  margin: 0;
  transition: all 0.2s ease-out;
  cursor: pointer;
  background-color: var(--white-color);
  position: relative;
}
.utm-builder .bulk-sources .form-check:hover {
  border-color: var(--main-color);
  background-color: rgba(38, 169, 224, 0.02);
}
.utm-builder .bulk-sources .form-check.selected {
  border-color: var(--main-color);
  background-color: rgba(38, 169, 224, 0.06);
  box-shadow: 0 0 0 1px var(--main-color);
}
.utm-builder .bulk-sources .form-check .form-check-input {
  cursor: pointer;
  position: absolute;
  opacity: 1;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  pointer-events: auto;
}
.utm-builder .bulk-sources .form-check .form-check-input:checked {
  background-color: var(--main-color);
  border-color: var(--main-color);
}
.utm-builder .bulk-sources .form-check .form-check-label {
  cursor: pointer;
  width: 100%;
  display: block;
  grid-template-columns: none;
}
.utm-builder .bulk-sources .form-check .form-check-label::before, .utm-builder .bulk-sources .form-check .form-check-label::after {
  display: none;
  content: none;
}
.utm-builder .bulk-sources .form-check .form-check-label strong {
  color: var(--bs-gray-800);
}
.utm-builder #resultsContainer,
.utm-builder #bulkResultsContainer {
  animation: fadeIn 0.4s ease-out;
}
.utm-builder .result-url {
  background-color: var(--bs-gray-100);
  border-radius: var(--bs-border-radius);
  padding: 1.25rem;
  font-family: "Courier New", monospace;
  font-size: 0.875rem;
  word-break: break-all;
  margin-bottom: 1.25rem;
  border: 1px solid var(--bs-gray-200);
  line-height: 1.6;
}
.utm-builder .copy-feedback {
  display: none;
  color: var(--bs-success);
  font-size: 0.875rem;
  font-weight: 500;
  margin-left: 0.5rem;
}
.utm-builder .copy-feedback.show {
  display: inline;
  animation: fadeInOut 2s ease-in-out;
}
.utm-builder .bulk-results-table {
  width: 100%;
  margin-bottom: 1.25rem;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--bs-border-radius);
  overflow: hidden;
  border: 1px solid var(--bs-gray-200);
}
.utm-builder .bulk-results-table th, .utm-builder .bulk-results-table td {
  padding: 1rem;
  text-align: left;
  border-bottom: 1px solid var(--bs-gray-200);
}
.utm-builder .bulk-results-table th {
  background-color: var(--bs-gray-100);
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--bs-gray-600);
}
.utm-builder .bulk-results-table tr:last-child td {
  border-bottom: none;
}
.utm-builder .bulk-results-table tr:hover td {
  background-color: var(--bs-gray-50);
}
.utm-builder .bulk-results-table td {
  font-size: 0.875rem;
  vertical-align: middle;
}
.utm-builder .bulk-results-table td.url-cell {
  font-family: "Courier New", monospace;
  word-break: break-all;
  max-width: 500px;
  color: var(--bs-gray-700);
}
.utm-builder .bulk-results-table td.label-cell {
  font-weight: 500;
  white-space: nowrap;
  color: var(--bs-gray-800);
}
.utm-builder .bulk-results-table .copy-btn {
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
}
.utm-builder .card-body > .d-flex:has(#clearHistoryBtn) {
  flex-wrap: wrap;
  gap: 0.75rem;
}
.utm-builder .card-body > .d-flex:has(#clearHistoryBtn) .btn-group {
  flex-shrink: 0;
}
@media (max-width: 575.98px) {
  .utm-builder .card-body > .d-flex:has(#clearHistoryBtn) .btn-group {
    width: 100%;
    display: flex;
  }
  .utm-builder .card-body > .d-flex:has(#clearHistoryBtn) .btn-group .btn {
    flex: 1;
    font-size: 0.75rem;
    padding: 0.375rem 0.5rem;
    white-space: nowrap;
  }
}
.utm-builder .history-section .history-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--bs-gray-200);
  border-radius: var(--bs-border-radius);
  margin-bottom: 0.625rem;
  cursor: pointer;
  transition: all 0.2s ease-out;
  background-color: var(--white-color);
}
.utm-builder .history-section .history-item:hover {
  border-color: var(--main-color);
  background-color: rgba(38, 169, 224, 0.02);
  transform: translateX(4px);
}
.utm-builder .history-section .history-item .history-url {
  font-family: "Courier New", monospace;
  font-size: 0.8125rem;
  color: var(--bs-gray-600);
  word-break: break-all;
  flex: 1;
  margin-right: 1rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.utm-builder .history-section .history-item .history-url .badge {
  font-size: 0.6875rem;
  font-weight: 500;
}
.utm-builder .history-section .history-item .history-date {
  font-size: 0.75rem;
  color: var(--bs-gray-500);
  white-space: nowrap;
}
.utm-builder .history-section .history-empty {
  text-align: center;
  padding: 2.5rem;
  color: var(--bs-gray-500);
  font-size: 0.9375rem;
}
.utm-builder .required {
  color: var(--bs-danger);
  font-weight: 400;
}
.utm-builder .optional-badge {
  font-size: 0.75rem;
  color: var(--bs-gray-500);
  font-weight: 400;
}
.utm-builder .border-top {
  border-color: var(--bs-gray-200) !important;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeInOut {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@media (min-width: 768px) {
  .utm-builder {
    margin-top: -14rem;
  }
}
@media (max-width: 767px) {
  .utm-builder .mode-selector .nav-pills {
    flex-direction: column;
    gap: 0.375rem;
  }
  .utm-builder .mode-selector .nav-pills .nav-link {
    justify-content: flex-start;
    padding: 0.875rem 1rem;
  }
  .utm-builder .bulk-results-table {
    display: block;
    overflow-x: auto;
  }
  .utm-builder .bulk-results-table td.url-cell {
    max-width: 250px;
  }
  .utm-builder .history-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .utm-builder .history-item .history-url {
    margin-right: 0;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFDSTtFQWxCTjtBQUNGO0FBcUJBO0VBR1k7SUFDSTtJQUNBO0VBckJkO0VBdUJjO0lBQ0k7SUFDQTtFQXJCbEI7RUEwQk07SUFDSTtJQUNBO0VBeEJWO0VBMEJVO0lBQ0k7RUF4QmQ7RUE0Qk07SUFDSTtJQUNBO0lBQ0E7RUExQlY7RUE0QlU7SUFDSTtFQTFCZDtBQUNGLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvX3NoYXBlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aS90b29scy91dG0tYnVpbGRlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc2hhcGUgc3R5bGVcbi5zaGFwZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJiA+IGltZywgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuLnNoYXBlLXRvcCB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgJiA+IHN2ZywgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgICB9XG59XG4uc2hhcGUtYm90dG9tIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICAmID4gaW1nLCBzdmcge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgIH1cbn1cbi5zaGFwZS1lbmQge1xuICAgIGluc2V0OiAwO1xuICAgICYgPiBzdmcge1xuICAgICAgICBib3R0b206IGluaGVyaXQ7XG4gICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICByaWdodDogaW5oZXJpdDtcbiAgICAgICAgdG9wOiBpbmhlcml0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbiAgICB9XG59XG4uc2hhcGUtZmx1aWQteCA+IGltZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLnNoYXBlLWZsdWlkLXk+IHN2ZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xufSIsIkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL3NoYXBlXCI7XG5AaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9mb290ZXJcIjtcblxuYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmJmZDtcbn1cblxuLndlbGNvbWUgcCB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxNHB4LCAydncsIDEuMnJlbSk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMS43O1xufVxuXG4udXRtLWJ1aWxkZXIge1xuICAgIG1hcmdpbi10b3A6IC01cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgLy8gRm9ybSBjb250cm9sc1xuICAgIC5mb3JtLWNvbnRyb2wsXG4gICAgLmZvcm0tc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJzLWdyYXktMzAwKTtcbiAgICAgICAgcGFkZGluZzogMC44NzVyZW0gMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlLW91dCwgYm94LXNoYWRvdyAwLjNzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1vdXQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWdyYXktNTApO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNjksIDIyNCwgMC4xNSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWludmFsaWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1kYW5nZXIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDUzLCA2OSwgMC4wMik7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIyMCwgNTMsIDY5LCAwLjE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWJzLWdyYXktODAwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICB9XG5cbiAgICAuaW52YWxpZC1mZWVkYmFjayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NWVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYnMtZGFuZ2VyKTtcbiAgICB9XG5cbiAgICAuaXMtaW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uc1xuICAgIC5idG4ge1xuICAgICAgICBwYWRkaW5nOiAwLjg3NXJlbSAxLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG5cbiAgICAgICAgJi5idG4tcHJpbWFyeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWFpbi1jb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZThiYmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMWU4YmJmO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMzgsIDE2OSwgMjI0LCAwLjMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5idG4tbGcge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLmJ0bi1zdWNjZXNzIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhcmRzXG4gICAgLmNhcmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAgICAgICAuY2FyZC1ib2R5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbTtcblxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTW9kZSBzZWxlY3RvciB0YWJzXG4gICAgLm1vZGUtc2VsZWN0b3Ige1xuICAgICAgICAubmF2LXBpbGxzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWdyYXktMTAwKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjVyZW07XG5cbiAgICAgICAgICAgIC5uYXYtaXRlbSB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5hdi1saW5rIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnMtZ3JheS02MDApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFpbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgzOCwgMTY5LCAyMjQsIDAuMyk7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNb2RlIGRlc2NyaXB0aW9uXG4gICAgLm1vZGUtZGVzY3JpcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM4LCAxNjksIDIyNCwgMC4wOCkgMCUsIHJnYmEoMzgsIDE2OSwgMjI0LCAwLjAzKSAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tbWFpbi1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJzLWdyYXktNjAwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvcm0gc2VjdGlvbnNcbiAgICAuZm9ybS1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXNldHMgYnV0dG9uc1xuICAgIC5wcmVzZXRzLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAucHJlc2V0LWJ0biB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjYyNXJlbSAxcmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ncmF5LTMwMCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYnMtZ3JheS02MDApO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMC41cmVtO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM4LCAxNjksIDIyNCwgMC4wNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTXVsdGktVVJMcyB0ZXh0YXJlYVxuICAgICNtdWx0aVVybHNJbnB1dCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBOZXcnLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICBtaW4taGVpZ2h0OiAxODBweDtcbiAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAudXJsLWNvdW50IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1icy1ncmF5LTUwMCk7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1vdXQ7XG5cbiAgICAgICAgJi5oYXMtdXJscyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbWFpbi1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdWxrIG1vZGUgY2hlY2tib3hlc1xuICAgIC5idWxrLXNvdXJjZXMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gICAgICAgIGdhcDogMC43NXJlbTtcblxuICAgICAgICAuZm9ybS1jaGVjayB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW0gMXJlbSAzcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtZ3JheS0zMDApO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM4LCAxNjksIDIyNCwgMC4wMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWFpbi1jb2xvcik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMTY5LCAyMjQsIDAuMDYpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAvLyBSZXNldCB0b2dnbGUgc3dpdGNoIHN0eWxlcyBmcm9tIF9jdXN0b21fY2hlY2tib3guc2Nzc1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tYWluLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdG9nZ2xlIHN3aXRjaCBzdHlsZXMgZnJvbSBfY3VzdG9tX2NoZWNrYm94LnNjc3NcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdG9nZ2xlIHBzZXVkby1lbGVtZW50c1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJzLWdyYXktODAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXN1bHRzIHNlY3Rpb25cbiAgICAjcmVzdWx0c0NvbnRhaW5lcixcbiAgICAjYnVsa1Jlc3VsdHNDb250YWluZXIge1xuICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjRzIGVhc2Utb3V0O1xuICAgIH1cblxuICAgIC5yZXN1bHQtdXJsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtZ3JheS0xMDApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ncmF5LTIwMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgfVxuXG4gICAgLmNvcHktZmVlZGJhY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tYnMtc3VjY2Vzcyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJi5zaG93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluT3V0IDJzIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnVsayByZXN1bHRzIHRhYmxlXG4gICAgLmJ1bGstcmVzdWx0cy10YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJzLWdyYXktMjAwKTtcblxuICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYnMtZ3JheS0yMDApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtZ3JheS0xMDApO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icy1ncmF5LTYwMCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB0ZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1ncmF5LTUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLnVybC1jZWxsIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICAgICAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icy1ncmF5LTcwMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGFiZWwtY2VsbCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icy1ncmF5LTgwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29weS1idG4ge1xuICAgICAgICAgICAgcGFkZGluZzogMC4zNzVyZW0gMC42MjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIaXN0b3J5IGhlYWRlciAodGl0bGUgKyBidXR0b25zKVxuICAgIC5jYXJkLWJvZHkgPiAuZC1mbGV4OmhhcygjY2xlYXJIaXN0b3J5QnRuKSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuXG4gICAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGlzdG9yeSBzZWN0aW9uXG4gICAgLmhpc3Rvcnktc2VjdGlvbiB7XG4gICAgICAgIC5oaXN0b3J5LWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtZ3JheS0yMDApO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUtY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzgsIDE2OSwgMjI0LCAwLjAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhpc3RvcnktdXJsIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icy1ncmF5LTYwMCk7XG4gICAgICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZ2FwOiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5oaXN0b3J5LWRhdGUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnMtZ3JheS01MDApO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaGlzdG9yeS1lbXB0eSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAyLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYnMtZ3JheS01MDApO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBpbmRpY2F0b3JcbiAgICAucmVxdWlyZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0tYnMtZGFuZ2VyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICAvLyBPcHRpb25hbCBiYWRnZVxuICAgIC5vcHRpb25hbC1iYWRnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWJzLWdyYXktNTAwKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICAvLyBCb3JkZXIgdG9wIGZvciBhY3Rpb24gYnV0dG9uc1xuICAgIC5ib3JkZXItdG9wIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ncmF5LTIwMCkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluT3V0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDIwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLy8gUmVzcG9uc2l2ZVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnV0bS1idWlsZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTE0cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnV0bS1idWlsZGVyIHtcbiAgICAgICAgLm1vZGUtc2VsZWN0b3Ige1xuICAgICAgICAgICAgLm5hdi1waWxscyB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IDAuMzc1cmVtO1xuXG4gICAgICAgICAgICAgICAgLm5hdi1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjg3NXJlbSAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idWxrLXJlc3VsdHMtdGFibGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICAgICB0ZC51cmwtY2VsbCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oaXN0b3J5LWl0ZW0ge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgZ2FwOiAwLjVyZW07XG5cbiAgICAgICAgICAgIC5oaXN0b3J5LXVybCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gZm9vdGVyXG5mb290ZXIge1xuICAgICYuYmctcHJpbWFyeSB7XG4gICAgICAgIC5mb290ZXItbGluayB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgICAgIGxpLmxpbmsge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1vdXQ7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMDIlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/